Files
CoreInject/res/安装说明.md

14 KiB
Raw Blame History

QiuChenly 应用商店 - 安装说明

项目简介

QiuChenly 应用商店是一个基于 HTTP 服务的 macOS 应用注入工具商店,以系统守护进程方式运行,提供 Web 界面管理和使用各种 macOS 应用注入脚本。

预览

main main1 main2

主要特点:

  • 无需关闭 SIP系统完整性保护在 SIP 开启状态下即可正常使用
  • 系统守护进程方式运行,开机自动启动
  • Web 界面访问,方便直观
  • 支持数百款 macOS 应用的注入和破解

系统要求

  • 操作系统macOS 10.15 及以上版本
  • 权限要求需要管理员权限sudo进行安装
  • 网络端口15200 端口(用于 Web 界面访问)
  • SIP 状态:无需关闭,保持开启状态即可

安装前准备

1. 确认以下文件存在

  • InjectLib - 主程序二进制文件
  • config.json - 应用配置文件
  • tool/ - 工具目录
  • frontend/ - 前端界面文件

2. 确认文件完整性

在安装前,请确保项目目录包含以下关键文件:

InjectShell/
├── InjectLib          # 主程序(编译生成)
├── config.json        # 配置文件
├── tool/              # 工具目录
├── frontend/          # 前端界面
└── res/               # 资源目录
    ├── install_daemon.sh      # 安装脚本
    ├── uninstall_daemon.sh    # 卸载脚本
    └── com.qiuchenly.hayaku.daemon.plist  # 守护进程配置

详细安装步骤

步骤 1进入项目目录

cd InjectShell/res

或者您的项目实际所在路径:

cd /path/to/InjectShell/res

步骤 2赋予安装脚本执行权限

chmod +x install_daemon.sh

步骤 3执行安装脚本

重要:必须使用 sudo 权限运行

sudo bash install_daemon.sh

步骤 4等待安装完成

安装过程会自动执行以下操作:

  1. 创建软链接:toolconfig.jsonfrontend/usr/local/bin/
  2. 复制二进制:InjectLib/usr/local/bin/InjectLib
  3. 安装守护进程配置:com.qiuchenly.hayaku.daemon.plist/Library/LaunchDaemons/
  4. 加载并启动服务

安装成功后,您会看到如下提示:

安装Hayaku HTTP守护进程...
复制二进制文件到 /usr/local/bin/
安装LaunchDaemon配置...
启动服务...
安装完成!
服务状态:
xxxxx  0  com.qiuchenly.hayaku.daemon

访问 http://localhost:15200 查看应用商店
查看日志: tail -f /var/log/hayaku_daemon*

重要警告 - 请务必仔细阅读

安装后绝对不能删除项目源文件夹!

这是最重要的注意事项!

为什么不能删除?

安装脚本使用了**软链接Symbolic Link**机制,而不是复制文件:

文件/目录 源路径 目标路径 链接方式
tool 工具目录 项目目录/tool/ /usr/local/bin/tool 软链接
config.json 配置 项目目录/config.json /usr/local/bin/config.json 软链接
frontend 前端 项目目录/frontend/ /usr/local/bin/frontend 软链接
InjectLib 程序 项目目录/InjectLib /usr/local/bin/InjectLib 复制

什么是软链接?

软链接类似于 Windows 的"快捷方式",它只是一个指向原始文件的指针,不是真实的文件拷贝

系统中的软链接 → 指向 → 项目源文件夹中的实际文件

如果您删除了项目源文件夹:

  • 软链接会失效(变成"死链接"
  • 服务启动时找不到 toolconfig.jsonfrontend 目录
  • 应用商店无法正常工作
  • 所有功能完全失效

示例说明

正常情况:

/usr/local/bin/tool → InjectShell/tool/
# 软链接指向源文件夹,一切正常

删除源文件夹后:

/usr/local/bin/tool → InjectShell/tool/
# 源文件夹已被删除,软链接失效
# 服务启动报错No such file or directory

推荐做法

1. 选择永久存放位置

在安装之前,将项目文件夹移动到一个不会被删除的位置,例如:

# 推荐位置1用户主目录
~/InjectShell

# 推荐位置2当前位置如果您确定不会删除
/Volumes/MySSD/InjectShell/

2. 移动项目文件夹

如果需要移动,请先卸载,再移动,然后重新安装

# 1. 卸载当前安装
cd /当前项目路径/res
sudo bash uninstall_daemon.sh

# 2. 移动项目到新位置
mv /当前项目路径 /新的永久路径

# 3. 在新位置重新安装
cd /新的永久路径/res
sudo bash install_daemon.sh

如何验证软链接是否正常

安装完成后,可以执行以下命令验证软链接:

ls -la /usr/local/bin/ | grep -E 'tool|config.json|frontend|InjectLib'

正常输出应该类似:

lrwxr-xr-x  tool -> /Volumes/data/macOS_HookWorkSpace/InjectShell/tool
lrwxr-xr-x  config.json -> /Volumes/data/macOS_HookWorkSpace/InjectShell/config.json
lrwxr-xr-x  frontend -> /Volumes/data/macOS_HookWorkSpace/InjectShell/frontend
-rwxr-xr-x  InjectLib

说明:

  • l 开头表示软链接link
  • -> 后面是指向的源文件路径
  • InjectLib 是实际复制的文件,不是链接

验证安装

1. 检查服务状态

# 查看守护进程是否运行
sudo launchctl list | grep com.qiuchenly.hayaku.daemon

输出示例:

12345  0  com.qiuchenly.hayaku.daemon
  • 第一列是进程 IDPID
  • 第二列是退出状态码0 表示正常)
  • 第三列是服务标识符

2. 检查端口监听

# 查看15200端口是否被监听
lsof -i :15200

输出示例:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
InjectLib 12345 root  3u  IPv4 0x...  0t0  TCP localhost:15200 (LISTEN)

3. 访问 Web 界面

打开浏览器,访问:

http://localhost:15200

如果能正常打开应用商店界面,说明安装成功!


使用说明

访问应用商店

安装成功后,服务会自动在后台运行,您可以:

  1. 打开浏览器,访问 http://localhost:15200
  2. 浏览应用列表,查看支持的所有应用
  3. 选择应用,点击注入按钮进行安装
  4. 查看状态,实时监控注入进度

服务特点

  • 开机自启:系统启动时自动运行,无需手动启动
  • 自动重启如果服务异常退出LaunchDaemon 会自动重启
  • 系统级服务:以 root 权限运行,确保注入功能正常
  • Web 界面:通过浏览器访问,跨平台兼容

日志管理

查看运行日志

系统会自动记录服务的运行日志和错误日志:

# 实时查看标准输出日志
tail -f /var/log/hayaku_daemon.log

# 实时查看错误日志
tail -f /var/log/hayaku_daemon_error.log

# 查看最近100行日志
tail -n 100 /var/log/hayaku_daemon.log

# 查看所有日志
cat /var/log/hayaku_daemon.log

日志文件说明

日志文件 路径 内容
标准输出 /var/log/hayaku_daemon.log 正常运行信息、调试信息
错误输出 /var/log/hayaku_daemon_error.log 错误信息、异常堆栈

服务管理

手动控制服务

虽然服务会自动启动,但您也可以手动控制:

停止服务

sudo launchctl stop com.qiuchenly.hayaku.daemon

启动服务

sudo launchctl start com.qiuchenly.hayaku.daemon

重启服务

sudo launchctl stop com.qiuchenly.hayaku.daemon
sudo launchctl start com.qiuchenly.hayaku.daemon

卸载服务(不删除文件)

sudo launchctl unload /Library/LaunchDaemons/com.qiuchenly.hayaku.daemon.plist

重新加载服务(不删除文件)

sudo launchctl load /Library/LaunchDaemons/com.qiuchenly.hayaku.daemon.plist

查看服务配置

# 查看LaunchDaemon配置文件
cat /Library/LaunchDaemons/com.qiuchenly.hayaku.daemon.plist

卸载说明

如果您需要完全卸载 QiuChenly 应用商店:

步骤 1进入项目目录

重要:必须在原始安装的项目目录中执行卸载!

cd /path/to/InjectShell/res

步骤 2执行卸载脚本

sudo bash uninstall_daemon.sh

步骤 3确认卸载

卸载脚本会自动执行:

  1. 停止服务
  2. 卸载 LaunchDaemon 配置
  3. 删除系统中的所有文件和软链接
  4. 删除日志文件

卸载完成后输出:

卸载Hayaku HTTP守护进程...
停止服务...
删除文件...
卸载完成!

步骤 4验证卸载

# 检查服务是否还在运行
sudo launchctl list | grep com.qiuchenly.hayaku.daemon
# 应该没有任何输出

# 检查系统文件是否已删除
ls -la /usr/local/bin/ | grep -E 'InjectLib|tool|config.json|frontend'
# 应该没有任何输出

卸载后可以做什么

卸载完成后,项目源文件夹不会被删除,您可以:

  • 安全地删除项目源文件夹
  • 移动项目到其他位置后重新安装
  • 保留项目供以后使用

重新安装

重要提示

当前版本暂未开发重新安装功能,如果需要重新安装,请按以下步骤操作:


故障排查

问题 1执行安装脚本提示权限不足

错误信息:

请使用sudo运行此脚本

解决方案:

# 确保使用 sudo 命令
sudo bash install_daemon.sh

问题 2找不到 InjectLib 文件

错误信息:

错误: 找不到 InjectLib 文件

原因: 下载文件有问题

解决方案:

# 下载后重新安装
cd ../res
sudo bash install_daemon.sh

问题 3服务无法启动

检查方法:

# 查看错误日志
tail -f /var/log/hayaku_daemon_error.log

# 检查服务状态
sudo launchctl list | grep com.qiuchenly.hayaku.daemon

可能原因和解决方案:

原因 1端口 15200 已被占用

# 查看谁占用了15200端口
lsof -i :15200

# 如果是其他程序,关闭该程序或修改配置使用其他端口

原因 2软链接失效删除了源文件夹

# 检查软链接状态
ls -la /usr/local/bin/tool
ls -la /usr/local/bin/config.json
ls -la /usr/local/bin/frontend

# 如果显示红色或"No such file or directory",说明源文件夹被删除了
# 解决方案:恢复源文件夹,或重新安装

原因 3权限问题

# 检查文件权限
ls -la /usr/local/bin/InjectLib

# 确保InjectLib有执行权限
sudo chmod +x /usr/local/bin/InjectLib

# 重启服务
sudo launchctl stop com.qiuchenly.hayaku.daemon
sudo launchctl start com.qiuchenly.hayaku.daemon

问题 4无法访问 http://localhost:15200

检查清单:

  1. 服务是否运行?
sudo launchctl list | grep com.qiuchenly.hayaku.daemon
# 应该有输出且第二列为0
  1. 端口是否监听?
lsof -i :15200
# 应该显示InjectLib正在监听
  1. 防火墙是否阻止?
# 打开系统偏好设置 → 安全性与隐私 → 防火墙
# 检查是否阻止了InjectLib
  1. 浏览器是否正确?
  • 尝试使用不同的浏览器Safari、Chrome、Firefox
  • 清除浏览器缓存
  • 尝试使用 curl http://localhost:15200 测试

问题 5意外删除了项目源文件夹

症状:

  • 服务无法启动
  • 访问 Web 界面显示 404 或无法连接
  • 日志中显示"No such file or directory"

解决方案:

方案 1从备份恢复

如果您有备份,恢复到原位置即可

方案 2重新下载项目

# 1. 先卸载残留的配置(如果卸载脚本也丢失,手动清理)
sudo launchctl unload /Library/LaunchDaemons/com.qiuchenly.hayaku.daemon.plist
sudo rm -f /Library/LaunchDaemons/com.qiuchenly.hayaku.daemon.plist
sudo rm -f /usr/local/bin/InjectLib
sudo rm -f /usr/local/bin/tool
sudo rm -f /usr/local/bin/config.json
sudo rm -f /usr/local/bin/frontend

# 2. 重新克隆或下载项目
cd /path/to/install
git clone <项目地址>
# 或解压下载的zip文件

# 3. 编译项目
cd InjectShell
mkdir build && cd build
cmake ..
make

# 4. 重新安装
cd ../res
sudo bash install_daemon.sh

问题 6卸载后仍能访问 Web 界面

原因: 服务可能还在运行,或浏览器缓存

解决方案:

# 1. 强制停止服务
sudo launchctl stop com.qiuchenly.hayaku.daemon

# 2. 查找并杀死进程
ps aux | grep InjectLib
sudo kill -9 <PID>

# 3. 清除浏览器缓存或使用无痕模式测试

问题 7更新项目后功能异常

原因: 服务仍在使用旧的二进制文件

解决方案:

# 1. 重新编译项目
cd /path/to/InjectShell/build
make clean
cmake ..
make

# 2. 停止服务
sudo launchctl stop com.qiuchenly.hayaku.daemon

# 3. 更新系统中的二进制文件
sudo cp ../InjectLib /usr/local/bin/InjectLib
sudo chmod +x /usr/local/bin/InjectLib

# 4. 启动服务
sudo launchctl start com.qiuchenly.hayaku.daemon

注意: toolconfig.jsonfrontend 是软链接,修改源文件会自动生效,无需手动更新


获取帮助

如果遇到文档中未涵盖的问题,可以:

  1. 查看项目 READMEreadme.md
  2. 加入 Telegram 群组https://t.me/+VvqTr-2EFaZhYzA1
  3. 关注 Telegram 频道https://t.me/qiuchenlymac
  4. 加入 QQ 群
    • 一群1042610918已满
    • 二群1049674046
  5. 访问在线文档https://qiuchenlyopensource.github.io/Documentaions/
  6. 提交 Issue:在 GitHub 仓库提交问题

更新日志

当前版本功能

  • LaunchDaemon 守护进程安装
  • 软链接管理tool、config.json、frontend
  • 系统级服务运行
  • Web 界面访问(端口 15200
  • 自动启动和崩溃重启
  • 日志记录功能
  • 完整的卸载功能

待开发功能

  • 一键重新安装功能
  • 配置文件热更新

许可证

本项目遵循项目根目录中的 LICENSE 文件。

重要提醒:

  • 本项目仅供学习和研究使用
  • 请勿用于商业用途
  • 请支持正版软件

致谢

本项目由 QiuChenly 创意制作,暂时不必向任何人致谢。


文档版本: v1.0
最后更新: 2025-10-14 适用项目版本: InjectShell 4.0