Skip to content

fix(adb): improve iQOO12 Pro stability with dumpsys fallbacks, device binding, and screenshot fallback hardening#374

Open
ztxdcyy wants to merge 1 commit intozai-org:mainfrom
ztxdcyy:fix/adb-fallback-device-binding-iqoo12pro
Open

fix(adb): improve iQOO12 Pro stability with dumpsys fallbacks, device binding, and screenshot fallback hardening#374
ztxdcyy wants to merge 1 commit intozai-org:mainfrom
ztxdcyy:fix/adb-fallback-device-binding-iqoo12pro

Conversation

@ztxdcyy
Copy link

@ztxdcyy ztxdcyy commented Mar 8, 2026

背景

在 vivo iQOO 12 Pro(Android/OriginOS)上执行任务(如“打开设置,然后停止”)时,出现不稳定中断。

设备环境

  • 机型:vivo iQOO 12 Pro
  • 连接方式:ADB(USB/Wi-Fi)
  • 场景:系统设置页、系统小窗/侧边栏等界面

问题现象

  1. dumpsys window 单命令无法稳定拿到焦点 app。
  2. 偶发 adb: more than one device/emulator,导致任务中断。
  3. 截图失败时回退黑图,LLM 误判为“敏感页面”,触发不必要 Take_over

根因分析

  1. 不同 ROM/系统界面(尤其小窗、侧边栏)会改变焦点信息所在的 dumpsys 子命令输出,单一路径不可靠。
  2. 未显式绑定 device_id 时,ADB 在多 transport 场景天然不稳定。
  3. 截图失败被过度归类为敏感屏,放大了上游 ADB 异常的影响。

修复内容

  1. 为当前 app 检测增加多级 fallback:dumpsys window displays -> window windows -> window -> activity activities -> activity top
  2. 在未传 --device-id 时自动选择首个健康设备(status=device),并在系统检查阶段也使用该设备。
  3. 截图失败改为“通用失败”与“敏感屏”分流,只有明确安全拦截特征才标记敏感。
  4. 错误信息增加 returncode/stderr,便于快速诊断。

验证建议

  1. python main.py --device-id <real_device_id> "打开设置,然后停止"
  2. 在 iQOO 12 Pro 上进入系统设置/小窗侧边栏场景重复执行。
  3. 同时保留模拟器或远程设备,确认不再出现 more than one device/emulator 中断。
  4. 人为制造一次截图失败,确认不再被误判成敏感页接管。

- add dumpsys fallback chain for current app detection (incl. window displays)\n- auto-select healthy adb device when device_id is missing\n- pass selected device_id into ADB system checks\n- avoid false sensitive-screen classification on generic screenshot failures\n\nContext: observed on vivo iQOO 12 Pro where system sidebar/floating-window UI can break single dumpsys window parsing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant