前言
Magisk 已经玩腻了。继 Magisk v23.x 以后,Magisk 的作者 topjohnwu 加入了 Google,Magisk Hide 被移除,这会导致我为了体验新版本带来的特性时,不得不承受升级到后续 Magisk 版本带来的其他弊端:很多对环境安全要求比较高的 App 无法在手机上运行。典型的例子就是一些 银行 App 直接无法打开,交管 12123 会出现无法通过人脸识别的问题。虽然后续有了 Magisk Delta(现已更名为 Kitsune Mask),但毕竟不是 Magisk 主分支,不确定哪天会停止开发,到时候可能一段时间内都没有好的替代方案。所以我决定转向使用 KernelSU。
2025 年了,如今 APatch 和新发布的 KernelSU Next 也相继进入大众眼中,成为了新的 Root 解决方案。这里我将介绍如何在小米 12 Pro 上使用 KernelSU / KernelSU Next。
关于 KernelSU / KernelSU Next
KernelSU 是 Android GKI 设备的 Root 解决方案,它工作在内核模式下,直接在内核空间向用户空间应用程序授予 Root 权限。但是从 v1.0 开始,KernelSU 放弃了对非 GKI 设备的支持(最后一个支持非 GKI 内核的版本是 v0.9.5),这导致一些设备无法使用新版 KernelSU。详情见 官方文档。
KernelSU Next 是 KernelSU 的一个分支,它在 KernelSU 的基础上增加了一些新的特性,比如支持在 Magic Mount 和 OverlayFS 之间直接切换模块挂载方式;相比于 KernelSU,它同时支持 GKI 和非 GKI 设备。详情见 官方文档。
安装 KernelSU / KernelSU Next
二者安装方法基本一致,无非两种:
- 直接修补现有的 boot 镜像(LKM 模式,简单方便);
- 编译内核时集成 KernelSU(KernelSU Next),刷入整个内核镜像(GKI 模式)。
本文二者均介绍,这里以小米 12 Pro(支持 GKI)基于 HyperOS Android 14 安装 KernelSU / KernelSU Next 为例。先用下面这张图判断自己该走哪条路:
准备工作
- 小米 12 Pro,确认代号为
zeus,且已经解锁Bootloader; - 电脑上有 adb 和 fastboot,且驱动安装正确;
- 前往 GitHub Release 页面下载 KernelSU 或 KernelSU Next 的 APK 安装包,并安装到手机上;
- 在 系统设置 → 系统更新 中找到自己的系统版本号,随后到 HyperOS Fans 找到对应版本
卡刷包的下载链接,为提取boot.img做准备; - 安装 Payload Dumper 工具,用于提取
boot.img。Payload Dumper 这个是5ec1cff的版本,有两个新特性:- 直接从包含 payload.bin 的 zip 档案中提取分区,而无需解压它;
- 直接从包含 payload.bin 的网络 URL(比如 OTA 更新 URL)提取分区,而无需下载整个文件。
提取出来的原版
boot.img请留一份备份。刷坏了或者想卸载 Root 时,把它重新刷回去即可。
具体步骤
LKM 模式
先介绍直接修补现有 boot 镜像(LKM 模式)的方法。LKM 模式修补的是 ramdisk:小米 12 Pro 出厂是 Android 12,修补 boot 即可;如果你的设备出厂就是 Android 13,需要修补的是 init_boot 分区。整个流程如下:
安装 Payload Dumper:
1pip install git+https://github.com/5ec1cff/payload-dumper下载 & 提取 boot 镜像:
1 2# usage: payload_dumper --partitions <partitions you need> <file path or url> payload_dumper --partitions boot --out . xx.zip你会在当前目录下看到一个
boot.img文件。修补 boot 镜像
把上一步提取出的
boot.img文件通过你喜欢的方式传输到手机中,用 KernelSU / KernelSU Next 管理器修补。随后你会在/sdcard/Download下看到一个kernelsu***-patched.img文件,把它回传到电脑中。手机重启到
Fastboot模式,刷入修补后的boot.img镜像:1fastboot flash boot kernelsu***-patched.img重启手机。
现在你应该可以看到已经成功刷入了 KernelSU / KernelSU Next。
GKI 模式
篇幅有限,我为此特地维护了一个仓库,直接下载 GitHub Actions 编译好的 img 文件刷入即可:KernelSU-Next-For-Zeus
后续功能完善
至于在 Magisk 中使用的一些功能,比如 LSPosed 等各种模块,绝大部分模块都是互相兼容的,只是有一些模块需要额外的做法:
比如 Magisk 内置的 Zygisk 功能在 KernelSU / KernelSU Next 中无法使用,需要改用 ZygiskNext,详情见 ZygiskNext。
附录
- TWRP Recovery For XiaoMi 12 Pro:SourceForge