
老设备还能不能 rootKernelSU 非 GKI 内核适配完整指南【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSUKernelSU 是个跑在内核模式里的 Android root 方案靠系统调用与 LSM 钩子在内核空间直接放行 root 请求。它的官方镜像只认 GKI 设备GKI 是 Google 统一的内核镜像规范最低从内核 4.14 算起。可当你的机器还停在 4.14~5.3 这种非 GKI 内核、管理器却弹出不支持时别急着退——把 KernelSU 源码塞进自己的内核重新编译照样能拿到内核级 root。这份 KernelSU 旧内核适配 / 非 GKI 设备 root 指南从能不能做讲到刷入怎么验照着走就能落地。 先过三道关这台机子到底能不能适配这一步只回答一件事你该不该花时间。三关都过了再往下。内核版本连上设备跑adb shell uname -r看主版本号。4.14 起步才在支持区间低于 4.14 属于深度移植新手不建议碰。adb shell uname -r # 例4.14.187-perf-g...主版本 4.14 即可继续源码在不在手上非 GKI 内核碎片化极重没有统一编译流程官方也不会给你现成 boot 镜像。前提是你已经能拿到这台设备的内核源码、并编出能正常开机的内核。内核闭源基本到此为止。kprobe 好不好使KernelSU 默认靠 kprobe内核探针运行时给内核函数打钩子的机制来挂钩子。kprobe 正常就走自动集成不正常就转手动改源码。 两条集成路线先定方向先选路再动手选错方向会白改一堆源码。自动集成kprobekprobe 正常就选它几乎不改内核代码只加 KernelSU 源码再开配置。手动改源码kprobe 有上游 bug 或内核太老时用要动四个系统调用和一个输入函数。一个版本坑必须先说清KernelSUv1.0 起放弃非 GKI 支持最后一个支持版本是v0.9.5集成时务必 checkout 这个 tag别用 main。把源码拉下来git clone https://gitcode.com/GitHub_Trending/ke/KernelSU cd KernelSU git checkout v0.9.5落地有两种要么在内核根目录跑仓库自带的 kernel/setup.sh它替你软链kernel/进drivers/并补好drivers/Makefile与drivers/Kconfig的编译项要么手动复制kernel/在drivers/Makefile加obj-$(CONFIG_KSU) kernelsu/在drivers/Kconfig里source drivers/kernelsu/Kconfig。 手动集成要动的五个钩子点选手动路线本质就是在几个内核函数入口各插一段条件调用把 KernelSU 的处理函数接进去。共五处四个必改、一处强烈建议。do_execveat_commonfs/exec.c—— 拦截执行su 的核心。do_faccessatfs/open.c4.17 以前改faccessatvfs_readfs/read_write.cvfs_statxfs/stat.c内核没有就用vfs_fstatatinput_handle_eventdrivers/input/input.c—— 安全模式入口救砖靠它务必加。每处都是同一套路在入口函数最前面加一段#ifdef CONFIG_KSU包着的判断与调用示意#ifdef CONFIG_KSU if (unlikely(ksu_execveat_hook)) ksu_handle_execveat(fd, filename, argv, envp, flags); #endif另两个按需想让pm命令可用补fs/devpts/inode.c想在老内核上卸载模块从 5.9 回移path_umount。完整 diff 见官方存档 how-to-integrate-for-non-gki.md。⚙️ defconfig 与 kprobe 配置自检编译前先确认开关对不对错一个都可能白编一遍。先找到设备的 defconfig通常在arch/arm64/configs/设备代号_defconfig或在arch/arm64/configs/vendor/下开关定义可对照 kernel/Kconfig。两条路线都要CONFIG_KSUyKernelSU 还依赖EXT4_FS确认它已开。自动路线开CONFIG_KPROBESy、CONFIG_HAVE_KPROBESy、CONFIG_KPROBE_EVENTSy若不生效多半是CONFIG_MODULES没开make menuconfig搜 KPROBES 补依赖。手动路线反而要关掉CONFIG_KPROBES——否则开机按音量下会误触安全模式。调试期可临时开CONFIG_KSU_DEBUGy定位完记得关。CONFIG_KSUy CONFIG_KPROBESy # 仅自动路线 CONFIG_HAVE_KPROBESy CONFIG_KPROBE_EVENTSy # CONFIG_KSU_DEBUGy # 调试临时开 编译、fastboot boot 与功能验证刷入有条铁律先fastboot boot临时启动确认不卡 logo再谈永久刷写。临时启动不写分区出问题重进 fastboot 即可数据还在。fastboot boot boot-ksu.img # 临时启动测试 adb shell su -c id # 应返回 uid0(root) adb shell su -v # 应回显 KernelSU 版本再压一压稳定性连重启 5 次都要能进系统跑ksud module install装个测试模块确认挂载生效手动集成路线还要验证安全模式能救砖。 起不来 / su 失败的排查清单按症状对号入座别乱改症状大概率原因处理卡在开机 logokprobe 不正常注释ksu_sucompat_init/ksu_ksud_init验证转手动路线能开机但su没反应钩子没接对 / SELinux 拒绝核对五处钩子是否都改、策略是否放行pm命令失败devpts 钩子缺失补fs/devpts/inode.c模块挂不上overlayfs 配置缺失确认 overlayfs 相关 CONFIG 已开✅ 适配完成自检清单收尾不画饼照这张表打勾全过才算成内核主版本 ≥ 4.14源码可编译、能开机版本锁在v0.9.5非 mainCONFIG_KSUyEXT4_FS已开自动路线 kprobe 三项齐全 / 手动路线已关 KPROBES五个钩子全部接入安全模式已开fastboot boot通过后再永久刷写su -c id返回uid0模块与重启稳定性验证通过一句话决策kprobe 正常走自动、只加配置kprobe 异常或内核偏老走手动、关 KPROBES 改五处源码闭源则无解直接放弃。【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考