考虑到 MuMu12 模拟器对
Magisk
和LSPosed
暂时还不支持,此处展示基于LSPatch
的配置方案。其特点参看OpenShamrock指南
-
从LSPatch下载最新
release
的LSPatch
,并安装到模拟器中。 -
从OpenShamrock的
Action
下载最新开发版Shamrock
,注意下载带有all
字样的版本,如Shamrock-v1.0.7.r253.81be383-all.zip
,并安装到模拟器中。 -
在
LSPatch
中用Shamrock
修补 QQ 。- 打开
LSPatch
并在管理页面选择+
新建修补,可以选择从存储目录选择 QQAPK 或者直接使用已经安装过的 QQ - 修补模式默认且应该优先选择本地模式,这样方便直接更新
Shamrock
模块而不用重新修补,缺点是需要LSPatch
保持后台运行 - 其他配置保持默认,然后点击开始修补,修补完成后会提示安装(如果已经安装会提示卸载),或者手动替换安装。
- 安装
Shamrock
模块后在管理页面点击修补好的 QQ ,选择模块作用域勾选上Shamrock
模块然后保存 - 启动
Shamrock
并重新启动 QQ 客户端 - 此时
Shamrock
会显示已激活。 - 登录
Bot
账号,然后在Shamrock - 状态
勾选强制平板模式
,方便安卓手机登录监看。
- 打开
-
git clone
本项目,进入项目根目录,创建虚拟环境并安装依赖python -m venv venv source venv/bin/activate pip install -r requirements.txt
-
安装脚手架,参看Nonebot2文档
-
安装
NoneBot2
、OneBot
适配器和APScheduler
插件pip install nonebot2[fastapi] nb adapter install nonebot-adapter-onebot nb plugin install nonebot-plugin-apscheduler
-
运行 Bot 服务,但此时尚未配置模拟器和本机的通信,因此无法接收消息。
nb run
-
启动 MuMu12 模拟器,查看 ADB 调试端口, 一般模拟器本体(即多开器内序号0)的端口为
16384
,多开的模拟器会在此基础上加32
,参看 MuMu模拟器说明文档。 -
按照上述教程连接 adb,在
CMD
运行,配置端口转发。端口5700
用于Shamrock
的HTTP
通信,口6000
用于WebSocket
通信。注意,此时不要运行 Bot 服务。adb.exe connect 127.0.0.1:16384 adb forward tcp:5700 tcp:5700 adb forward tcp:6000 tcp:6000
-
配置
被动WebSocket地址
为ws://10.0.2.2:6000/onebot/v11/ws/
,其他端口默认,功能模式打开强制平板模式
、消息格式为CQ码
、被动WebSocket
、HTTP
、WebSocket
。可以参考下面配置。 -
重启模拟器,然后依次启动
LSPatch
和Shamrock
,然后启动 QQ 客户端。显示以下内容即为配置完成。[INFO] uvicorn | asgi_send:287| ('127.0.0.1', 9999) - "WebSocket /onebot/v11/ws" [accepted] [INFO] nonebot | log:270| OneBot V11 | Bot 123456789 connected [INFO] websockets | handshake:642| connection open [DEBUG] on_bot_connect | _:10| 已连接到BOT