android: USB hardening from device logs - async stream reader, CLEAR_HALT recovery, session mutex, detach handling, fast init
This commit is contained in:
@@ -249,10 +249,32 @@
|
||||
- 注:取日志时 DCIM/MAG160C 和 Download/MAG160C 都看一眼(文件头 sink= 注明
|
||||
实际位置);若在前者失败会自动落后者。
|
||||
|
||||
## 用户反馈修复 第十三轮(2026-09-10,真机日志分析:端点静默 + 重枚举)
|
||||
|
||||
- [x] **用户回传 debug 日志**(vivo V2509A, Android16):相机识别/DDT/66b 响应全正常
|
||||
(SN 160043865),但 66c/66f 响应超时、FFC/START 第一轮写失败(write=-1,
|
||||
端点疑似 halt)、流端点 19 秒 0 字节;00:51:10 相机重新枚举(权限再次弹出)
|
||||
——相机在会话中途疑似断电/复位;且新旧两个 Activity 的会话同时在抢同一设备
|
||||
(claimInterface 互相夺走)。
|
||||
- [x] **IrSession 加固**:流端点改 **UsbRequest 异步**(API30+,position=字节数;
|
||||
低版本回退同步 bulkTransfer);任何 transfer 失败先 GET_STATUS 诊断 +
|
||||
**CLEAR_FEATURE(HALT)** 再重试一次;66b/66c/66f 响应读取缩短为 400ms 且
|
||||
失败不阻断(与 C 参考一致);**会话互斥**(companion active,新会话先停旧
|
||||
会话);stop() 时序修复(STOP 在 close 之前发,由 streamLoop 收尾)。
|
||||
- [x] **LiveViewModel**:注册 USB **DETACHED** 接收器(VID 匹配→停会话+no_device);
|
||||
connect() 800ms 去抖;流 10 秒 0 数据 notify `no_stream_data`
|
||||
(LiveScreen 屏显"已连接但无数据流")。
|
||||
- [x] 构建+单测全过;APK 已更新(11.87MB)。
|
||||
- ⚠️ **下一步排查(若仍无流)**:相机中途重枚举强烈怀疑 **OTG 供电不足**
|
||||
(vivo 口限流 → 相机 MCU 帧处理起来后掉电复位)。请用户:① 换一根好点的
|
||||
短线/带供电的 OTG 转接器再试;② 在同一台手机装官方普通版 MAG-Cx 对照
|
||||
(若官方也掉,就是供电/兼容问题,与我们的代码无关);③ 新日志看
|
||||
`usb detached` 与 `get_status halted=` 行。
|
||||
|
||||
## 待办
|
||||
|
||||
- 真机USB实测(温度绝对值标定、FFC/录像/MDT保存端到端)——当前进行中:
|
||||
第11轮日志落盘 APK 待用户回传 debug_*.log 分析
|
||||
- 真机USB实测(温度绝对值标定、FFC/录像/MDT保存端到端)——进行中:
|
||||
第13轮加固 APK 待用户复测;若仍无流,按上方供电排查三步走
|
||||
- 网络互连远程预览(用户需求:UDP自动发现+手动IP)
|
||||
- 离线MDT温度解码(ConvertResponse2Temperature+标定参数,待真机文件对照)
|
||||
- 厂商12调色板精确提取(需运行时抓取)
|
||||
|
||||
Reference in New Issue
Block a user