ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

KernelSU boot.img 补丁失败?一份完整排查与自救指南

KernelSU boot.img 补丁失败?一份完整排查与自救指南 KernelSU boot.img 补丁失败一份完整排查与自救指南【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSUKernelSU 是一个基于 Android 内核的 root 方案它的安装过程就是修补 boot.img 并刷入 boot 分区。如果刷完卡在开机 Logo、进不了系统那基本就是 boot.img 补丁失败。好消息是多数情况设备没有真的死掉按下面的步骤操作可以把它救回来。动手之前先把原厂 boot.img 备份好结论很简单没备份不刷机。原厂 boot 是你唯一零成本的还原点。不备份的代价一旦刷坏你只能找同机型的朋友要原厂 boot或自己从官方固件包里提取救援路径变长风险上升。安装文档也把这一点放在了最前面——website/docs/zh_CN/guide/installation.md 明确要求先备份原厂 boot 再刷机。如果设备已有 root两条命令就够# 把原厂 boot 从设备导出 adb shell su -c dd if/dev/block/bootdevice/by-name/boot of/data/local/tmp/boot_stock.img # 拉回电脑保存 adb pull /data/local/tmp/boot_stock.img两个注意点Android 13 设备上若用 LKM 模式修补对象是 init_boot 分区不是 boot记得一并备份。管理器的「直接安装」会自动备份原厂镜像到/data/adb/ksu/可以作为补充保险。自检你现在属于哪种状态先判断现状三种状态对应的救援路径完全不同现象最可能的原因卡在开机 Logo / 开机动画不动boot 镜像与设备不匹配压缩格式错、KMI 不一致、安全补丁级别过旧反复重启循环模块打挂了内核或该内核不适合你的设备完全进不了系统但电脑能识别 fastbootboot 分区内容有问题用户空间无法启动KMIKernel Module Interface是内核的模块接口版本相同 KMI 的内核互相兼容不同 KMI 刷进去很可能开不了机。如果你属于第二行且 ADB 还能连上或者能进系统走下面的路径一连 ADB 都连不上、但电脑认 fastboot走路径二。救援路径一还能进系统或能进安全模式这条路径适用于用户空间还能启动的设备。双槽位A/B自动回滚A/B 设备的 boot 分区有两个槽位当前槽启动失败时bootloader 会自动回退到另一个未修改的槽位。如果你刷完设备还能开机很可能就是回退生效了——问题只出在坏槽位上。等进系统后通过管理器处理即可。进入安全模式禁用模块模块导致的启动循环用 KernelSU 内置安全模式处理开机第一屏出现后快速按三次音量下键——注意是按下-松开重复三次不是长按。进入安全模式后所有模块会被自动禁用。在管理器模块页面把问题模块卸载然后重启。时机要快内核只在开机动画前监听按键按晚了触发不了。安全模式是在内核侧实现的见 kernel/runtime/ksud_integration.c不会被用户空间的按键拦截影响。直接用 ksud 禁用模块如果 ADB 可用可以跳过界面直接操作ksud module list # 列出所有模块 ksud module disable id # 禁用问题模块 ksud module uninstall id # 或直接卸载执行后重启观察能否正常进入系统。救援路径二进不了系统但能进 Fastboot设备卡在开机 Logo、ADB 连不上时你手里最后的手段就是第一步备份的原厂 boot。先进入 fastboot 模式adb reboot bootloader # 或关机后长按音量上 电源然后刷回原厂镜像并重启fastboot flash boot boot_stock.img # 预期输出 ending OKAY fastboot reboot能开机即完成。如果你没备份可以找同机型用户要原厂 boot或从官方线刷/卡刷包中提取 payload 解出。手动清理 Recovery 里的模块文件等更多手段参考救砖文档。原因复盘补丁到底错在哪救回设备后花两分钟弄清原因下次就不会再踩。常见就三类。1. KMI 不一致内核版本格式是w.x.y-androidNN-k-suffix其中w.x-zzz-k构成 KMI。例如5.10.101-android12-9-g30979850fc20的 KMI 是5.10-android12-9。注意第三位小版本101不属于 KMI101 和 137 的设备 KMI 是相同的。查一下设备的实际值adb shell uname -r # 示例输出5.10.101-android12-9-g30979850fc20刷入的内核与它 KMI 不一致大概率无法开机。若你的设备内核命名不遵守规范修补时可以用--kmi强制指定ksud boot-patch -b boot.img --kmi android13-5.10补丁逻辑的源码在 userspace/ksud/src/boot_patch.rs想深究可以看。2. 压缩格式用错boot.img 里的内核是有压缩格式的常见的是gz、lz4和未压缩。格式刷错会直接无法开机小米设备通常是gz或不压缩Pixel 设备比较特殊用的是lz4_legacy。确认自己原厂的格式magiskboot unpack boot_stock.img # 查看输出中报出的内核压缩格式刷哪个格式就选哪个格式对应的镜像。3. 安全补丁级别AVB 防回滚较新的设备启用了防回滚机制不允许刷入安全补丁比当前系统更旧的内核。比如设备当前安全补丁是 2023-11你刷的内核是 2023-06即使 KMI 完全一致也大概率无法开机。所以选内核时安全补丁级别要不低于原厂。下次如何避免补丁前三步验证刷机前把这三件事做一遍能排掉绝大多数失败核对 KMIadb shell uname -r的输出与待刷镜像的内核版本逐段比对。以内核版本为准别看 Android 系统版本。确认压缩格式magiskboot 解包原厂 boot让待刷镜像的内核格式与它一致。先试启动设备支持的话先fastboot boot boot.img临时引导别直接刷分区。试启动失败的话重启一次就回到原系统成本最低。完整流程见安装文档。速查表现象 → 原因 → 救援方式现象最可能原因救援方式卡开机 LogoADB 连不上压缩格式错 / KMI 不一致 / AVB 校验不过fastboot 刷回原厂 boot反复重启循环模块写坏了启动流程音量下 ×3 进安全模式卸载问题模块能开机但槽位异常A/B 当前槽失败已回退进系统后在管理器中卸载/还原安全模式没触发按键太晚或模块代码在 initrc 中ksud 禁用模块或 Recovery 手动清理延伸阅读安装指南备份、KMI、安全补丁级别、手动修补救砖指南安全模式、ksud 手动救援、Recovery 清理boot_patch.rsboot 修补的核心逻辑卡开机不是终点。手里攥着原厂 boot绝大多数局面都能退回原点。【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表