Skip to content

开机过程中挂客体库补丁,开机后不再黑屏重来;Pixel 桌面的卸载等写盘、开机补卸 - #178

Merged
qiyinxi merged 1 commit into
ModAVD:mainfrom
qiyinxi:fix/boot-patch-under-bootanim
Nov 15, 2026
Merged

qiyinxi merged 1 commit into
ModAVD:mainfrom
qiyinxi:fix/boot-patch-under-bootanim

Conversation

@qiyinxi

@qiyinxi qiyinxi commented Nov 15, 2026

Copy link
Copy Markdown
Member

改了什么

  • 开机时不再"进桌面又黑屏重来"(开机时先进了桌面又黑屏重来一次,看着像开了两遍 ModAVD#220):挂客体库补丁(Vulkan 驱动、ARM 转译层)要重启 zygote,原来排在开机完成之后,带窗口时桌面露出来又没了。初始化过的实例现在在等开机时、adb 一能用就挂(earlyGuestFixes,要求 zygote 在跑、sys.boot_completed 还不是 1),这时屏幕上还是开机动画;开机后的补丁步骤只看到已挂上。万一重启前开机刚好完成,照旧等系统界面回来再往下走。
  • 新实例的第一次开机不在开机过程中挂(不打断 system_server 的第一次启动),仍在开机后挂,但从开机后设置的最后一步挪到第一步。之后的设置都跑在重启后的框架上,重启后补做方向、复查输入法的代码删了(recheckHostIme)。
  • 1080p 底部的任务栏(1080p 实例桌面底部多了一条任务栏(全部应用、Chrome 图标) ModAVD#221):首次初始化卸载 Pixel 桌面后,系统要约 10 秒才写盘,原来 2 秒多以后就重启了 zygote,卸载没写进去。现在卸载后等 package-restrictions.xml 写盘(最多 20 秒);以后每次开机(接管运行中的实例除外)发现轻量桌面的实例上 Pixel 桌面又在,就再卸一次,已经中招的实例开一次机就好。
  • 新建进度的计划跟着调:补丁是每次开机后的第一步,冷启动只剩检查(0.5)。

测试

  • go vet ./...(含 GOOS=linux 的 internal/emu)、go test ./... 全过。新增 early_test.go、early_windows_test.go,TestMountGuestFixes 加了开机过程中的两种情况,新建进度的测试按新顺序改。
  • 变异检查(开机主路径算核心):等开机里"adb 答了才调"、调完置空、开机状态解析、开机过程中的日志、Pixel 桌面列表和卸载结果解析、等写盘的时长,共 10 个变体都被测试杀掉。
  • 实机(Windows,1080p 6 核实例):
    • 带窗口开机两次:zygote 在开机动画期间重启(截图连续是开机动画,接着就是桌面),start 合计 26.2 / 22.3 秒,原来同一台约 40 秒;开机后只报"已挂上"。
    • 这台原来中招(Pixel 桌面还在、有任务栏):第一次开机就卸掉、写盘;之后没有任务栏,下次开机不再出现。
    • 新建一台(4 GB、1080p、带执行桥):首次开机在开机后第一步挂补丁、再做初始化;执行桥两轮冷启动都在开机过程中挂;之后带窗口开机,Pixel 桌面不在、没有任务栏。
    • 用 cmd package install-existing 把 Pixel 桌面装回去再开机:报"重新卸载:已卸载并写盘",再下一次开机不再出现。

Refs ModAVD/ModAVD#220
Refs ModAVD/ModAVD#221

- 带窗口开机时,补丁的 zygote 重启原来排在开机完成之后,桌面露出来又没了、十几秒后再回来。初始化过的实例现在在开机等待里 adb 一能用就挂(earlyGuestFixes),屏幕上还是开机动画;开机后的那一步只看到已挂上。新实例的第一次开机仍在开机后挂,但挪到开机后设置的第一步,之后的设置不用再补做(去掉 recheckHostIme 和重启后的方向设置)。
- 首次初始化卸载原生 Pixel 桌面后,系统要约 10 秒才写盘,原来 2 秒多以后就重启了 zygote,卸载丢了,1080p 上 Pixel 桌面画出任务栏。卸载后等写盘(pixelLauncherRemoveScript);之后每次开机发现它又在就再卸一次(ensurePixelLauncherRemoved)。
- 新建进度的计划跟着改:补丁排在每次开机后的第一步,冷启动只剩检查。

实机(flow-a,1080p):带窗口开机,zygote 在开机动画期间重启,start 合计 21–26 秒(原来约 40 秒);已中招的实例开一次机就卸掉 Pixel 桌面并写盘,下次不再出现;新建一台(带执行桥)首次初始化后 Pixel 桌面不在、没有任务栏。

Refs ModAVD/ModAVD#220
Refs ModAVD/ModAVD#221
@qiyinxi qiyinxi added the bug Something isn't working label Nov 15, 2026
@qiyinxi
qiyinxi added this pull request to the merge queue Nov 15, 2026
Merged via the queue into ModAVD:main with commit 6682ca8 Nov 15, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant