文件
rtos-watch-debug-bridge/docs/VALIDATION.md
T

58 行
5.8 KiB
Markdown

# S2 真机链路补测与常亮探针
日期:2026-11-14,Asia/Shanghai。手机 APK 保持 **0.2.0 / 3**;手表探针为 **1.0.4 / 10004**。当前已通过真机设备信息、安装、官方截屏、探针页面、手动触摸,以及本固件上至少 159 秒的前台静置常亮。通用远程输入和真机 Inspector 尚未通过。原始失败报告保留。
## 真机链路与设备
保留配对数据重启运动健康、正常打开并等待 connected=true 后,设备信息、应用检查、日志开关、探针安装及启动请求恢复 code 200。Binder bound 早于手表在线;`wait-link --seconds 45` 只轮询在线查询,不重放安装或写入 RPC。尚不能断言所有 `3000 svc exec failed` 都能由此解决。
实际设备信息放在回调 **msg 的 JSON 字符串**中,values 为空;已修复白名单解析并增加脱敏回归。设备报告 OPPO / **OWW265**,nucleus **0.8.0-229**,runtime **0.8.0-5**,手表 MAS **2006005**;手机 SDK **2006006 / 263** 是手机接口版本。报告不保留 MAC、UUID、vendorId 或原始健康业务日志。
P30PRO 为 VOG-AL00 / API29,运动健康 6.10.15。USB 离线后,通过核验为同一手机的已授权网络 ADB `YOUR_PHONE_SERIAL` 完成后续操作。其他 OWW261 ADB 设备不属于本链路。地址可能变化,先查询 `adb devices -l`,按当前手机地址替换示例。手机调试 API 仍仅监听回环地址。
## 常亮:失败记录与修复结果
1.0.3 只调用 `@system.brightness.setKeepScreenOn(true)`。离开充电座、用户重新打开后取得起始探针图;至少 79 秒后复查已回到表盘,用户明确回复“已熄屏”。因此该版本常亮实测失败,不能继续写作仅充电遮挡或待验证。
1.0.4 增加 `wakeScreenOn({ screenOn: true })`,按官方文档省略 timeout 表示不限时间,并在前台每 15 秒续期。隐藏/销毁均清理定时器、使旧回调失效并释放 setKeepScreenOn(false);没有在后台持续唤醒,也没有修改亮度、自动亮度或永久系统设置。参考了官方接口及用户指定仓库的前台续期用法;Watch S 的参考结果不替代 S2 实测。
| 1.0.4 实测 | 结果 |
| --- | --- |
| 用户状态 | 已取下充电座,打开探针后不触摸 |
| 起始截图采集完成 | 13:01:35,探针 1.0.4,次数 0 |
| 复查请求 / 完成 | 13:04:14 / 13:04:25,保守静置至少 159 秒 |
| 复查画面 | 仍显示探针 1.0.4、“常亮续期中 · 待实测”、次数 0 |
| 实体屏幕观察 | 用户回复“仍亮着,显示探针” |
| 手动触摸 | 用户在 S2 点一次按钮;随后官方截图确认次数 0→1 |
静置前后画面相同,JPEG SHA-256 均为 `B46FD339DCEE4D6BA5406C98847867A6F50F89A64F605CADA383125EE6C1C13A`;手动点击后为 `4E0EACFFAEFEF868382D8D92DB2F07864090306F9B3D61114D3CBC9630783AAB`。图片均为官方健康截屏流程导出的 480×464 JPEG。交付证据含前后采集记录、1.0.3 失败记录、实体观察回复及手动点击图。截图单独不能证明 OLED 通电,亮屏结论同时依据用户现场观察。
验收范围为这台 S2、当前固件的短时前台调试常亮,尚未测试长时间续航或全部系统策略。页面保留“待实测”文案,因为每次新设备/会话仍需观察。退出探针可释放调试常亮。P30PRO 原有 stay_on_while_plugged_in=3 已保留。
来源:[Glyphix 亮度管理](https://docs.xfaith-tech.com/glyphix/docs/api/system-brightness.html)、[用户指定参考仓库](https://github.com/chengchengking/oppo-watch-s-sideload/tree/main)(本地快照 `162fca4aa51302e18ee9802dc5269e54814c02e8`,本轮未刷新)。
## 仍未打通的能力
用户从图标打开的探针 1.0.0 和 1.0.4 均有真实页面证据。多次远程 launch 返回 200 后截屏仍为表盘,故远程前台启动尚未确认。当前手动触摸成功不能证明 PC 触摸注入;通用 S2 点击/滑动、Inspector 隧道和 JS console READY/TAP 仍未通过。
`auto_test_start` / `auto_test_stop` 最小脚本均最终返回 **3000 svc exec failed**。之后一次安装在 0 字节进度后失败,重启健康并等待重连后安装恢复。这是观察到的恢复路径,SDK 内部根因尚未确定。
临时 1.0.1/1.0.2 网络探针没有收到电脑服务请求,未作为成功通道,最终源码已移除该通道。未修改认证状态、冒充健康、替换桌面槽位或清理配对数据。
## 软件验证与后续使用
20 项 Python 测试通过;1.0.4 的 5 项生命周期 Node 测试通过,覆盖定时器唯一性、隐藏/销毁释放、旧 Promise 隔离、缺少接口和亮屏拒绝停止续期。圆/方 QuickApp 构建与两种原生模拟器 UI 通过。模拟器控件自动点击独立于 S2 手动触摸证据。本轮未修改 Android 源码或 APK,沿用已实装并回读核验的 0.2.0 包。
从 phone-debug-bridge 目录运行(按 `adb devices -l` 选择同一手机):
```powershell
python bridge.py --serial YOUR_PHONE_SERIAL connect
python bridge.py --serial YOUR_PHONE_SERIAL wait-link --seconds 45
python bridge.py --serial YOUR_PHONE_SERIAL info
python ui.py --target watch-health --serial YOUR_PHONE_SERIAL screenshot --output artifacts/s2.jpg
```
若服务持续 3000,先查看已有作业结果;可保留配对数据重启健康,等待重连再单次验证。重启健康会短暂中断同步。不要把未确认支持的 RPC 放入自动循环。
RPC 日志此前已成功关闭,本轮未重新开启;上传缓存已清理。临时电脑网络服务及 18766 反向转发已移除,手机桥与 18765 正向转发保留供后续调试。结束时执行 `bridge.py --serial <当前手机> disconnect`、`cleanup`、`stop`;退出手表探针结束应用常亮。未发布应用商店或生产服务;独立源码及附件发布另见本仓库发行版。