4.4 KiB
4.4 KiB
工作手机 SDK · 线上部署与真机验收(2026-07-14)
目标与结果
将工作手机 SDK 部署到存客宝宝塔 Docker,通过 wpsdk.quwanzhi.com 提供 HTTPS/WSS,让授权 Redmi 真机扫码/配置后主动连接,并验证设备管理与微信安全读类链路。
当前结论:线上服务、鉴权、CORS、WSS 真机、设备控制、宝塔 Frida RPC 和 15 项微信读类均已通过;朋友圈发布失败,其他写类仍需白名单逐项验收。
线上架构
Android 工作手机
└─ WSS + pairing token
└─ wpsdk.quwanzhi.com:443(宝塔 Nginx / TLS)
└─ 127.0.0.1:8899(workphone-sdk-baota)
├─ workphone-mongo-baota
└─ workphone-redis-baota
纯客宝/存客宝 BFF
└─ HTTPS + X-API-Key → wpsdk.quwanzhi.com/api/v3/
实际部署文件
sdk/docker-compose.baota.yml:宝塔生产 Compose。sdk/.env.baota.example:仅变量模板,无真实密钥。sdk/deploy/baota/wpsdk.quwanzhi.com.conf:HTTPS/WSS 反代。sdk/scripts/deploy_baota_wpsdk.sh:上传、构建、启动、证书与 Nginx 校验。- 服务器目录:
/www/wwwroot/workphone-sdk。
手机绑定
生产二维码由受 API Key 保护的 /api/v3/qrcode/generate 生成,内容至少包含:
server:wss://wpsdk.quwanzhi.com/ws/deviceproject:cunkebaopairing_token: 仅服务器环境注入
手机端点击“扫描系统二维码”完成绑定。二维码含配对令牌,禁止截图入库、发群或写进文档。
验收证据
| 层级 | 结果 |
|---|---|
| DNS | wpsdk.quwanzhi.com → 42.194.245.239 |
| 容器 | Mongo、Redis、SDK 均 healthy |
| SDK | /health healthy,/ready true |
| 安全 | 无 Key 401;有 Key 200;8899 仅绑定本机 |
| TLS | Let's Encrypt,证书有效至 2026-09-25 |
| 真机 | Redmi 2312DRAABC / Android 13 / Agent 5.0.1 |
| WSS | 真机在公网 SDK 显示 online |
| 设备 ID | 管理与业务字段提供 MD5:ed25814d9c92b3430696dc96c2142b5f |
| 微信读类 | ping 与 get_wechat_version 均由公网 Fleet→WSS→APK 成功回执;微信 8.0.69 |
| 密钥保护 | 日志与 API 不回显配对令牌 |
| 令牌轮换 | 本轮曾进入调试输出的旧配对令牌已撤销;新令牌已下发并重新绑定成功 |
| Frida 服务 | Root 可用,Frida 16.5.6 在非默认端口可达,APK 回执 frida_server_ready=true |
| 微信 Hook/RPC | 宝塔 server/frida 已持有微信 Session 并取得真实 RPC 回执,能力目录为 96 actions / 26 modules |
| 微信读类 | 15 项公网读类均 HTTP 200:资料、联系人、群、标签、近期消息、账号安全及设备信息等 |
| 设备控制 | 启动应用、当前应用、UI 树、1080×2400 PNG 截图均已通过 |
| 浏览器调用 | CORS OPTIONS=200,允许外部网页携带 X-API-Key |
| 并发 | 5 路公网 ping 并发 5/5 HTTP 200,通道均为 server/frida |
安全调用样例
curl -fsS https://wpsdk.quwanzhi.com/health
curl -fsS https://wpsdk.quwanzhi.com/ready
curl -X POST https://wpsdk.quwanzhi.com/api/v3/fleet/execute \
-H 'X-API-Key: <从服务器安全环境获取>' \
-H 'Content-Type: application/json' \
-d '{
"device_ids": ["<device_id>"],
"platform": "wechat",
"action": "get_wechat_version",
"params": {}
}'
回滚
- 只处理
/www/wwwroot/workphone-sdk与wpsdk.quwanzhi.com独立站点,不改存客宝其他容器。 - 在服务器目录使用上一个发行包/镜像重新执行 Compose。
- 执行
nginx -t后再 reload。 - 验证原有宝塔站点、SDK
/health和手机重连。
未完成边界
- APK 面板中的本地 Hook 状态与宝塔
server/frida是两条通道;本轮以服务器真实 Session/RPC 回执验收,不能把 APK 面板灰色误判为服务器 RPC 失效。 - 朋友圈图文发布两次均由微信提示“内容未发表”,按失败记录,未伪报成功。
- 发消息、群发、加友、朋友圈互动等写类仍需测试白名单和操作前确认。
- 还需完成纯客宝/存客宝 BFF 业务页面验收及 24 小时稳定性。
完整明细:公网 SDK 完整测试汇总;外部调用:公网 API 对接文档。