KernelSU 模式切换全攻略:GKI 还是 LKM?从选型到排障一次讲清
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
拿到 KernelSU 之后,多数人卡在同一件事上:KernelSU 模式切换——GKI 和 LKM 到底选哪个、怎么切、刷完开不了机怎么办。这篇指南不绕弯子:先按你的设备类型直接给选型答案,再讲透切换前必须搞懂的 KMI 版本号与安全补丁级别,最后给出一套"备份 → 修补 → 刷机 → 排障"的完整操作路径。
先对号入座:你的设备落在哪个场景
手机真机:默认走 LKM
两者的根本差别一句话就能说清:GKI 模式把设备整颗内核换成 KernelSU 提供的通用内核镜像(Generic Kernel Image),KernelSU 的代码在编译期就被打进内核;LKM 模式保留原厂内核不动,只是往 ramdisk 里塞一个可加载内核模块(Loadable Kernel Module),开机的瞬间再由内核把这个 .ko 文件动态加载进来。
真机上推荐 LKM 的理由很实际:
- 原厂内核原封不动,需要特殊内核行为的场景不受影响;
- 升级 KernelSU 在管理器里点一下就行,不用手动刷机,系统 OTA 之后也能直接装进备用槽位;
- 模块是运行时装载的,不碰 boot 分区,配合临时授权类工具连 AVB 校验都不会触发;
- 想临时关掉 root?卸载模块即可,不用刷分区、不用重启,想恢复再开机一次就好。
GKI 在真机上的用武之地是另一批设备:三星开了 KNOX 的机器 LKM 加载不了,只能走 GKI;个别小众魔改设备也是同理。GKI 还有一个务实的优点——不需要先扒官方固件,只要 KMI 对得上,通用内核镜像直接就能刷。
模拟器 / WSA / Waydroid:直接用 GKI
这类环境里"刷一个 boot 镜像"本来就是一个轻松步骤,而 GKI 恰好就是提供整块通用内核镜像,对得上号。
已经在用第三方内核:只能选 LKM
GKI 的定义决定了它会把你刷的第三方内核整个替换掉,两者不可能共存。而 LKM 修补时可以把第三方内核的 boot.img 当作"官方固件"来处理,第三方内核照跑,KernelSU 以模块形式附加进去。所以第三方内核用户的选项只有一个:LKM。
动手前必读:内核版本号里到底藏着什么
KMI:怎么从内核名里把它读出来
KMI(Kernel Module Interface)可以理解成内核模块与内核之间的一份"握手协议":KMI 相同的内核互相兼容,刷了不同 KMI 的内核,结果通常是开不了机。GKI 设备的内核版本遵循这个格式:
Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix其中w.x-zzz-k三段连起来就是 KMI。拿5.10.101-android12-9-g30979850fc20举例,它的 KMI 是5.10-android12-9。
一个高频误区:SubLevel(那个 101、137)不属于 KMI。5.10.101-android12-9和5.10.137-android12-9内核名看着不同,KMI 完全一致,可以互相兼容。这也是 5.10 以上内核能够跨 sublevel 直接更新的根本原因。
安全补丁级别:第二个防回滚暗坑
KMI 对上了,也未必能开机。较新的 Android 设备带有防回滚机制:当设备的最低安全补丁级别(SPL)高于你要刷的内核时,启动直接失败。设备 SPL 是2023-11,你刷的内核 SPL 却是2023-06,哪怕 KMI 完全一致,也可能直接变砖机。所以选内核镜像时,安全补丁级别不低于设备当前级别,是仅次于 KMI 的第二道检查。
另外补一个刷机时的细节:Android 13 的 LKM 修补的是init_boot分区,而 GKI 永远操作boot分区,别抓错文件。
模式切换实操:为什么按钮救不了你
"Direct Install" 为什么切不了模式
这是最常见的疑问:既然管理器里有一键安装,为什么它不能把 GKI 变 LKM(或反过来)?因为两种模式的分野发生在不同的时刻——GKI 把 KernelSU 在编译期固化进内核镜像,LKM 靠 ramdisk 在运行时加载模块。架构层面的差异,决定了任何"一键安装"都只能在同种模式内升级,切换模式必须重新构建并刷写镜像。
三步走:备份、修补、刷入
备份。切换前导出资料,并确认手里有一份原始的 boot / init_boot 镜像(可从厂商固件包提取,或经厂商渠道获取)。
修补镜像。用随 KernelSU 提供的跨平台命令行工具 ksud(macOS / Linux / Windows 都有),修补工具源码可看 userspace/ksud/:
ksud boot-patch -b <boot.img> --kmi android13-5.10-b(或--boot)指定待修补的镜像路径;--kmi手动指定 KMI 版本——当你的设备内核命名不遵循 KMI 规范、工具自动识别失败时,就靠它兜底。刷入。修补完成的镜像通过 fastboot 刷进 boot 或 init_boot 分区,重启即切换完成。
完整参数与 GKI 各安装路线的详细文档见 website/docs/guide/installation.md。
兼容性边界:哪些内核直接出局
- 自 0.9.4 版本起,GKI 模式放弃了对 5.10 以下内核的支持,老内核想继续用 GKI 只能停在旧版本;
- 5.10 及以上则放宽:
5.10.168-12与5.10.198-12这类差异只是 sublevel,属于同 KMI,可以互相更新。
切换之后翻车了:按症状对症处理
- 现象:刷完新镜像,设备卡在 logo 或反复重启。原因:KMI 不一致,或安全补丁级别触发防回滚。处理:进 fastboot 把备份的原始镜像刷回去即可恢复;恢复后回头核对 KMI 和 SPL 两处再刷。
- 现象:fastboot 都进不去。处理:按机型特定的按键组合强制进入安全模式或 recovery,从那里处理分区。
- 现象:以上都试过仍无解。处理:带着设备型号、内核版本、刷的镜像文件名这三个信息,到官方社区(如 Telegram 群组)求助,基本都有同款经历的人。
决策小结:一句话选型 + 三条红线
选型规则:真机选 LKM,模拟器 / WSA / Waydroid 选 GKI,第三方内核用户锁死 LKM,三星 KNOX 设备走 GKI。
操作红线:
- 先定场景,再谈刷机——场景定错,后面全白搭;
- 刷之前必须核对 KMI 与安全补丁级别,两项都过线才动手;
- 任何动分区的操作之前,先备份原始镜像——它是唯一的后悔药。
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考