ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

KernelSU Android 内核 Root 完整指南:GKI 与 LKM 怎么选、怎么刷、卡砖怎么救

KernelSU Android 内核 Root 完整指南:GKI 与 LKM 怎么选、怎么刷、卡砖怎么救

KernelSU Android 内核 Root 完整指南:GKI 与 LKM 怎么选、怎么刷、卡砖怎么救

【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU

KernelSU 是运行在内核层的 Android 内核 Root 方案,在系统最底层直接接管权限判断。本文带新手一次讲清:GKI 与 LKM 怎么选、刷前核对什么、安装怎么做、卡砖怎么自救。

先给答案:设备场景 → 推荐模式速查表

不用先记原理,先对号入座:

你的设备属于推荐模式
绝大多数真机手机、平板LKM 模式
三星 KNOX 等锁机制导致模块无法加载的设备GKI 模式
模拟器、WSA、Waydroid 这类虚拟环境GKI 模式
需要临时 root、随时卸载且不重启的场景LKM 模式

官方的选型口径很直接:真机手机优先 LKM,模拟器和 Waydroid 这类环境优先 GKI。如果你的设备因为 KNOX 等锁机制加载不了内核模块,那就只剩 GKI 一条路可走。

原理差别:两种模式如何"住进"内核

自 0.9.0 版本起,KernelSU 提供两条完全不同的路线。打个比方:LKM 像在一栋现成房子里加盖一间新房——主体结构原封不动,加盖的房间负责权限判断这些活,不想要了拆掉就行;GKI 则是把旧房推倒、按 KernelSU 的图纸盖一栋新房,想回到老样子只能再拆一次重盖。

对比项LKM 模式GKI 模式
root 生效方式原内核保留,KernelSU 以可加载内核模块的形式注入运行整个内核换成 KernelSU 提供的通用内核镜像
需要修改的分区改 ramdisk(Android 13 及以上设备对应 init_boot 分区)改 boot 分区
典型适用场景绝大多数真机手机KNOX 锁定设备、模拟器、WSA、Waydroid
升级成本管理器点一次"直接安装";OTA 后装到第二槽每次都要重新刷入内核镜像
回滚方式免重启卸载、支持临时 root,不触发 AVB 校验,管理器可恢复原厂镜像常驻内核,卸载必须刷回原厂镜像

刷前版本核对三步

大部分翻车都栽在版本没对上,刷之前把这三步逐一过一遍。

第一步:KMI 必须一致

GKI 设备的内核版本是固定格式:Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration,其中w.x-zzz-k三段才构成 KMI。举例:5.10.101-android12-9-g30979850fc20的 KMI 是5.10-android12-9。

由此得到两条结论:

  • 中间的 SubLevel(101、137、168 这类数字)不属于 KMI,所以5.10.168-android13-12换成5.10.198-android13-12是安全的无缝过渡;
  • KMI 不同的内核互不兼容,刷错轻则无法开机,重则卡死在启动动画。

顺带回答一个高频疑问:系统明明是 Android 13,内核却显示 android12-5.10,这很正常。内核版本跟随的是设备出厂时的 Android 版本,后续系统升级通常不会改它。选镜像时永远以内核版本为准,别看设置页里的 Android 版本号。

第二步:补丁级别只升不降

新设备带防回滚机制:系统安全补丁级别是2023-11,你却刷入2023-06级别的内核镜像,KMI 再一致也可能直接卡砖。所以同 KMI 下优先选安全补丁级别最新的那个镜像。

第三步:压缩格式必须与原厂 boot 一致

同一 KMI 和补丁级别通常提供三种压缩格式的 boot 镜像:lz4、gz、未压缩。格式必须与你原 boot.img 一致,否则刷完无法启动。小米设备常见gz或未压缩,Pixel 常见lz4_legacy(这类机型通常要手动修补,见下文 GKI 流程)。

LKM 模式安装教程:真机用户按这个顺序来

  1. 先备份原厂 boot(或 init_boot)镜像——这是唯一的后悔药,没备份就不要动手。
  2. 从官方固件包解出 boot 镜像;设备若支持fastboot boot,更省事的路线是先用 KernelSU 的 GKI 内核临时启动一次,装好管理器后全程在应用里操作。
  3. 管理器中的安装入口三选一:
    • 选择文件:把官方 boot 镜像交给管理器自动修补,产出的文件再自己刷入;
    • 直接安装:已 root 时最快捷,修补、刷入全自动完成,也是日常升级 KernelSU 的主要方式;
    • 安装到非活跃槽:A/B 设备 OTA 之后直接写另一个槽,重启即切换。
  4. 刷入后重启,root 生效。"直接安装"时管理器会自动备份当前原厂镜像,之后走"卸载 → 恢复原厂镜像"即可一键回滚。

不想用图形界面?发布包自带的跨平台ksud工具一条命令完成修补,之后自行用 fastboot 刷入即可:

ksud boot-patch -b <boot.img> --kmi <你的KMI>

GKI 模式安装流程:整块替换内核

  1. 按核对出的 KMI 与安全补丁级别下载对应的通用 boot 镜像,压缩格式确认与原 boot 一致。
  2. 进 fastboot 把 boot 分区刷掉再重启,命令就一条:

fastboot flash boot boot.img(完成后执行fastboot reboot)

  1. 有 TWRP 的话还有 AnyKernel3 路线:下载与设备 KMI 匹配的 ZIP,进 Recovery 安装,后续升级同样适用。

Pixel 等特殊机型单独说:lz4_legacy格式的设备直接刷官方镜像可能失败,此时要用 magiskboot 解开原厂 boot、把内核替换为 KernelSU 的Image文件、重新打包后再刷入,官方安装文档里给出了完整命令序列,照着执行即可。

模块系统:挂载功能靠元模块支撑

新手最容易忽略的隐性坑:刚装好 KernelSU 时,普通模块的挂载功能是不工作的。

KernelSU 采用 metamodule(元模块)架构,把"模块怎么挂载"这类基础设施从核心剥离出去,交给可插拔的元模块实现:

  • 只跑脚本、sepolicy、system.prop 的模块:不需要元模块,开箱即用;
  • 要改/system等分区的模块:必须先装一个元模块,官方参考实现是meta-overlayfs(基于 overlayfs 实现无感挂载),安装方式与普通模块完全相同。

注意元模块同一时间只能装一个,卸载它会导致所有模块停止挂载,架构细节见元模块文档。

和 Magisk 的关系一句话讲清:两者模块目录同为/data/adb/modules,脚本与 sepolicy 语义一致;但 KernelSU 不支持.replace文件(改用REMOVE/REPLACE变量或mknod占位替代),且两边模块系统不能同时启用,详见与 Magisk 的差异说明。

卡砖自救流程:两个高发场景

场景 A:刚刷完就黑屏开不了机

只要动过的只是 boot 分区,理论上都能救。按"先定位 → 再处理"走:

  1. 核对镜像压缩格式是否与原 boot 一致——gz设备刷了lz4是最经典的翻车姿势;
  2. 核对 KMI 与安全补丁级别是否倒退;
  3. 确认设备是否要求关闭 AVB 验证(通常需要清除数据)。

定位到原因后,用 fastboot 把备份的原厂 boot 刷回去即恢复;没备份的话,从官方固件包或同机型用户处获取一份。

场景 B:装了某个模块后系统起不来

模块是卡砖的重灾区,KernelSU 内建两级救援机制:

  1. 安全模式:开机动画出现后、动画结束前快速按下音量下键 3 次(连按三次,不是长按)。进入后所有模块被禁用,可进管理器卸载问题模块。MIUI/HyperOS 等系统长按音量下进入系统自带安全模式时,KernelSU 也会同步进入安全模式。
  2. 手动清理:安全模式无效时,通过 ADB 执行ksud module disable <id>禁用问题模块;彻底进不去系统就进 TWRP 挂载 data 分区删除/data/adb/ksud,模块将不再被加载,重启回系统内再处理。

分场景的完整排查路径见卡砖救援文档。

⚠️特别提醒:不要安装来路不明的模块——模块拥有 root 权限,足以造成不可逆的破坏。上面所有救援手段都建立在"模块只是写坏了启动逻辑"的前提上,被恶意模块破坏的系统只能清数据重装官方系统。

动手前检查清单与升级节奏

升级节奏其实很简单:LKM 用户在管理器里点一次"直接安装"就算升级完成;GKI 用户每次内核版本变动时,重新核对 KMI 与补丁级别,再刷入对应镜像。

把下面这份清单存下来,每次动手前过一遍:

  • 原厂 boot / init_boot 镜像已备份
  • KMI 三要素(w.x-zzz-k)与目标镜像一致
  • 目标镜像安全补丁级别不低于当前系统
  • 镜像压缩格式与原 boot 一致
  • 需要改/system的模块已装好 meta-overlayfs 等元模块

【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进