☰
KernelSU ksud 完整指南:如何快速获取、部署并管理模块
2026/10/23 2:26:03 网站建设 项目流程

KernelSU ksud 完整指南:如何快速获取、部署并管理模块

【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU

KernelSU 的 ksud 是连接内核与用户空间的守护进程,本文带你一次完成 ksud 的获取、部署与模块管理。跟着做,你将在设备上得到一个可直接执行的/data/adb/ksud,模块安装、启用、禁用、列表全部用命令行搞定,不用再依赖图形界面。

TL;DR:最快跑通 KernelSU ksud 的路径

如果你已经刷好 KernelSU 内核并安装了管理器,ksud 其实已经就位:

# 1. 打开一次 KernelSU 管理器,等待初始化完成 # 2. 确认二进制与软链接存在 ls -l /data/adb/ksud /data/adb/ksu/bin/ksud # 3. 验证版本(输出形如 x.y.z (uapi: N)) /data/adb/ksud --version

三条命令走完,你就拿到了一个可用的 ksud。后面所有细节都是为「出问题时怎么查」准备的。

ksud 到底负责什么

一句话:ksud 是 KernelSU 在用户态的执行体,内核只负责把请求递交上来,真正动手干活(解包模块、挂挂载、改 SELinux 策略、触发启动事件)的都是它。

具体承担四类工作:

  • 模块生命周期:安装 zip、挂载/卸载、启用/禁用标记
  • 启动事件:响应post-fs-data、services、boot-completed三个时机,执行模块脚本
  • 策略与特性:sepolicy动态打补丁、feature开关(su_compat、sulog 等)
  • 系统工具:resetprop、debug su等兼容工具

它用 Rust 编写,入口在 userspace/ksud/src,命令行定义集中在 cli.rs——读这个文件比读任何教程都快。

按人群选择获取方式 📦

场景 A:开发者,需要自己编译 ksud

前提:本机装好 Rust 工具链和cargo cross(用于交叉编译到 aarch64 安卓目标)。

# 克隆 KernelSU 源码 git clone https://gitcode.com/GitHub_Trending/ke/KernelSU cd KernelSU # 交叉编译 release 版(just 已内置该命令,等价于 cross build --target aarch64-linux-android --release) just bk

产物落在target/aarch64-linux-android/release/ksud。推到设备后执行一次安装命令即可完成部署:

# 推送到设备 adb push target/aarch64-linux-android/release/ksud /data/local/tmp/ksud # 在设备 shell 中(需要 root,可用临时 su) chmod 755 /data/local/tmp/ksud /data/local/tmp/ksud install

install子命令是官方部署入口:它会把自己复制到/data/adb/ksud,释放内置工具(busybox、resetprop、bootctl 等),并在/data/adb/ksu/bin/ksud建好软链接,全程自动。

场景 B:普通用户,直接用管理器部署

普通用户不需要接触源码。安装管理器应用(源码在 manager/app)并打开一次即可:管理器 APK 内已打包 ksud(以libksud.so形式存在),初始化时会自动调用install --libadbroot ... --data-path ...完成部署。之后 ksud 随管理器升级而更新,无感。

两条路的终点完全一致:设备上都出现/data/adb/ksud和/data/adb/ksu/bin/ksud。

部署与自启动:一次说清

先给结论:ksud 不需要你写任何自启动脚本。KernelSU 的启动时序由内核侧驱动——开机各阶段(post-fs-data、services、boot-completed)内核会直接调用 ksud 对应子命令,再执行模块脚本与/metadata下生成的modules.rc。所以手动往/data/adb/service.d/塞脚本既多余,还可能引入重复执行。

手动部署的完整流程(场景 A 的延续)是三步连贯动作:

  1. 执行安装:/data/local/tmp/ksud install,二进制、SELinux 标签、内置资产一次就位;
  2. 确认软链接:ls -l /data/adb/ksu/bin/ksud应指向/data/adb/ksud,这样PATH中的ksud和绝对路径行为一致;
  3. 验证版本:
# 输出版本号与 uapi 接口号,例如 1.2.3 (uapi: 8) /data/adb/ksud --version

能看到版本号,部署就算成功。模块数据目录固定为/data/adb/modules/,模块 id 取自各模块module.prop里的id字段,后面所有模块命令都用它寻址。

ksud 模块安装与管理命令速查 🚀

以下命令均假设已在 root shell 中,mymodule为模块 id(ksud module list可查)。

操作命令
从 zip 安装ksud module install /sdcard/Download/mymodule.zip
查看模块列表与状态ksud module list
启用模块ksud module enable mymodule
禁用模块(可再启用)ksud module disable mymodule
卸载模块ksud module uninstall mymodule
误标卸载后恢复ksud module undo-uninstall mymodule
触发模块 action.shksud module action mymodule

调试相关的两条常用命令:

# 申请 root shell(调试用) ksud debug su # 指定管理器包名,需要内核开启 CONFIG_KSU_DEBUG ksud debug set-manager me.weishu.kernelsu.debug

模块安装后的生效依赖重启或软重启(ksud soft-reboot),这一点在排查问题前请先确认。

翻车排查:两个高频场景 🔧

现象一:ksud 启动失败或命令无响应

排查命令按顺序执行:

# 看文件与链接是否齐全 ls -l /data/adb/ksud /data/adb/ksu/bin/ksud # 看内核侧与 ksud 的日志(日志 tag 为 KernelSU) logcat -s KernelSU

处理:文件缺失或软链接断了,重新跑一次ksud install即可重建;logcat里出现KernelSU not available之类字样,说明内核侧没生效,先确认已刷入带 KernelSU 的内核,而不是去删数据目录——/data/adb/ksu/下存着模块配置与模板,删了不可恢复。

现象二:模块安装成功但不生效

排查命令:

# 确认模块状态(是否被 disable / 标记 update) ksud module list # 确认内核 KMI 在支持范围内(LKM 场景尤其要查) ksud boot-info supported-kmis # 抓模块脚本执行期的日志 logcat -s KernelSU

处理:状态是 disabled 就ksud module enable <id>后重启;KMI 不在列表里说明模块依赖的内核接口版本不匹配,换模块适配版本或升级内核;日志里模块post-fs-data.sh报错的,优先看模块自身的兼容性声明,而不是反复重装。

下一步

  • 想读实现:从 userspace/ksud/src/cli.rs 的Commands枚举入手,每个子命令的注释就是最权威的文档
  • 想写模块:模块开发指南 覆盖了 zip 结构、module.prop字段与脚本钩子
  • 想玩 metamodule:metamodule 文档
  • 想复现编译:看 justfile,just bk一条命令出产物

把上面的速查表存成你的常用命令清单,然后从ksud module list开始动手吧。

【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询