Featured image of post 使用 KernelSU / KernelSU Next

使用 KernelSU / KernelSU Next

- 新的基于内核级的 Root 方案

前言

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 为例。先用下面这张图判断自己该走哪条路:

LKM 与 GKI 模式怎么选

准备工作

  • 小米 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 分区。整个流程如下:

LKM 模式刷入流程

  1. 安装 Payload Dumper:

    1
    
    pip install git+https://github.com/5ec1cff/payload-dumper
    
  2. 下载 & 提取 boot 镜像:

    1
    2
    
    # usage: payload_dumper --partitions <partitions you need> <file path or url>
    payload_dumper --partitions boot --out . xx.zip
    

    你会在当前目录下看到一个 boot.img 文件。

  3. 修补 boot 镜像

    把上一步提取出的 boot.img 文件通过你喜欢的方式传输到手机中,用 KernelSU / KernelSU Next 管理器修补。随后你会在 /sdcard/Download 下看到一个 kernelsu***-patched.img 文件,把它回传到电脑中。

  4. 手机重启到 Fastboot 模式,刷入修补后的 boot.img 镜像:

    1
    
    fastboot flash boot kernelsu***-patched.img
    
  5. 重启手机。

现在你应该可以看到已经成功刷入了 KernelSU / KernelSU Next。

GKI 模式

篇幅有限,我为此特地维护了一个仓库,直接下载 GitHub Actions 编译好的 img 文件刷入即可:KernelSU-Next-For-Zeus

后续功能完善

至于在 Magisk 中使用的一些功能,比如 LSPosed 等各种模块,绝大部分模块都是互相兼容的,只是有一些模块需要额外的做法:

比如 Magisk 内置的 Zygisk 功能在 KernelSU / KernelSU Next 中无法使用,需要改用 ZygiskNext,详情见 ZygiskNext。

附录

由 Hugo 强力驱动