Files
workphone-sdk/20260809_WP_CONSOLE_58_ONBOARDING_PREP

WP-CONSOLE-58 · M2-08 自动接入准备包

一句话结论

已经把“下载 → 安装 → 扫码 → 首次 WSS 上线 → 设备列表 → 单机页回读”收成一个默认只读、可回滚、必须独占发布口令才能放行的执行器。当前只完成本地离线演练,手机动作数为 0。

现状判断

  • 已有 M2-08 页面入口、APK/Agent 资源和二维码页面;这些内容只做本地清单与哈希核对。
  • 已有绑定测试手机的历史回读证明在线、微信运行和一次 4.786 秒重连,但它不是首次安装扫码链路。
  • 现有资源包发布门禁仍是阻断态,且记录了 Hook 内嵌资产与源文件哈希不一致;真实执行前必须重新生成并复核资源包。
  • 现有无线 Agent 脚本包含停进程或依赖主机调试通道的分支,本准备包不调用它。

文件

文件 作用
wp_console_58_onboarding.py 主执行器;默认 --dry-run,真实模式必须同时满足发布口令、独占窗口释放、资源门禁、唯一设备 ID 和适配器存在
config.example.json 参数模板;不含口令、令牌或密钥
adapter_contract.md 设备端无线适配器输入/输出契约;当前仓库没有可直接复用的安装适配器,所以真实执行会闭锁
BACKUP_MANIFEST.json 已有 Agent/APK/安装包备份的本地路径与 SHA-256 摘要
DRY_RUN_RESULT.json 本轮离线演练证据
test_wp_console_58_onboarding.py 标准库单元测试,覆盖门禁、计时、唯一 ID 和失败回滚

离线验证

cd "/Users/karuo/Documents/开发/2、私域银行/工作手机"
PYTHONDONTWRITEBYTECODE=1 python3 20260809_WP_CONSOLE_58_ONBOARDING_PREP/wp_console_58_onboarding.py \
  --dry-run \
  --output 20260809_WP_CONSOLE_58_ONBOARDING_PREP/DRY_RUN_RESULT.json

PYTHONDONTWRITEBYTECODE=1 python3 -m unittest \
  20260809_WP_CONSOLE_58_ONBOARDING_PREP/test_wp_console_58_onboarding.py -v

演练会验证两条路:

  1. 没有独占发布口令时必须拒绝进入真实执行;
  2. 使用内存夹具模拟成功闭环和上线阶段失败,确认 180 秒计时、目标 ID 一致性、回滚调用和单机页回读契约都成立。

真实执行前置

  1. 复制 config.example.json 为本地私有配置,填入完整目标设备 ID、SDK 地址、资源期望哈希和无线适配器绝对路径。
  2. 资源包发布门禁必须变为 released当前阻断态不得放行。
  3. 独占窗口释放描述必须明确写入 window_file,且 scope、window_id、target_device_id 与任务完全一致。
  4. 发布口令只通过权限受控的文件传入,脚本只比对 SHA-256不把口令写入日志。
  5. 适配器必须只走 CLI/API → WSS Agent不得使用 USB、ADB、界面点击或主机调试兜底。

真实执行命令模板

下面命令只是模板;未填私有配置、未生成发布口令和未提供适配器时会直接闭锁:

python3 20260809_WP_CONSOLE_58_ONBOARDING_PREP/wp_console_58_onboarding.py \
  --execute \
  --config /ABSOLUTE/PATH/config.json \
  --release-token-file /ABSOLUTE/PATH/release.token \
  --output /ABSOLUTE/PATH/run-result.json

回滚原则

  • 下载完成前失败:只保留本地运行证据,不触碰手机。
  • 安装或扫码阶段失败:先调用适配器 rollback,再保留备份、日志和原始回执;不自动解绑、不重启、不清配置。
  • 上线或单机页回读失败:按失败处理,不把“命令已发送”算成成功。
  • 任何设备 ID、窗口 ID、资源 SHA、通道或回读不一致立即停在当前阶段。