看懂内核版本与 KMI——为什么 Android 13 手机内核却是 android12
KMI 是什么
KMI 全称 Kernel Module Interface(内核模块接口)。相同 KMI 的内核版本彼此兼容,这正是 GKI 中「通用」二字的含义;反之 KMI 不同则无法兼容,刷入与设备 KMI 不一致的内核镜像很可能直接死机。
GKI 设备的内核版本号格式如下:
Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
w.x-zzz-k
其中 w.x-zzz-k 就是 KMI。举例:某设备内核版本为 5.10.101-android12-9-g30979850fc20,那么它的 KMI 是 5.10-android12-9,理论上刷入同为此 KMI 的内核都能正常开机。
三个高频误区
误区一:SubLevel 算在 KMI 里。不算。5.10.101-android12-9 与 5.10.137-android12-9 的 KMI 相同,可以互相刷。SubLevel 只是内核小版本,不构成兼容性边界。
误区二:Android 版本决定内核版本。错。内核版本跟随设备出厂时自带的 Android 版本,之后系统升级内核一般不变。所以「Android 13 的手机内核显示 android12-5.10」很常见。刷机时永远以内核版本为准,给 android12-5.10 的设备刷 Android 13 内核,等待你的就是 bootloop。
误区三:内核版本号没有遵循 KMI 规范就没救。极少数设备的内核命名不规范,此时可以用 ksud 的 --kmi 参数手动指定 KMI 版本,见 ksud 命令行修补。
怎么查自己的内核版本
- 手机的「设置 → 关于手机」里通常直接显示内核版本;
- 或在 adb shell 里执行
uname -r。
查到后把 KMI 记下来,下载任何镜像、刷机包前都要和它对一遍,这是 GKI 通用内核镜像刷入 选对文件的关键。