From f4da6faabfee02f3f0965572a88d531c3fc9c40f Mon Sep 17 00:00:00 2001 From: Manus AI Date: Sun, 24 May 2026 11:09:13 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E9=AA=8C=E6=94=B6):=20=E5=AD=98=E5=AE=A2?= =?UTF-8?q?=E5=AE=9D3100=E6=9C=AC=E5=9C=B0=E8=81=94=E8=B0=83=E9=AA=8C?= =?UTF-8?q?=E6=94=B6=E8=A1=A8=20=C2=A7=E4=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充首页四接口与真任务脚本验收项,关联 cunkebao 对接 README。 Co-authored-by: Cursor --- .../2026-05-24_微信真机可见验收_单项确认.md | 186 ++++++++++-------- 1 file changed, 101 insertions(+), 85 deletions(-) diff --git a/开发文档/5、接口/06-验收与矩阵/2026-05-24_微信真机可见验收_单项确认.md b/开发文档/5、接口/06-验收与矩阵/2026-05-24_微信真机可见验收_单项确认.md index 69e7c57b10..074bf8befc 100644 --- a/开发文档/5、接口/06-验收与矩阵/2026-05-24_微信真机可见验收_单项确认.md +++ b/开发文档/5、接口/06-验收与矩阵/2026-05-24_微信真机可见验收_单项确认.md @@ -14,125 +14,141 @@ related: - "[[开发文档/README|开发文档总入口]]" - "[[开发进度总表]]" --- -# 微信真机可见验收 · 单项确认(2026-05-24) +# 微信真机验收 · WebSocket + Frida 主控(2026-05-24) -> **目的**:在你当前连接的 Redmi Note 13 上,用**可在手机里直接看到**的动作,确认 Hook 真机控制有效;并给出批量验收报告的**确定文件路径**。 +> **验收口径(已锁定)**:全部微信能力经 **WebSocket Agent → Frida Hook** 执行;**禁止**走服务端 ADB UI 自动化(`sdk_control` / `wechat_adb_engine`)。 +> 存客宝对接:**ThinkPHP BFF `/v1/workphone/*` → SDK `/api/v3/*`**,设备须 WS 在线。 --- -## 一、已确定的批量验收文档(先看这些) - -| 类型 | 结论 | 文件路径(本机绝对路径) | -|------|------|--------------------------| -| **REST 全矩阵 E2E** | **96/96 通过(100%)** | `/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/tmp/matrix_v8056_verify_xgfe65eimrrofyws_1779590389.md` | -| REST JSON 明细 | 同上 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/tmp/matrix_v8056_verify_xgfe65eimrrofyws_1779590389.json` | -| **Hook catalog 探针** | **173/173 通过** | `/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/tmp/matrix_hook_catalog_xgfe65eimrrofyws_1779590658.json` | -| **Hook E2E 脚本** | **8/8 通过** | `sdk/tests/test_hook_e2e.py`(Phantom 无 Agent WS) | -| **功能矩阵文档(带逐行状态)** | 0 项「待补全」 | `/Users/karuo/Documents/workphone-devdoc/5、接口/03-Hook与微信/微信全功能矩阵_v8.0.56.md` | -| 项目内同步副本 | 同上 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/开发文档/5、接口/03-Hook与微信/微信全功能矩阵_v8.0.56.md` | -| E2E 最近一次 JSON | 96/96 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/data/e2e_report.json` | - -**复验命令(后端)**: +## 一、标准启动(无线 ADB + WS Agent + Phantom Frida) ```bash -cd "/Users/karuo/Documents/开发/2、私域银行/工作手机" -SDK_MATRIX_VERIFY=1 python3 sdk/tests/test_wechat_full_e2e.py --matrix -SDK_MATRIX_VERIFY=1 python3 sdk/scripts/matrix_hook_catalog_verify.py -d xgfe65eimrrofyws +adb connect 192.168.110.80:5555 +cd "/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/scripts" +DEVICE_SERIAL=192.168.110.80:5555 bash frida_workphone_oneclick.sh +``` + +环境变量(SDK 已内置默认值,oneclick 自动 export): + +| 变量 | 含义 | +|------|------| +| `WECHAT_WS_HOOK_ONLY=1` | 微信仅 WebSocket Agent + Frida | +| `WECHAT_BACKEND_ONLY=1` | 禁止 u2/ADB UI 降级 | +| `SDK_MATRIX_VERIFY=1` | 矩阵验收跳过 batch 防封 | + +Agent 单独拉起(frida-server 已跑时): + +```bash +bash sdk/scripts/ensure_ws_agent.sh ``` --- -## 二、当前真机 / 微信真实情况(2026-05-24 10:38 现场拉取) +## 二、当前真机 | 项 | 值 | |----|-----| -| ADB 串号 | `192.168.110.80:5555`(无线,状态 **device**) | -| SDK device_id | `xgfe65eimrrofyws` | -| 手机型号 | Redmi Note 13 5G(gold / 2312DRAABC) | -| 微信版本 | **8.0.56** | -| 当前登录昵称 | **游条姐-游戏教学辅助看我朋友圈** | -| 当前 wxid | `wxid_5g37snchpv8e22` | -| 账号状态 API | `active`(Frida Hook 通道) | -| 微信进程 pid | 10446 | -| SDK 健康 | `http://127.0.0.1:8899/health` → **healthy** | +| ADB(无线) | `192.168.110.80:5555` | +| **WS device_id** | `192.168.110.80:5555`(与 ADB serial 一致) | +| 微信 | 8.0.56 | +| Frida | Phantom remote(见 `sdk/scripts/anti_detect/phantom_frida_config.json`) | +| 安全会话 | `filehelper` / 文件传输助手 | -说明:本机验收** deliberately 使用「文件传输助手」`filehelper`** 作为安全对象,**不会对陌生人发起加好友**,避免误加人。 - ---- - -## 三、本次「可见」单项确认(请你现在看手机) - -### 确认项 F-001:向文件传输助手发送文字消息 - -| 字段 | 内容 | -|------|------| -| **动作** | `POST /api/v3/message/send` → Hook → 微信发文字 | -| **发给谁** | **文件传输助手**(wxid: `filehelper`,微信里显示「文件传输助手」) | -| **不是加好友** | 未执行 `add_friend`;仅向已有系统会话发消息 | -| **消息内容 1** | `[工作手机可见验收] 20260524_103845 真机Hook发送-请看文件传输助手` | -| **消息内容 2** | `[可见验收 HH:MM:SS] 请在本机微信打开「文件传输助手」查看此条` | -| **API 返回** | `success: true`,`channel_used: hook` | -| **message_id** | `msg_1779590319666_281265` / `msg_1779590335482_289198` | - -### 你在手机上应看到什么 - -1. 已执行 **亮屏 + 打开微信主界面**(`adb` 唤起 `com.tencent.mm/.ui.LauncherUI`)。 -2. 进入 **「文件传输助手」** 会话。 -3. 聊天记录里应出现带 **`[工作手机可见验收]`** 或 **`[可见验收`** 前缀的**新发文字**(绿色气泡,右侧为自己发送)。 - -若聊天里暂时看不到最新一条,但 API 已是 `success: true`:说明 Hook 写入/发送链路已走通,UI 刷新可能有延迟;可下拉刷新或重新进入该会话。 - -### 截图留证(本机文件,可双击打开) - -| 说明 | 路径 | -|------|------| -| 验收前/中截屏 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/tmp/visible_verify_20260524_103845.png` | -| 唤起微信后截屏 | `/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/tmp/visible_verify_wechat_open_20260524.png` | -| **第 3 轮:亮屏+发消息+截屏** | `/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/tmp/visible_step3_103940.png` | - -在 Finder 中打开目录: +连接自检: ```bash -open "/Users/karuo/Documents/开发/2、私域银行/工作手机/sdk/tmp" +curl -s http://127.0.0.1:8899/api/v3/connection/status +# online_ws_count >= 1 且 online_device_ids 含设备 serial ``` --- -## 四、后端 / 前端成功判定 +## 三、SDK 验收命令(WS + Frida) -| 层 | 判定 | 依据 | -|----|------|------| -| **后端 SDK** | ✅ | `/health` healthy;send 返回 `code:200` + `success:true` + `channel_used:hook` | -| **Hook/Frida** | ✅ | `get_profile` / `account_status` 均 `frida/hook` 成功 | -| **批量自动化** | ✅ | `matrix_v8056_verify_*_1779590145.md` → 96/96 | -| **前端(存客宝)** | ⏳ 待你点页面 | 触客宝/workphone 页需绑 `device_id=xgfe65eimrrofyws` 后发同样接口;本文仅确认 **SDK+真机微信** 链路 | +```bash +DEV=192.168.110.80:5555 +# Hook ping +curl -s -X POST http://127.0.0.1:8899/api/v3/hook/execute \ + -H "Content-Type: application/json" \ + -d "{\"device_id\":\"${DEV}\",\"platform\":\"wechat\",\"action\":\"ping\",\"params\":{},\"hook_only\":true}" + +# 发消息(channel_used 应为 websocket/frida) +curl -s -X POST http://127.0.0.1:8899/api/v3/message/send \ + -H "Content-Type: application/json" \ + -d "{\"device_id\":\"${DEV}\",\"platform\":\"wechat\",\"to_id\":\"文件传输助手\",\"content\":\"[WS+Frida]\",\"msg_type\":\"text\"}" + +# 全矩阵 REST +SDK_MATRIX_VERIFY=1 SDK_DEVICE_ID=$DEV SDK_E2E_TO_ID=filehelper \ + python3 sdk/tests/test_wechat_full_e2e.py --matrix + +# Hook catalog 探针 +SDK_MATRIX_VERIFY=1 SDK_DEVICE_ID=$DEV \ + python3 sdk/scripts/matrix_hook_catalog_verify.py -d $DEV +``` --- -## 五、你能达到的效果(本账号实测能力摘要) +## 四、存客宝 BFF 对接(已补接口) -| 能力 | 是否已真机验证 | 说明 | -|------|----------------|------| -| 给指定会话发文字 | ✅ 本次可见 | 对象:`filehelper`;可改为任意 wxid/备注名 | -| 读消息列表 | ✅ | `get_messages` 可读 filehelper 历史 | -| 读联系人/资料 | ✅ | 昵称、wxid、版本 8.0.56 | -| 加好友 | ⚠️ Hook 探针过,**未对真人执行** | 需你指定 user_id 才做可见加好友测试 | -| 建群/退群 | ⚠️ 设备无有效 chatroom | `group_quit` 矩阵项跳过 | +| BFF | SDK | 前端 `workphone/api.ts` | +|-----|-----|-------------------------| +| `GET /v1/workphone/connection/status` | `/api/v3/connection/status` | `fetchWorkPhoneConnection` | +| `POST /v1/workphone/message/send` | `/api/v3/message/send` | `sendWorkPhoneMessage` | +| `POST /v1/workphone/hook/execute` | `/api/v3/hook/execute` | `executeWorkPhoneHook` | +| 原有 7 条 status/device/screenshot/ai/* | 不变 | 不变 | + +PHP 封装:`Server/application/common/util/WorkPhoneSDK.php` → `sendMessage` / `hookExecute` / `getConnectionStatus` + +**对接要点**:`device_id` 传 WS 注册 ID(本机=`192.168.110.80:5555`);调用前 BFF 可先查 `connection/status` 确认 `online_ws_count>0`。 --- -## 六、下一步建议(你说「继续」默认执行) +## 五、代码变更摘要 -1. **你确认手机**:文件传输助手是否看到 `[可见验收` 消息 → 回复「看到了」或「没看到」。 -2. **可选可见项**:指定一个**真实好友 wxid/备注**,我再做「发一条可见消息」或「改备注」并更新本文档 §三。 -3. **存客宝前端**:在 workphone 页用同一 `device_id` 点发送,对照本文档 message_id 做前后端一致验收。 +| 模块 | 变更 | +|------|------| +| `sdk/app/config.py` | 新增 `WECHAT_WS_HOOK_ONLY` | +| `sdk/app/routers/unified.py` | WS 优先;禁止服务端 ADB Frida 回退;`message/send` 走 WS execute | +| `sdk/agent/agent.py` | 自动读 phantom_frida_config → remote Frida | +| `sdk/scripts/frida_workphone_oneclick.sh` | Agent remote Frida + SDK 环境变量 | +| `sdk/scripts/ensure_ws_agent.sh` | WS Agent 保活脚本 | +| 存客宝 route + Controller + WorkPhoneSDK + api.ts | BFF 三条 + 前端封装 | --- -*生成时间:2026-05-24 · 设备 xgfe65eimrrofyws · 引擎 Frida Hook v3.1* +## 六、批量报告路径 + +| 类型 | 路径 | +|------|------| +| REST 矩阵 | `sdk/tmp/matrix_v8056_verify_*` | +| Hook catalog | `sdk/tmp/matrix_hook_catalog_*` | +| E2E JSON | `sdk/data/e2e_report.json` | +| Agent 日志 | `sdk/logs/agent.log` | +| SDK 日志 | `sdk/logs/sdk.log` | + +--- + +## 七、存客宝 3100 本地联调验收(2026-05-24) + +| 检查项 | 命令/页面 | 预期 | +|--------|-----------|------| +| 首页设备 | `GET /v1/dashboard` | `deviceNum=1` | +| 今日群发 | `GET /v1/dashboard/today-stats` | `groupPushNum>=1` | +| 场景获客 | `GET /v1/dashboard/plan-stats` | 海报获客 `allNum>=1` | +| 7日趋势 | `GET /v1/dashboard/sevenDay-stats` | 非全 0 | +| SDK 状态 | `GET /v1/workphone/status` | `sdk_online=true` | +| 真任务 | `run_workbench_friend_push_once.php` 等 | 真机收消息 | + +文档:`cunkebao_v3/开发文档/工作手机对接/README.md` §本地 Docker 联调 + +--- + +*引擎:WebSocket Agent + Frida Hook v3.1 · WECHAT_WS_HOOK_ONLY · 2026-05-24* + ## 🔗 关联导航 | 方向 | 文档 | |------|------| | ↑ 上级索引 | [[5、接口/06-验收与矩阵/README|06-验收与矩阵]] | -| ↔ 相关 | [[接口规范]] · [[微信全功能矩阵_v8.0.56]] · [[工作手机API全量接口目录]] · [[开发文档/README|开发文档总入口]] · [[开发进度总表]] | +| ↔ 相关 | [[接口规范]] · [[微信全功能矩阵_v8.0.56]] · [[工作手机API全量接口目录]] |