KernelSU 新手上手指南:5 步把 Android 内核 root 装明白
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
如果你准备在安卓手机上折腾 root,KernelSU 是目前绕不开的一个选项——它把 root 逻辑直接放进 Linux 内核里运行,通过内核空间为应用授予 root 权限,再配上一套可插拔的模块系统和按应用定制的权限方案。本文面向没装过的读者:先判断你的设备能不能用,再一步步完成安装,最后讲清楚它有哪些真正用得上的能力,以及翻车后怎么救回来。
先别装:确认你的设备在支持范围内
root 工具翻车,八成栽在兼容性上。KernelSU 对设备的要求很明确,装之前先对照这三项:
| 检查项 | 官方支持情况 | 不满足时的后果 |
|---|---|---|
| 内核版本 | GKI 2.0 设备(内核 5.10 及以上)开箱即用 | 4.14~5.9 的旧内核可用,但需要你自己编译内核 |
| 设备架构 | arm64-v8a和x86_64 | 其他架构不支持 |
| 内核接口(KMI) | 同 KMI 的通用内核镜像可直接刷入 | KMI 不匹配的 boot 镜像会导致开不了机 |
几个新手最容易搞混的点:
- 内核版本 ≠ 安卓版本。系统升到 Android 15 后,内核版本号通常还停在出厂时的
5.10.101-android13-x附近。刷任何镜像前,只看内核版本号。 - KMI 是"能不能启动"的关键。以
5.10.101-android12-9-g30979850fc20为例,它的 KMI 是5.10-android12-9,版本号里的中间小数字(101 还是 137)不算在内。 - 安全补丁级别会被反回滚机制卡住。新机型如果刷入的 boot 镜像补丁级别低于系统要求,同样会卡在开机画面。
- x86_64 设备注意:近期内核的安全加固会影响 KernelSU 的 syscall 挂钩,直接装可能失败甚至触发内核恐慌,细节见 x86_64 支持说明。
想确认自己的设备属于哪种情况,最简单的办法是装好管理器 App 看首页状态:显示"未安装"说明官方支持,可以直接走;显示"不支持"说明得自己编译内核,可参考非官方支持设备列表。
为什么内核里跑 root 更稳:KernelSU 的工作原理
传统 root 方案大多工作在用户空间,靠修补系统分区或伪装自身来拿到权限,被系统或应用检测到的概率始终存在。KernelSU 的思路不同:root 逻辑编译进内核,运行在内核空间,由内核直接判定"哪个应用、以什么身份执行su"。这带来两个直接好处:
- 判定权在内核手里,不依赖 root 应用自觉。权限规则由内核强制执行,应用想越权也绕不过去。
- 内核接口是独一份的。比如在内核模式拦截系统调用、为进程加硬件断点这类能力,用户空间方案做不到。
整个项目由两部分构成:内核侧负责权限判定与挂钩,用户空间的ksud工具(Rust 编写)负责修补 boot 镜像、管理模块等杂活,安卓上的管理器 App 则是操作入口。
安装前的准备清单
正式动手前把这几样备齐,能省掉后面大部分来回折腾:
- 已解锁 bootloader 的安卓设备
- 电脑装好adb 和 fastboot工具,并装好对应驱动
- 查清自己设备的内核版本号和KMI
- 备份原厂 boot.img(Android 13 及以上是
init_boot)——这是唯一的后悔药 - 重要数据已备份,刷机有概率导致数据丢失
备份这一步值得单独强调:刷入后如果开不了机,靠 fastboot 刷回原厂 boot 镜像就能救回来;没备份的话,只能硬刷完整线刷包甚至去售后。
一步到位:两种模式选一种再动手
从 0.9.0 版本起,KernelSU 在 GKI 设备上支持两种运行模式,选错模式是新手最常见的弯路:
| LKM 模式(可加载内核模块) | GKI 模式(替换通用内核) | |
|---|---|---|
| 做法 | 不替换原内核,把模块加载进原内核 | 用 KernelSU 提供的通用内核镜像替换原内核 |
| 优势 | 升级/OTA 方便,可临时卸载 root 而不重启,配合fastboot boot能先试后装 | 通用性强,不依赖官方固件更新,部分机型(如开启 KNOX 的三星)只能用这种 |
| 适合谁 | 真机用户优先选它 | 模拟器、WSA、Waydroid 优先选它 |
真机用户:走 LKM 模式
最省事的路线是:
- 如果设备支持
fastboot boot,先用它临时启动 KernelSU 提供的 GKI 内核,获得临时 root; - 趁临时 root 期间安装管理器 App;
- 打开管理器,点右上角安装图标,选"直接安装"——它会自动抓取设备信息、修补官方固件并刷入,全程不用碰电脑。
注意 LKM 模式改的是 ramdisk:Android 13 及以上设备刷的是init_boot分区,而不是boot分区,用错分区等于白刷。
刷通用内核:走 GKI 模式
这条路适合模拟器或特殊机型,核心动作就三步:
- 从 Release 页面下载与你的KMI + 安全补丁级别 + 压缩格式都匹配的 boot 镜像(同一版本通常有 lz4 / gz 等几种压缩格式,格式选错会开不了机);
- 进 fastboot 模式执行
fastboot flash boot boot.img; fastboot reboot重启,装管理器 App。
Pixel 这类lz4_legacy压缩格式的机型,直接刷官方镜像可能启动失败,需要用 magiskboot 手动修补原厂 boot 镜像,流程详见官方安装教程。
不用电脑?命令行工具 ksud 可以代劳
不装管理器也能完成 LKM 的修补和刷入。ksud支持 Windows / macOS / Linux,典型用法一行搞定:ksud boot-patch -b boot.img --kmi android13-5.10,源码在 userspace/ksud/ 目录,Rust 实现。
装好之后:三个真正日常用到的能力
1. 按应用授予 root,权限可审计
管理器里逐条批准应用的 root 请求,批准的记录、UID 等身份都能在内核层面留痕。root 请求来自哪个包名、什么时间点,都在管理器的授权列表里,不存在"某个 App 偷偷提权"的盲区。
2. 模块系统:不碰系统分区的 systemless 修改
模块放在/data/adb/modules下,通过挂载方式"看起来"修改了/system,实际系统分区保持完整,卸载即恢复干净。格式与 Magisk 模块高度兼容(module.prop、post-fs-data.sh、service.sh、system.prop、sepolicy.rule语义一致),所以大部分 Magisk 模块能直接搬过来用。
有一个关键差异要记住:KernelSU 把挂载能力做成了可插拔的 metamodule。只有当模块要修改/system文件时,才需要额外安装 metamodule(如meta-overlayfs);只跑脚本、改system.prop、加 SELinux 规则的模块不需要。另外 KernelSU 没有内置 Zygisk,需要 Zygisk 模块得靠第三方方案。完整的开发细节在模块开发指南里。
3. App Profile:把 root 关进笼子
这是 KernelSU 最有特色的功能,思路是"最小权限":同一个 root 权限,不同应用可以拿到完全不同的实际能力。
- Root Profile(给已授权应用):可自定义
su后的 UID/GID/补充组/Capabilities/SELinux 域。比如给防火墙类应用去掉inet组,它的su就访问不了网络;给冻结类应用只留 shell 级别而不是完整 root。 - Non-Root Profile(给普通应用):控制"对哪些应用卸载模块"。管理器默认对非白名单应用隐藏模块痕迹(默认卸载模块开关是开着的),应用如果检测到系统被改过,可以单独给它关闭卸载,反过来也一样。
配置界面在管理器的应用列表里,每个应用单独设置,规则由内核强制执行,不依赖应用配合。原理和注意事项见App Profile 文档。
四个最常踩的坑,以及对应解法
开不了机(bootloop)按开机线救回原厂 boot 镜像:进 fastboot,刷备份的原始boot/init_boot。所以装前备份永远是第一条铁律。
应用检测到 root三层手段配合:一是管理器里对目标应用开启 root 隐藏类设置;二是用 App Profile 的 Non-Root Profile 对该应用卸载模块;三是配合模块生态里的隐藏类方案。游戏、银行类 App 检测最严,提前在模拟器或备用机上验证。
刷入后 root 时灵时不灵(x86_64 或新内核)较新的 x86_64 内核加固了 syscall 表,KernelSU 的挂钩会被内核忽略并主动中止。解决方式是启用编译选项KSU_X86_PATCH_SYSCALL_DISPATCHER(3.3.0 起官方支持)或套用原有内核补丁,二选一,详见 x86_64 支持文档。
系统 OTA 之后LKM 用户最省心:A/B 分区设备直接选"安装到非活跃分区",装完重启即可,不用手动刷。
想深入:源码地图
KernelSU 全栈开源(GPL 协议),读源码是理解它最快的方式。几个高频入口:
| 想搞懂什么 | 去哪里看 |
|---|---|
| 内核侧根权限与 SELinux 规则 | kernel/selinux/、kernel/hook/ |
| 系统调用挂钩(arm64 / x86_64 各一套) | kernel/hook/arm64/、kernel/hook/x86_64/ |
| 超级调用(super call)接口定义 | uapi/supercall.h、kernel/supercall/ |
| 管理器 App(Kotlin + Compose) | manager/app/src/main/java/me/weishu/kernelsu/ |
| 修补 boot、模块管理工具 | userspace/ksud/src/ |
| 内核编译配置 | kernel/Kconfig、kernel/Kbuild |
想参与开发,把仓库克隆到本地(git clone https://gitcode.com/GitHub_Trending/ke/KernelSU),配合 justfile 里的任务即可开始。
收尾:一张表回顾决策要点
| 你的情况 | 建议 |
|---|---|
| GKI 2.0 真机(内核 5.10+) | 优先 LKM 模式,fastboot boot试装再正式安装 |
| 模拟器 / WSA / Waydroid | 优先 GKI 模式,刷匹配的通用 boot 镜像 |
| 内核 4.14~5.9 的老设备 | 可行,但需要自己编译内核 |
| 已 root 想升级 KernelSU | 管理器里"直接安装",自动处理备份与刷入 |
root 这件事,装的过程十分钟,装明白却要读这篇。把兼容性确认、boot 备份、KMI 匹配这三件事做扎实,剩下的交给管理器,绝大多数情况一次到位。
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考