remote/tools
郑博文 8993a38658 fix(android): BACK 键改用自测键盘可见性——isAcceptingText 会让会话永远断不掉
真机实测(vivo S6 + 讯飞,2026-10-30):软键盘已隐藏、mInputShown=false,
但 imm.isAcceptingText 仍返回 true——只要 InputConnection 还绑着它就是 true。
原先用它判断「先关键盘还是先断会话」,后果是第一次 BACK 空转,第二次也进不来
(我们已 return true),会话再也断不掉。这不是推测,是完整链路 proof 跑到
step 5 时实测失败的。

改为自测:比较根窗口可见区域与窗口高度,被 IME 吃掉超过 15% 视为可见;
用 OnGlobalLayoutListener 被动跟踪(没有公开 API 能直接查询,API 34 上
getInputMethodWindowVisibleHeight 也不是公开接口)。阈值用比例不用固定像素。

验证:diag 依次显示「键盘可见」→「键盘隐藏」→ 会话断开回表单;
随后完整链路 proof 与中文 proof 均复跑通过。

同时修正 phone_chain_proof 的 V4 断言:uiautomator 属性顺序是 text= 在
class= 之前,原正则要求反序,导致打印空表单行仍判 PASS(假绿)。
空 EditText 的 text 会回显 hint,所以判据改为比对实际输入值。
2026-10-30 13:31:28 +08:00
..
bench.md feat(hud): B1 基线指标——抖动/帧间隔p95/丢包率/解码失败计数 + 测试脚本 2026-10-23 09:47:09 +08:00
capture_evidence.ps1 test(android-2b): 真机 IME 提交 proof 与字节安全证据采集 2026-10-30 13:06:08 +08:00
ime_chinese_proof.ps1 test(android-2b): 真机中文候选词 proof——拼音组词经 commitText 落到 Windows 2026-10-30 13:15:27 +08:00
ime_commit_proof.ps1 test(android-2b): 真机 IME 提交 proof 与字节安全证据采集 2026-10-30 13:06:08 +08:00
phone_chain_proof.ps1 fix(android): BACK 键改用自测键盘可见性——isAcceptingText 会让会话永远断不掉 2026-10-30 13:31:28 +08:00
punch_probe.py fix(tools): 探针区分信令回复与打洞包,修掉打洞假阳性 2026-10-23 18:02:14 +08:00
rendezvous.py feat(tools): 打洞探针与极简 rendezvous 服务器(Python POC) 2026-10-23 17:32:17 +08:00
shot.ps1 test(android-2b): 真机 IME 提交 proof 与字节安全证据采集 2026-10-30 13:06:08 +08:00
text_injection_proof.ps1 feat(android): 键盘事件双通道 + 手机到 Windows 全链路 proof 2026-10-30 12:58:36 +08:00
text_target.ps1 feat(android): 键盘事件双通道 + 手机到 Windows 全链路 proof 2026-10-30 12:58:36 +08:00