检查内核版本和 CONFIG_KALLSYMS 支持
为什么要检查
KernelPatch(APatch 内核修补的核心)工作的前提是能读懂内核的符号表——也就是 CONFIG_KALLSYMS 这个内核配置项。如果 OEM 编译内核时没有开启它,KernelPatch 就不知道内核里哪些函数在哪里,自然也就没法 patch。
检查方法
在已经 root 的设备上(或用其他方式获取 root 的情况下),打开终端或 adb shell,执行:
zcat /proc/config.gz | grep CONFIG_KALLSYMS
预期应该看到两种输出之一:
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
或(初步支持):
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=n
如果看到 # CONFIG_KALLSYMS is not set,说明你的内核不支持 KernelPatch——APatch 也用不了,只能用 Magisk 这类不依赖内核符号表的方案。
关于 6.6 内核
对于内核版本 6.6 的设备(大致对应 Android 14),APatch 目前只在小米和一加设备上做过充分测试。其他品牌的 6.6 内核设备需要自行测试兼容性。
不 root 怎么检查
如果设备还没 root,也可以在刷机包里找内核配置文件:
- 下载你设备的官方固件包
- 用工具解包 boot.img 拿到内核
- 有些内核的末尾直接附加了
/proc/config.gz的内容(strings kernel | grep CONFIG_KALLSYMS) - 或者在 kernel 开头查找
config.gz标志位置
不过最稳妥的方式还是 root 后查——结果最明确。