开机失败或超时时,留下客体现场(logcat、dmesg 等)
Maintainer thường phản hồi trong vòng 1 ngày
@qiyinxi đang làm issue này rồi.
Từ ngày 1/11/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
现象
modavd start / create(以及管理器、MCP 的开机)只在安卓开机完成以后,才开始把客体日志存进 <根目录>\logs。开机超时、launch_failed、zygote 起不来时,只留下模拟器自己的日志,没有 logcat,也没有 dmesg。
10-31 实测碰到过一次:新建的 6 GB 实例首次开机约 271 秒仍没完成,sys.boot_completed 一直为空,gpu、media、zygote 反复重启,当时现场看到 logcat 报 CANNOT LINK EXECUTABLE ... library "libstatspull.so" not found。
libstatspull.so在压缩 APEXcom.android.os.statsd里,首次开机才解压到/data/apex/decompressed/,那次应该是这一步没成。- 删掉实例、按同样的 6 GB、4 核配置重建,首次开机就正常了,之后没再复现。
- 原因查不到:客体日志没存下来,数据盘也随实例删了。
要做到的
开机失败或超时时,在关机之前尽量收一份客体现场:
logcat -d -b all、dmesg(要 root 就先试su 0)、getprop、ps -A、/proc/meminfo、dumpsys activity processes的头几百行;- 放进
logs\<实例名>-<时间>-bootfail\,路径写进错误结果的details(只加字段,不改错误码和已有字段); - 每一项都有时限,拿不到就跳过;整个收集有总时限(比如 30 秒),不让失败的开机拖得更久;
- 这些文件可能带账号信息,和问题包的规矩一样只存本机。
进度
已经在做:本地分支 fix/boot-diag,还没推到公开仓库。它基于较早的 376664e,开 PR 前要先 rebase 到现在的 main。
审查留下、还没改的(P2):
- 用户取消开机时也会去收集现场,afterBoot 之后那一处甚至只在取消时才触发。改成只在真失败时收集(
timeout、launch_failed、zygote 起不来),并补测试:取消时不收集。 dumpsys activity processes | head -n 300一直收不到:adb shell 会把多个参数直接拼起来、不加引号,内层的sh -c只执行了不带参数的dumpsys。改成单个字符串传给 shell(和m.shell的写法一致),测试里对拼出来的整条命令做断言。setupNew在新建的期限到了、或者被取消时又包一层错误,details丢了,现场目录的路径传不出去。bootfail目录从来不清理,也不算进日志的保留数量和 1 GiB 总量。- logcat 单项只给 5 秒,而且要求退出码为 0:被杀掉或非 0 退出时,已经读到的内容全丢。改成保留已读到的部分。
modavd collect-info收不到这个目录:它只按文件名收logs下的日志。要把*-bootfail目录一起收进问题包。
P3:README 的 --json 约定里补上 details;文本模式也打印现场目录的位置。
验收
- 用一个开不完机的实例跑
modavd start:超时报错,logs里有这次的-bootfail目录,报错和--json的details里有路径; - 开机中途取消(
Ctrl+C、管理器里点「关机」)不收集; collect-info打出的问题包里有这个目录;- 正常开机的行为和日志不变,用假 adb 测到各条命令分别成功、超时、失败。
- Ngôn ngữ chính
- Go
- Star
- 0
- Fork
- 1
- Merge trung bình
- 2 giờ 42 phút
- Pull request đã merge (30 ngày)
- 13
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ModAVD/ModAVDManager
-
netsimd 卡住后,这台机器上所有模拟器都开不了机Đang mởbug P1 platform:windows
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 12/100
ModAVD/ModAVDManager#32 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
实例里按应用走代理(VpnService 只接名单里的应用)Đang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
ModAVD/ModAVDManager#27 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
游戏中心:管理器下载安装包,装进实例Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
ModAVD/ModAVDManager#25 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug P3 platform:windows
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
ModAVD/ModAVDManager#23 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug P3 platform:windows
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
ModAVD/ModAVDManager#22 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của ModAVD/ModAVDManager
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Schema validation is skipped when a transaction is invoked with a lowercase first letterCó thể đã có người làm @RaphaelFakhri đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
-
cmd/ebitenmobile: multi-language bindings run the complete generator twiceCó thể đã có người làm @kumagi đã nhận hôm nay. Đang mởos:macos performance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
hajimehoshi/ebiten#4011 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
agent-butler-finding chore
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
jordansmall/spindrift#6318 ·
Maintainer thường phản hồi trong vòng 1 ngày