butubb
615f9cf0d5
fix(APK 安装): 「推送不完整」是误报——adb 退出 ≠ 设备写完
用户报:安装 APK 显示「推送不完整(设备 3605447 / 本地 5933150 字节)」。
排查(220 现场 + 复现):这不是传输失败,是**检查时机太早**。
`adb exec-in` 把数据交给设备侧(adbd → shell → `cat >`)后,缓冲里的数据还在继续落盘:
同一份 5.9MB 的 APK,adb 刚返回时 stat 读到 3710967,紧接着 4264448,几秒后才是完整的
5933150(逐步实测)。旧实现只量一次就判失败,于是同一份文件在多台设备上"失败"了 8 次,
断点各不相同(2.7M/3.3M/3.6M/3.9M)—— 典型误报指纹。
修法(core/apk_manager.py):
- 新增 `_wait_remote_size()`:收尾**轮询**设备文件大小直到长齐(默认最长 20s);
stat 取不到(机型差异)时返回 None,照旧跳过校验,不误报。
- 只有真不齐才退回 `adb push` 重传(原来直接判失败)。
- `_push_fallback` 也补一次大小校验:adb push 虽同步,但设备空间不足/被并发覆盖时
"1 file pushed" 也可能是残缺的。
影响:这个误报不只是显示难看——它会让整台设备的安装直接失败(明明是好的包)。
2026-09-14 09:08:37 +08:00
..
2026-09-10 21:43:08 +08:00
2026-09-10 21:43:08 +08:00
2026-08-30 10:57:07 +08:00
2026-09-14 09:08:37 +08:00
2026-08-20 10:51:54 +08:00
2026-09-13 10:38:13 +08:00
2026-09-13 10:30:15 +08:00
2026-09-11 11:03:38 +08:00
2026-08-19 08:08:40 +08:00
2026-09-10 21:43:08 +08:00
2026-09-13 14:40:38 +08:00
2026-09-04 14:33:28 +08:00
2026-08-15 15:22:55 +08:00
2026-09-13 14:40:38 +08:00
2026-08-11 09:06:59 +08:00
2026-09-13 23:08:59 +08:00
2026-09-11 11:23:19 +08:00
2026-08-07 13:55:48 +08:00
2026-09-14 08:14:11 +08:00