阶段2: USB 远程 adb server 打通(220 host 网络 5037 全接口监听,无需改 220)+ 自建远程看屏(MJPEG 流 + u2 触控 tap/swipe/key/text,ws-scrcpy 不在 npm 改自建)

This commit is contained in:
2026-08-17 16:50:12 +08:00
parent 5354fe6379
commit 645938b305
10 changed files with 466 additions and 50 deletions
+7 -7
View File
@@ -13,13 +13,13 @@ STF 当前仅提供:occupy/release 互斥、present+ready 健康信号、设
1. **设备清单放本地 SQLite**(data/users.db 新增 devices 表),220 的 connect_devices.sh
退役(其"每 5 分钟补连"职责由平台定时器 + SSH 兜底接管,或直接依赖 adb 重试)
2. **USB 有线设备保留支持**——当前舰队 0 台 USB(全 IP:5555),但能力要保留。
方案:220 的 adb 容器发布 5037 端口(改 docker 运行参数,唯一动 220 的地方),
平台通过 Tailscale 用 `adb -H <220> -P 5037` 和 `adbutils.Adb(host=220)`(u2 底层)
驱动远端 USB 设备;本机 USB 设备照旧走本地 adb。已验证 uiautomator2 3.7.0 底层
adbutils 支持远程 adb server
3. **网页远程看屏**——引入 **ws-scrcpy**(Node 服务,WebRTC 低延迟流 + 触控),
与平台同机部署、内嵌管理员页面 iframe;本机 adb 即数据源,无需 STF。
备选:自建 minicap JPEG 流 + u2 注入(2-3 天),或保留 STF 容器只做看屏(不推荐,依赖没摘干净)
实施中发现 **220 的 adb 容器是 host 网络模式、5037 已监听所有网卡(含 Tailscale
100.100.10.1),无需改动 220 任何配置**。平台用 `adb -H 100.100.10.1 -P 5037`
和 `adbutils.AdbClient(host=..., port=5037)`(u2 底层)驱动远端 USB 设备;
本机 USB 设备照旧走本地 adb。已验证(阶段 2 完成)
3. **网页远程看屏**——原计划 ws-scrcpy **不在 npm 分发**(仅 GitHub,国内下载不可靠),
改**自建**:MJPEG 流(u2/atx-agent minicap 截图,~5fps,实测 0.19s/帧)+ u2 触控
(tap/swipe/key/text),管理页新子分栏,零新依赖(阶段 2 完成)
---