非 GKI 老设备如何用 KernelSU——4.14 旧内核的移植与集成思路
先判断你属于哪类设备
- 出厂 Android 12 的设备:必为 5.10+ 内核,即 GKI 设备,无需本页,走标准安装;
- 出厂 Android 12 以下,或内核 4.14-4.19 / 更旧的设备:非 GKI,KernelSU 没有现成镜像,需自行集成——这正是本页读者;
- 内核低于 4.14 的设备:超出官方支持线(最低 4.14),需要手动移植,能力强可以尝试并给上游提 PR。
非 GKI 设备的原理性困难
GKI 之所以「通用」,是谷歌统一了内核接口。非 GKI 设备各家内核魔改程度不一,KernelSU 无法预编译通用产物,只能把 KernelSU 集成进设备自己的内核源码树重新编译。这意味着:
- 你需要拿到设备对应版本的内核源码(厂商按 GPL 义务公开,通常在自家开源仓库);
- 需要能跑通该设备内核的编译环境(工具链、defconfig 与 GKI 不同);
- 集成方式与 自编译内核集成 的 setup.sh 相同,但适配工作因设备而异。
社区的捷径
动手前先查社区维护的非官方支持设备列表(官方安装文档有指引)——很多热门机型的内核已有人集成完毕,直接拿现成内核或编译产物,能省掉大部分工作。机型社区(论坛、群组)里通常有现成的 AnyKernel3 包。
与其他方案的组合策略
非 GKI 老设备如果集成成本过高,也可以考虑:先用 Magisk 获取 root,再用内核刷写 App 刷入别人集成好的 KernelSU 内核(方法见 Recovery 与变通安装方法);或干脆留在用户空间方案。
旧内核上的功能差异
旧内核缺少部分 GKI 特性,例如 卸载与隐藏痕迹 提到的「卸载模块」在 5.10 以下只是配置项,由模块自行决定是否执行。用旧内核集成的同学对功能预期要相应放低,以实际测试为准。