KernelSU 显示未安装?三步定位 + 完整修复流程
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
boot 刷完重启,打开 KernelSU 管理器,还是那个灰色的"未安装",su 请求全部失败。这对 Android Root 用户来说是最常见的装后卡点。这个状态说明内核侧的 KernelSU 并没有跑起来,原因一般出在三处:设备兼容性、镜像选错、写错分区。按装前、刷入、装后三个环节依次排查,可以定位到你的具体问题。
快速定位:先判断你卡在哪一步
不用从头读完全文,先看这张表找到自己的状态,再跳对应章节。
| 现象 | 大概率原因 | 看哪一节 |
|---|---|---|
| 装前装后都显示"未安装",或显示"不支持" | 设备内核不是 GKI,没有现成可用镜像 | 「确认设备是否 GKI」 |
| 能正常开机,但管理器始终"未安装" | 镜像 KMI 不符,或 A/B 设备刷进了非活动分区 | 「选对 boot 镜像」「fastboot 刷入与 A/B 分区」 |
| 刷完无法开机 / 卡开机动画 | 压缩格式不符,或安全补丁级别过旧触发防回滚 | 「回退与救援」 |
| 之前装好,OTA 或换槽位后变回"未安装" | LKM 没加载进新槽位的内核 | 「用 dmesg 确认内核已加载」 |
装前自检:设备能不能装、该选哪个内核
确认设备是否 GKI
管理器的状态文字在安装前后含义不同,先搞清楚它。装前打开管理器:显示"不支持",说明你的设备没有官方开箱即用的 boot 镜像,结论明确——不能直接装,需要拿内核源码自己集成编译 KernelSU,参考非 GKI 集成指南。显示"未安装"反而是好事,代表设备在支持范围内,可以继续。另外内核版本与 Android 版本没有绑定关系,出厂 Android 12 以下的老机型即使系统升级到了 12,内核仍可能是 4.x 旧内核,这种情况同样只能走自编译路线。
查看真实内核版本和 KMI
刷镜像时唯一要匹配的凭据是内核版本,而不是"关于手机"里的 Android 版本。有些机器系统显示 Android 13,内核字符串却是android12-5.10,按 13 去选镜像必然翻车。
这条命令通过 adb 直接向设备内核要版本字符串,是所有后续选择的基准:
adb shell uname -r输出形如5.10.107-android12-9-00006-g0687f9a2989b。其中"主版本.次版本-Android代号-KMI代"这一截(本例是5.10-android12-9)叫 KMI,中间的补丁小版本号不算。选镜像时认准 KMI 一致即可,不同小版本的同 KMI 内核是互相兼容的;KMI 不同则不兼容,硬刷可能直接死机。
刷入操作:镜像选错和分区刷错是两大主因
选对 boot 镜像
KMI 对上之后还有两个容易漏的校验点。其一是安全补丁级别:新设备有防回滚机制,你选的镜像安全补丁比现内核旧(比如设备是 2023-11,镜像只到 2023-06),即使 KMI 一致也可能开不了机。同 KMI 下优先选安全补丁更新的镜像。其二是内核压缩格式,同一版本通常会提供lz4、gz等多种打包格式,格式和原 boot 不一致刷完无法启动,小米系常见gz或不压缩,Pixel 则是特殊的lz4_legacy。拿不准格式时,结论是:走 LKM 模式用管理器的"选择并修补一个文件"直接修补你的原厂 boot,管理器会保留原始格式,绕开这个坑;Pixel 这类特殊格式则按安装指南用 magiskboot 手动替换内核重打包。
fastboot 刷入与 A/B 分区
以下每条命令前都说明了它的用途,按顺序执行即可。
这条命令把设备切到 fastboot 模式,boot 分区只能在fastboot 状态下写入:
adb reboot bootloaderA/B 设备有两套系统分区交替使用,像两条跑道轮流起飞,刷镜像必须刷到正在使用的那条。这条命令读出当前活动槽位,输出_a就刷boot_a,输出_b就刷boot_b,没有输出则是普通单分区设备:
adb shell getprop ro.boot.slot_suffix这是核心刷写动作,把校验过的镜像写进 boot 分区:
fastboot flash boot boot.img如果设备支持fastboot boot,强烈建议先执行fastboot boot boot.img临时引导试一次,有问题再fastboot reboot回正常内核即可,避免一上来就写死分区。最后fastboot reboot重启生效。还有一个版本相关的细节:出厂 Android 13 的设备走 LKM 模式时,要修补和刷写的是init_boot分区而不是boot,刷错分区同样表现为"未安装"。
装后验证:确认内核真的加载了
用 dmesg 确认内核已加载
管理器显示的只是用户态的判断,内核日志才是一手证据。这条命令翻出内核环形缓冲区里的启动日志,确认 KernelSU 的初始化代码确实执行过:
adb shell dmesg | grep -i kernelsu能 grep 到 KernelSU 相关输出,说明内核侧已运行,此时管理器还显示"未安装"多半是管理器版本过旧或需要重启一次;grep 不到,说明内核根本没加载,问题回到上面镜像选择和分区刷写两节,不要怀疑管理器。
复核管理器状态与 su
✅ 一切正常的最终标志:管理器显示"已安装"并带版本号,且这条命令能拿到 root 身份:
adb shell su -c id返回uid=0(root)即用户态 su 链路打通;如果内核日志有输出但 su 失败,检查管理器是否被系统省电策略杀掉了后台进程。相关判断逻辑可看管理器源码。
回退与救援:已经卡住了怎么恢复
⚠️ 刷 boot 是分区级操作,选错镜像可能造成无法开机,动手前务必备份原厂 boot.img(有条件的话连数据一起备份)。管理器"直接安装"会自动把原厂镜像备份到/data/adb/ksu/ksu_backup_$SHA1,也可用其"卸载 → 还原原厂镜像"一键回退。
刷回原厂 boot
boot 写错时的唯一解法是覆盖回去。这条命令用原厂备份把分区还原:
fastboot flash boot boot_backup.img没有备份就从官方完整线刷包里提取同版本的 boot。A/B 设备如果刷错了非活动槽位,不用恢复原厂——直接把正确镜像补刷到活动槽位(boot_a或boot_b)再重启即可。
音量下键进安全模式
如果是模块导致开不了机(内核本身没问题),开机第一屏后连续按音量下键超过三次(按-松开,共三次,不是长按),KernelSU 会进入安全模式自动禁用全部模块,进系统后在管理器里卸载问题模块。详见启动循环救援指南。
用 dmesg 日志定位失败原因
恢复或复现问题时,这条命令抓取内核日志里的 KernelSU 记录,判断到底是内核没加载、模块加载失败还是用户态没起来:
adb shell dmesg | grep -i ksu三条原则记住就不容易翻车:镜像以 KMI 为准、和 Android 版本无关;刷之前先确认活动分区并备份原厂 boot;装完用 dmesg 而不是管理器状态做最终判断。更多细节以常见问题 FAQ和安装指南为准。
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考