KernelSU 刷前怎么核对、刷后怎么救?GKI 与 LKM 内核 Root 安装指南
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
KernelSU 是一款运行在 Linux 内核层的 Android root 方案:它不靠修改用户态系统文件提权,而是在内核里接管权限判定,root 行为因此更底层、更难被常规手段识别。从 0.9.0 版本起,它提供了 GKI 模式和 LKM 模式两条路线,选错模式或刷错镜像,轻则无法开机,重则数据全丢。下面按"选型 → 核对 → 执行 → 排障"的顺序,把每一步该做的动作讲清楚。
先定路线:LKM 装进原内核,GKI 替换整个内核
两种模式的本质区别在于:原内核动不动?
| 维度 | LKM 模式 | GKI 模式 |
|---|---|---|
| 内核形态 | 原厂内核保留,往里面注入一个可加载模块 | 原厂内核被 KernelSU 的通用镜像(Generic Kernel Image)整体换掉 |
| 动哪个分区 | 改 ramdisk:Android 13 及以上设备是init_boot,其余是boot | 只动boot分区 |
| 升级/OTA 代价 | 管理器里点一下就完成,OTA 后装到第二槽即可 | 内核版本一变就要重新刷镜像 |
| 卸载方式 | 可免重启临时卸载,不触发 AVB 校验 | 常驻,卸载要刷回原厂镜像 |
选型判断一句话:真机手机默认 LKM;模拟器、WSA、Waydroid 用 GKI;三星 KNOX 锁死模块加载的设备只能走 GKI。LKM 还有个隐藏优势——配合fastboot boot可以"临时 root",不写任何分区就能先体验再决定。
三个版本数字:KMI 三段怎么读,补丁级别为什么不能倒退
刷入前你要核对三个数字,全错了才叫翻不了车。
1. KMI =w.x-zzz-k,共三段。GKI 设备内核版本形如5.10.101-android12-9-g30979850fc20,格式是Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration。其中5.10-android12-9才是 KMI,中间的 SubLevel(101、168 这类)不参与判定。
- 推论一:
5.10.101-android13-12和5.10.198-android13-12属于同一 KMI,可无缝互换; - 推论二:KMI 不同的内核互不兼容,刷错就是开不了机。
2. 安全补丁级别只能前进。新设备带防回滚机制:系统补丁是2023-11,你刷一个2023-06的镜像,即使 KMI 完全一致也可能直接卡砖。同一 KMI 下,选补丁级别最新的那个镜像。
3. 内核版本跟随出厂 Android 版本。系统升到 Android 13、内核仍显示android12-5.10是正常现象,选镜像永远以uname -r看到的内核版本为准,别盯着设置页里的 Android 版本看。
细节项:同一 KMI 和补丁级别通常提供lz4、gz、未压缩三种 boot 镜像,压缩格式必须与你原boot.img一致,否则刷完无法启动。小米常见gz或未压缩,Pixel 常见lz4_legacy(需特殊处理,见下文)。完整核对规则见安装文档。
动手执行:管理器三选项、ksud 命令与 fastboot 刷入
无论走哪条路线,先备份原厂boot/init_boot镜像——这是事后恢复的唯一依据,从原厂固件包或本机读出都行,没备份就从官方固件或同机型用户处获取。
LKM 路线(真机首选)
- 选择文件:无 root 时的首装方式。把原厂 boot 镜像交给管理器修补,产出的新镜像自行用 fastboot 刷入;
- 直接安装:已 root 时最快。管理器自动读取设备信息、修补并刷入,也是日常升级 KernelSU 的主路径。首次安装且当前槽未被修补过时,它会自动备份原厂镜像,之后可用"卸载 → 恢复原厂镜像"一键回滚;
- 安装到非活跃槽:A/B 分区设备 OTA 之后,直接装进另一个槽再重启,不用碰电脑。
不想用图形界面,用发布包里的跨平台ksud工具,核心一条命令:
ksud boot-patch -b <boot.img> --kmi <你的KMI>
补好之后自己fastboot flash boot刷入即可。
GKI 路线(替换内核)
- 按 KMI + 补丁级别 + 压缩格式下载对应通用 boot 镜像;
- 设备进 fastboot:
fastboot flash boot boot.img,然后fastboot reboot; - Pixel 等
lz4_legacy机型直接刷官方镜像可能起不来:用magiskboot unpack boot.img解开原厂 boot,把 KernelSU 包里的Image文件替换掉解出的kernel,再magiskboot repack boot.img,刷回产出的new-boot.img——安装文档里有逐步命令; - 有 TWRP 的话可走 AnyKernel3 路线:下载 KMI 匹配的
AnyKernel3-*.zip进 Recovery 安装,首装和升级都适用。
装完先别加模块:元模块是挂载的"底座"
这里有个新手高频盲区:刚装好的 KernelSU,模块的挂载功能是失效的。
KernelSU 采用 metamodule(元模块)架构,把"模块怎么挂载"这类基础设施从核心剥离,交给可插拔模块实现:
- 只跑
post-fs-data.sh/service.sh脚本、sepolicy.rule、system.prop的模块:不依赖挂载,装完即生效; - 要通过
system目录改/system等分区的模块:必须先装一个元模块,官方参考实现是meta-overlayfs(基于 overlayfs 做无感挂载),安装方式和普通模块一模一样。
两条硬约束:元模块同一时间只能装一个,装第二个会被拒绝;卸载唯一在用的元模块后,所有模块立即停止挂载,想恢复就得再装一个。架构细节见元模块文档。
从 Magisk 迁过来:哪些直接通用,哪里要改
如果你之前用 Magisk,大部分肌肉记忆可以保留,但有四处要对齐:
- 模块目录相同:两边都在
/data/adb/modules,ZIP 格式也基本一致; - 脚本与 sepolicy 语义一致:
post-fs-data.sh、service.sh、system.prop、sepolicy.rule的运行时机和含义完全相同; - 不支持
.replace文件:想删文件用mknod filename c 0 0建同名空文件占位,或用REMOVE/REPLACE变量实现移除/替换; - 两套模块系统不能同时启用:同时挂 KernelSU 和 Magisk 的模块机制会导致行为不可预期,二选一。
另外 KernelSU 多了boot-completed和post-mount两个脚本阶段,脚本环境同样是 BusyBox Standalone 模式,跨平台写脚本不用改。差异全表见与 Magisk 的差异说明。
开不了机怎么救:按症状走两条排查链
症状一:刷入镜像后无法开机
只动过 boot 分区的问题都可恢复,按顺序查:
- 压缩格式是否与原 boot 一致(
gz设备刷了lz4是最高频原因); - 安全补丁级别是否倒退、KMI 是否匹配;
- 该设备是否需要关闭 AVB 验证(通常要清除数据)。
定位到原因后,用 fastboot 把备份的原厂 boot 刷回去即可开机;没备份就从官方固件包或同机型用户处拿一份。
症状二:装了某模块后开不了机
KernelSU 内建两级救援,见卡砖救援文档:
- 安全模式:开机动画出现后、动画结束前,快速按下音量下键 3 次(点按三下,不是长按),进系统后所有模块自动禁用,进管理器卸载问题模块。MIUI/HyperOS 长按音量下进系统安全模式时,KernelSU 也会同步进入安全模式;
- 手动清理:安全模式无效时,能进 ADB 就执行
ksud module disable <id>禁用(或uninstall)问题模块;彻底进不了系统就进 TWRP,挂载 data 分区后删除/data/adb/ksud,重启后模块一律不加载,进系统再处理。
一条红线:不要安装来路不明的模块。模块持有 root 权限,能造成不可逆破坏;上面所有救援手段都默认"模块只是写坏了启动逻辑",恶意模块损坏系统后只剩清数据、重刷官方系统一条路。
升级节奏与动手前检查清单
日常升级策略分两类:LKM 用户在管理器点"直接安装"即完成;GKI 用户在每次内核版本变动时重新核对 KMI 与补丁级别,再刷入对应镜像。
动手前过一遍这张清单,任何一项不满足就先停下来:
备份原厂 boot / init_boot 镜像? └─ 否 → 先备份,别往下走 KMI 三段(w.x-zzz-k)与目标镜像一致? └─ 否 → 换镜像,SubLevel 不同不影响 目标镜像安全补丁级别 ≥ 当前系统? └─ 否(会倒退)→ 换更新的镜像 镜像压缩格式与原 boot 一致? └─ 否 → 换格式或走 magiskboot 手动修补 要改 /system 的模块已装好 meta-overlayfs 等元模块? └─ 否 → 装完 KernelSU 先装元模块 模块来源可信? └─ 否 → 别装全部通过后再执行刷入,GKI 与 LKM 的选型、版本兼容、安装与升级就都在可控范围内了。
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考