KernelSU:Android 内核级 Root 从环境验证到模块运维的实操路径
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
KernelSU 是一个基于 Android 内核的 root 解决方案,它通过加载内核模块 hook 系统调用来实现 root,不修改系统分区本身。本文覆盖从设备环境验证、LKM 与 GKI 两种安装模式各刷一条,到日常模块运维与救砖的完整流程。读完你可以独立在 GKI 设备上完成 KernelSU 安装,遇到问题时知道按什么顺序排查。
先核查环境:确认你的设备能跑 KernelSU
这一节解决"我能不能装"的问题,把前置条件一次性过完再动手,能避免绝大部分返工。
| 检查项 | 最低要求 | 查看方式(命令/路径) | 不满足时怎么办 |
|---|---|---|---|
| Bootloader | 必须支持解锁 | 查厂商官方文档或 XDA 对应机型帖 | 无法解锁则 KernelSU 不可用,直接停止 |
| 内核版本 | ≥ 4.14 | adb shell uname -r | 低于 4.14 需自行移植,详见官方 FAQ |
| GKI 支持 | 内核版本符合 KMI 规范 | uname -r输出的命名格式 | 管理器显示"不支持"的机型需自编译内核 |
| ADB / fastboot | 已安装且能识别设备 | adb devices出现设备序列号 | 安装 SDK Platform-Tools 并开启 USB 调试 |
| 原厂 boot 备份 | 刷机前必须完成 | 本地保存的 boot(或 init_boot)镜像文件 | 从官方固件包提取后再继续 |
最常见的前置翻车原因:刷机前没备份原厂 boot。解法一句话——任何操作之前先把设备原始 boot 提取出来存在电脑上,变砖时它就是你的退路。
快速判断:设备是否满足条件
先查内核版本,这条命令同时能帮你读出 KMI(Kernel Module Interface,内核模块接口,简单理解就是内核的"插件标准",KMI 相同的内核互相兼容):
adb shell uname -r # 输出示例:5.10.101-android12-9-g30979850fc20,其中 android12-9 就是 KMI再查 ADB 是否真正连通,刷机全程依赖它:
adb devices最后装好 KernelSU 管理器并打开:显示"未安装"说明设备支持,可继续;显示"不支持"则需自己编译内核集成,官方不会提供现成 boot 镜像。
需要提前准备的工具和文件
- ADB / fastboot 工具:从 Android 开发者官网的 SDK Platform-Tools 下载,内含 adb 与 fastboot 两个工具
- KernelSU 管理器 APK:从项目官方 Release 页下载,安装后用于检查设备状态和日常管理
- ksud 命令行工具:从官方 Release 页下载对应系统(macOS/Linux/Windows)版本,修补与模块管理都靠它
- 你设备的原厂 boot(或 init_boot)镜像:从官方固件包提取,或后续用管理器"直接安装"时的自动备份
- (可选)magiskboot:仅在 boot 镜像压缩格式不常见、需要手动修补时才用到
刷入 KernelSU:两种安装路径选一条跑通
这一节是全文重点,LKM 和 GKI 两条路径各走一遍只需 10 分钟,你根据设备情况选一条走完即可。
路径一:LKM 模式(保留原厂内核,手机推荐)
LKM 模式通过可加载内核模块方式工作,不替换原厂内核,升级 OTA 都更方便。
第 1 步|拿到官方 boot 镜像从设备官方固件包中提取boot.img;如果你的设备出厂为 Android 13 及以上,提取的应该是init_boot.img。已用第三方内核的,可以直接拿第三方内核的 boot 作为基础。
这里容易手滑:LKM 模式改的是 ramdisk,出厂 Android 13 的设备要选 init_boot 分区而非 boot,选错分区修补不会生效。
第 2 步|用 ksud 修补镜像
在电脑上运行 ksud,对官方 boot 打补丁:
ksud boot-patch -b boot.img --kmi android13-5.10 -o new-boot.img # --kmi ← 替换成你 uname -r 里读到的 KMI;-o ← 输出文件名预期看到:当前目录生成new-boot.img,无报错输出。
第 3 步|刷入并重启
长按电源键(部分机型为电源+音量下)进入 fastboot 模式后执行:
fastboot flash boot new-boot.img fastboot reboot预期看到:设备正常重启进系统,打开管理器,状态显示内核版本号。
跑通验证
在电脑上执行下面这条,确认 root 已生效:
adb shell su -c id # 预期输出:uid=0(root) gid=0(root) groups=0(root)路径二:GKI 模式(整体替换内核,冷门机型与模拟器适用)
GKI 模式用 KernelSU 提供的通用内核镜像替换设备内核,通用性强,适合三星 KNOX 设备、模拟器、WSA、Waydroid 等场景。
第 1 步|核对 KMI 与安全补丁级别
用adb shell uname -r的输出确认w.x-androidNN-N部分和安全补丁级别,你下载的 boot 必须与这两项都对得上;KMI 相同但安全补丁更旧的内核,在带防回滚机制的新设备上会无法开机。
第 2 步|下载匹配的通用 boot 镜像
从官方 Release 页下载与你 KMI、安全补丁级别一致的 boot.img。同一 KMI 下通常有 lz4、gz 等几种压缩格式的文件,请与你原厂 boot 的压缩格式保持一致(小米常见 gz 或不压缩),格式刷错可能直接无法开机。
第 3 步|刷入并重启
⚠️ 此步将覆盖原厂内核。刷之前务必确认原厂 boot 已备份到电脑;未备份的,先完成备份再执行下面命令。
fastboot flash boot boot.img fastboot reboot预期看到:设备正常重启进系统。若卡 Logo 不动,多半是 KMI 或压缩格式选错,尽快进 fastboot 刷回原厂 boot(见第四章)。
跑通验证
adb shell su -c id # 预期输出:uid=0(root) gid=0(root) groups=0(root)两条路径怎么选
直接说结论:真机手机优先 LKM,模拟器或 WSA 这类虚拟环境优先 GKI。
| 维度 | LKM 模式 | GKI 模式 |
|---|---|---|
| 内核处理 | 保留原厂内核,注入可加载模块 | 整体替换为通用内核镜像 |
| 升级 / OTA | 管理器内直接升级,OTA 后装另一槽位即可 | 固件内核变化后需重新刷 boot |
| 临时取消 root | 支持(卸载模块即可,无需重启) | 不支持,需卸载或刷回原厂 |
跑通之后:日常你会反复做的 5 件事
这一节是装好之后的日常操作手册,每个场景 1~3 步,命令都可直接复制。
怎么确认 root 真的生效了
操作:在终端执行adb shell su -c id,输出以uid=0(root)开头即为生效;也可以打开管理器看状态栏的内核版本信息。
注意:root 生效不等于所有应用都能用。应用必须先经过管理器超级用户页的授权,未授权应用执行 su 会被拒绝。
怎么安装一个模块,又怎么禁用它
ksud module install xxx.zip # 安装模块安装包 ksud module disable <id> # 按模块 id 禁用(重启后生效)注意:每次只装一个模块,重启后观察至少 10 分钟稳定性;修改 /system 的模块依赖 metamodule,详见第五章。
怎么临时取消 root 又不想刷写
LKM 模式下执行ksud unload即可卸载内核模块,root 立即失效且不用重启,重启后自动恢复。
注意:该命令仅 LKM 模式可用。GKI 模式的内核已编译在内核镜像里,无法临时卸载,想停用只能卸载 KernelSU 或刷回原厂 boot。
系统 OTA 之后 root 丢了
OTA 后 A/B 设备会切到新槽位,修补另一个槽位再重启即可:
ksud boot-patch -u # -u ← 自动选择 OTA 之后的另一个槽位进行修补或者在管理器里选"安装 → 安装到另一个分区",效果相同。
注意:OTA 通常不换内核,KMI 不变;如果厂商更新了内核,先重新用
uname -r核对 KMI 再修补。
怎么开关内核功能(su 兼容、日志、隐藏)
ksud feature list # 列出全部功能及当前支持状态 ksud feature set sulog 1 # 示例:开启 root 日志(0 关闭 / 1 开启)| 功能 ID | 作用 | 开启命令 |
|---|---|---|
| su_compat | 提供兼容层,方便依赖传统 su 行为的应用 | ksud feature set su_compat 1 |
| sulog | 记录 root 事件日志,排障时很有用 | ksud feature set sulog 1 |
| selinux_hide | 隐藏 SELinux 层面的相关痕迹 | ksud feature set selinux_hide 1 |
卡住了?按顺序排查常见故障
排查总原则是先软后硬、先新后旧:先试软件手段(安全模式、禁用模块、ksud 命令),最后才动 boot 分区;先怀疑最近安装的模块,再怀疑内核本身。
| 你看到的现象 | 最可能的原因 | 第一步处理动作 |
|---|---|---|
| 开机卡在 Logo 不动 | boot 的 KMI 或压缩格式不匹配 | 进 fastboot 刷回备份的原厂 boot |
| 能开机,管理器显示"未安装" | 内核未加载 KernelSU 模块 | adb shell uname -r核对 KMI 是否选错 |
| 应用申请 root 无反应 | 应用不在授权列表 | 在管理器超级用户页授予该应用 |
| 装完模块就无限重启 | 模块脚本或挂载问题 | 开机第一屏连续按音量下键 3 次进安全模式 |
开机卡在 Logo 不动(刷 boot 变砖)
第 1 步:长按电源键(或电源+音量下)进 fastboot 模式,电脑端确认能识别设备;识别不了先换数据线并检查 fastboot 驱动。
第 2 步:刷回备份的原厂 boot:
fastboot flash boot stock_boot.img # stock_boot.img = 你之前备份的原厂 boot fastboot reboot如果输出OKAY并显示 finished,说明刷写成功,重启后应正常进入系统。若你此前没备份原厂 boot,需要从对应机型、对应系统版本的官方固件包中提取后再执行。
管理器显示未安装或 su 无响应
第 1 步:核对 KMI 是否刷错了:
adb shell uname -r如果输出里的 KMI 与你刷机时用的不一致(比如 android13 的内核刷了 android12 的镜像),说明刷错文件,重新按正确 KMI 修补刷入即可。
第 2 步:检查 root 是否真正生效:
adb shell su -c id如果输出报错或权限拒绝,说明内核模块没加载,回第 1 步查 KMI;如果输出 uid=0(root),则 root 正常,问题在应用授权一侧,回管理器重新授权。
第 3 步:逐一核对模块:
ksud module list如果列表里有最近装过的问题模块,先禁用它重启,再逐个启用定位元凶。
如果以上都无效,把设备刷回备份的原厂 boot 镜像即可回到刷机前的初始状态——这也是为什么备份是整条流程的第一步。
别踩的 3 个坑 + 进阶方向
用 Android 版本号去选 boot 镜像
错误做法:系统是 Android 13,就去下"android13"的内核镜像。正确做法:永远以内核版本为准,用uname -r读出 KMI 和安全补丁级别再对照下载。为什么:内核版本在设备出厂时基本定型,系统升级后通常不变,拿 Android 版本号当依据必然 KMI 不匹配,等待你的是无法开机。
不做备份就直接刷写
错误做法:直接下载就刷,"出问题再想办法"。正确做法:任何刷写之前,先把原厂 boot(Android 13 以上 LKM 场景是 init_boot)提取出来存到电脑。为什么:变砖恢复依赖的就是刷回原厂 boot,没有备份时你得重新找同型号同版本的官方固件去提取,救砖难度直接翻倍。
装修改 /system 的模块却不装 metamodule
错误做法:直接安装需要改 /system 文件的模块,然后疑惑为什么文件没变化。正确做法:先安装 metamodule(如 meta-overlayfs),再装功能模块;只用脚本、sepolicy、system.prop 的模块则不需要。为什么:KernelSU 的 systemless 修改 /system 依赖 metamodule 提供的 overlayfs 挂载基础设施,缺了它挂载根本不会发生。
想更深入的话,仓库website/docs/zh_CN/guide/目录下有完整的中文文档:安装指南 覆盖了手动修补 boot、Recovery 安装等变通方法,救砖指南 提供了 ADB 手动管理模块、Recovery 清理等更底层的手段,模块开发指南 则是自己写模块的完整参考。祝刷机顺利。
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考