旧内核也能刷 KernelSU:4.14–5.3 设备从判断到开机的 5 步手动适配

发布时间:2026/11/3 5:28:28

旧内核也能刷 KernelSU:4.14–5.3 设备从判断到开机的 5 步手动适配 旧内核也能刷 KernelSU4.14–5.3 设备从判断到开机的 5 步手动适配【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU用了五六年、还跑着 Linux 4.19 的老旗舰装上 KernelSU 管理器第一屏就提示不支持。其实只要这块旧内核的版本在 4.14 及以上、内核源码是开放的这台设备完全可以手动适配。下面是具体走法。 先判断你的设备要不要自己编译内核结论先行内核版本决定路线GKI 设备根本不用碰源码。先跑一条命令拿内核版本号adb shell uname -r # 输出示例4.19.191-android11-8-gb2f41e6再对照管理器的支持提示你属于三种情况之一GKI 内核5.4 / 5.10 / 6.x管理器直接可用刷官方预编译 boot 就行后面这些内容你可以关掉了。4.14–5.3 且内核源码开放手动适配的目标人群。路线只有两条——kprobe 自动集成或者手改内核源码kprobe 能用就走第一条不能用才动刀。源码不开放 / 编译不出能开机的 boot / 版本低于 4.14不建议折腾。以下全部内容属于非官方支持风险自担。还有一个硬事实要记住KernelSU 自 v1.0 起放弃非 GKI 支持最后一个支持旧内核的 tag 是v0.9.5后面所有操作都用这个版本。 原理 30 秒KernelSU 为什么非要改内核KernelSU 运行在内核层权限判定和隐藏逻辑必须在系统调用返回用户空间之前生效所以它必须存在于内核里。GKI 内核上它以可加载模块身份挂入靠 kprobe 动态 hook 目标函数而很多 4.x 老内核的 kprobe 机制本身是坏的模块一挂就死机。这就是适配时的分叉点要么验证 kprobe 能不能用要么手动在 4 个系统调用入口处各插一句 hook 调用——exec、access 检查、read、stat 四条路正好覆盖 su 和隐藏逻辑的全部路径。️ 适配时间线从源码到刷 boot 的 5 步1. 准备源码先确认能编出能开机的 boot用你设备对应的内核源码厂商源码优先。在集成任何东西之前先按原厂流程编出一张能正常开机的 boot 镜像如果连这一步都做不到说明内核闭源或工具链不全直接停手别往下走。2. 集成 KernelSU 源码先克隆仓库并切到 v0.9.5 这个 taggit clone https://gitcode.com/GitHub_Trending/ke/KernelSU cd KernelSU git checkout v0.9.5然后把 KernelSU 目录放在内核源码树的同级位置在内核根目录执行下面三行。它们等价于kernel/setup.sh做的事把内核代码挂进drivers/再登记到构建系统里。ln -s ../KernelSU/kernel drivers/kernelsu echo obj-$(CONFIG_KSU) kernelsu/ drivers/Makefile sed -i /endmenu/i source drivers/kernelsu/Kconfig drivers/Kconfig构建系统只多了两行登记万一出问题把这三处直接还原即可改动面很小。3. 打开 Kconfig 配置在你的设备 defconfig 里追加以下内容位置通常在arch/arm64/configs/设备代号_defconfig也可能是arch/arm64/configs/vendor/设备代号_defconfigCONFIG_KSUy CONFIG_KPROBESy CONFIG_HAVE_KPROBESy CONFIG_KPROBE_EVENTSy如果你判断 kprobe 大概率是坏的、准备一上来就走手改源码路线就把CONFIG_KPROBES直接设为n原因见后面的踩坑清单第 2 条。4. 选钩子路线kprobe 优先手改兜底路线 A推荐kprobe 在你内核里能正常工作就到此为止直接编译KernelSU 运行时自己完成 hook不改任何其他源码。路线 B刷入后开不了机优先怀疑 kprobe 失效。改用手改在 4 个函数入口各加一次 hook 调用。最核心的fs/exec.c中do_execveat_common长这样static int do_execveat_common(int fd, struct filename *filename, struct user_arg_ptr argv, struct user_arg_ptr envp, int flags) { #ifdef CONFIG_KSU if (unlikely(ksu_execveat_hook)) ksu_handle_execveat(fd, filename, argv, envp, flags); else ksu_handle_execveat_sucompat(fd, filename, argv, envp, flags); #endif return __do_execve_file(fd, filename, argv, envp, flags, NULL); }其余三处是同样的模式在函数入口前加对应的extern声明再插一行调用。分别是fs/open.c的do_faccessat4.17 以下的老内核没有这个函数直接改SYSCALL_DEFINE3(faccessat, ...)定义处、fs/read_write.c的vfs_read、fs/stat.c的vfs_statx没有 statx 就用vfs_fstatat顶替。想保留安全模式还要在drivers/input/input.c的input_handle_event里加一个输入 hook这一步强烈建议做救砖时靠它进安全模式。5. 编译并用 fastboot 验证开机先确认配置真的生效再编译命令以你设备厂商的构建方式为准这里给 arm64 通用示例grep -E ^CONFIG_KSU .config # 应输出 CONFIG_KSUy make -j$(nproc)在永久写入之前务必用 fastboot 临时启动来验证——这一步不写设备重启就回到原内核把风险全部消化在这里fastboot boot boot-ksu.img adb shell su -c id # 输出 uid0(root) 即成功连续正常开机 5 次以上再做永久刷写。⚠️ 适配踩坑四种几乎必碰的情况1. 卡在 logo 开不了机原因这个内核里 kprobe 工作不正常模块挂入即死机。 处理fastboot flash boot刷回备份恢复把CONFIG_KPROBES改为n改走路线 B 手改源码。2. 莫名其妙进了安全模式su 和模块全没了原因手改源码集成但CONFIG_KPROBES没关kprobe 的输入 hook 残留开机时按音量下就触发了安全模式。 处理关闭CONFIG_KPROBES重新编译。3. 开机正常但pm命令执行失败原因devpts 路径没有被 hook。 处理在fs/devpts/inode.c的devpts_get_priv函数开头加一行ksu_handle_devpts(dentry-d_inode);并在函数前声明extern int ksu_handle_devpts(struct inode *);。4. 编译报vfs_statx或do_faccessat未定义原因内核太老这两个函数还没从老函数里拆出来。 处理stat 用vfs_fstatat顶替access 直接挂在faccessat系统调用定义上改法见时间线第 4 步。 收尾必须记住的四件事在动任何东西之前先备份原始 boot管理器内置备份或fastboot flash boot 备份镜像.img随时能刷回。永久刷写之前务必先用fastboot boot临时启动验证正常开机 5 次再写入。整个流程是非官方支持风险自担卡住先对照非 GKI 内核集成文档文档已标注存档、不再更新完全开不了机时看bootloop 救援指南。旧内核只认 v0.9.5别拿 1.x 的 tag 往下走编译都过不了。【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/3 5:27:21

TongSearch跨集群复制CCR原理与数据同步实践

先聊个实际场景:你手上有两个 TongSearch 集群,一个在主中心承载线上写入,另一个在异地机房,平时只读、用于查询和灾备。业务量上来之后,主库压力越来越大,你想把一部分读流量切到异地机房,却发…

2026/10/23 22:29:23

Three.js Vector2 二维向量完全指南:从源码到实战

Three.js Vector2 二维向量完全指南:从源码到实战 【免费下载链接】three.js JavaScript 3D Library. 项目地址: https://gitcode.com/GitHub_Trending/th/three.js Vector2 是 three.js 中表示二维向量的核心数学类,一个二维向量就是一对有序数字…

2026/11/3 5:25:02

Model-Optimizer:从量化压缩到端侧推理加速的实践

我需要你先提供具体的项目标题和素材,我才能基于它写出一篇可直接发布的高质量博文。请你按这个格式把信息补全:项目标题: [你想写的标题] 项目正文: [零散的原始描述,越具体越好] 关键词: [关键词1, 关键词2, ...] 摘要描述: [一句话简介]如…

2026/11/3 5:25:02

Kali Linux下zsteg图像隐写分析工具实战指南

1. zsteg工具概述与Kali环境适配性zsteg是一款专注于PNG和BMP图像隐写分析的开源工具,采用Ruby语言开发。作为Kali Linux渗透测试工具链的重要补充,它填补了传统取证工具在LSB(最低有效位)隐写检测领域的空白。我在实际CTF比赛和渗…

2026/11/3 5:25:02

BMS中SOH与SOP估算策略:从机理到多时间尺度滤波的工程实践

简介:面向电动汽车BMS算法学习者与工程技术人员的一份专题总结文档,聚焦SOH(健康状态)与SOP(功率状态)两大核心指标的估算策略,帮助读者系统梳理从定义、方法分类到优缺点比较的知识脉络。压缩包…

2026/11/3 5:25:02

电池SOH估算:开环与闭环的工程取舍与避坑指南

简介:面向电动汽车BMS开发与电池管理算法学习者的技术总结文档,聚焦SOH(健康状态)与SOP(功率状态)两大核心指标的估算策略,帮助读者系统梳理从定义、方法分类到优缺点比较的完整知识框架。压缩包…

2026/11/3 5:25:02

解决Vue项目中Babel配置路径错误问题

1. 问题现象与背景解析当你在VS Code中打开一个Vue项目时,如果项目目录没有作为根目录直接打开,而是作为子目录打开的,可能会遇到这个典型的Babel配置错误。控制台会抛出"Parsing error: No Babel config file detected"的警告&…

2026/11/3 5:20:02

高效备考打卡系统设计与实践指南

1. 项目概述"复试打卡day18"这个标题看起来像是一个备考过程中的日常记录。作为一名经历过多次重要考试的老考生,我完全理解这种打卡记录背后的意义和价值。这不仅仅是一个简单的天数标记,更是一个完整的备考管理系统。在备考过程中&#xff0…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑