KernelSU 跑 LSPosed 完整教程:借助 ZygiskNext 快速加载 Xposed 模块
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
本文解决一个很具体的问题:你的设备已经通过 KernelSU 拿到了 root,但 LSPosed 这类 Xposed 框架装不进去、跑不起来。原因在于 KernelSU 本体并不内置 Zygisk(一种让模块注入到 Android 应用进程里的机制),你需要借助 ZygiskNext 这个模块来补齐这块能力,之后 LSPosed 等 Zygisk 模块就能在 KernelSU 上正常加载了。
为什么 LSPosed 在 KernelSU 上装不上:缺的不是模块而是 Zygisk
先说结论:KernelSU 的模块体系里没有任何与 Zygisk 相关的内容,这是设计上的差异,不是版本 bug。
LSPosed 这类框架的运作方式,是借助 Zygisk 把自己的代码注入到 zygote(应用进程之母)里,再随每个应用进程一起启动。Magisk 生态自带 Zygisk,所以从 Magisk 那边来的 LSPosed 安装包里已经默认它存在;而 KernelSU 没有这块,框架自然无处挂载。KernelSU 官方 FAQ 的口径很明确:想跑 LSPosed(或其他现代 Xposed 衍生框架),装一个 ZygiskNext 模块即可,它能在 KernelSU 上提供 Zygisk 支持。
这里有个关键信息值得记住:由 ZygiskNext 提供的 Zygisk 环境,其模块内容与 Magisk 所支持的完全一致。换句话说,你在 Magisk 时代用过的 Zygisk 版 LSPosed 安装包,可以原样拿来用,不需要找"KernelSU 专用版"。
ZygiskNext 和 Magisk 是什么关系:两套 root 能否并存
如果你之前是 Magisk + LSPosed 的组合,正在考虑整体迁移,先别急——这里有个坑。
KernelSU 的模块系统与 Magisk 的 magic mount(Magisk 用来"无感修改"系统文件的技术)是互相冲突的:只要 KernelSU 里有任何一个模块处于启用状态,Magisk 就会完全停止工作。所以正确的迁移思路不是"两套并存",而是:root 交给 KernelSU,Zygisk 能力交给 ZygiskNext 承载,把原来装在 Magisk 上的 Zygisk 模块(比如 LSPosed)挪过来重新安装一遍。
唯一的共存情形:你只用 KernelSU 的su能力、不启用任何模块。因为 KernelSU 改的是内核,Magisk 改的是 ramdisk,两者互不干扰,此时可以和平共处。更多对比细节可以看 Difference with Magisk。
安装前检查:设备支持情况与 metamodule 的前置条件
开始装之前花两分钟确认三件事,能避免后面大半的返工。
1. 确认设备被官方支持。打开 KernelSU Manager 看状态:显示Not installed表示设备在官方支持范围内;显示Unsupported则需要自行编译内核集成 KernelSU,或走非官方支持路线(参见 FAQ)。
2. 准备好两个安装包。一是 ZygiskNext 的模块 ZIP,二是你要用的 Xposed 框架(如 LSPosed)的 Zygisk 版 ZIP。因为 Zygisk 模块内容与 Magisk 生态一致,直接下载 Magisk 生态里的 Zygisk 版即可。
3. 判断是否需要 metamodule。先解释一下:metamodule(元模块,如meta-overlayfs)是负责把普通模块的system目录"挂载"进系统视图的基础设施模块。只有在模块需要修改/system下的文件时才需要它;scripts、sepolicy 规则、system.prop 这些功能都不依赖 metamodule。ZygiskNext 和 LSPosed 本身不需要修改系统分区,全新安装 KernelSU 后装这两个不需要先装 metamodule。如果后续你装了带system目录的模块却发现不生效,再回头按 Metamodule Guide 补装即可。
ZygiskNext 与 LSPosed 的安装步骤(两次同样操作)
结论先行:整个过程就是把两个 ZIP 先后丢进 KernelSU Manager 各装一次,每次装完都要重启。
ZygiskNext 本质上就是一个普通 KernelSU 模块,安装流程和文档里描述的标准模块安装一样:
- 打开 KernelSU Manager;
- 点击悬浮操作按钮(➕);
- 选择 ZygiskNext 的 ZIP 文件,确认安装;
- 重启设备。
重启后重复同样的操作,把 LSPosed 的 ZIP 装进去,再重启一次。
🔧 装完之后,开机流程里实际发生了什么?用两句话概括:ZygiskNext 会在早期阶段(post-fs-data)启动自己的监控进程;等系统走到启动动画阶段(late_start服务期)时,它会 hook 住 zygote、拉起zygiskd并把 Zygisk 模块注册信息挂载到位——之后 LSPosed 才随着 zygote fork 出的每一个应用进程生效。完整的开机时序可以在 Module guide 的 "Boot scripts process explanation" 一节里对照查看。
刷入后如何确认 ZygiskNext 与 LSPosed 已生效
装上了不等于生效了,两个地方可以核对:
- Manager 的 Module 页面:所有已安装且生效中的模块都会显示在列表里,重启后 ZygiskNext 和 LSPosed 都应出现在其中;
- root shell 命令行:
su之后执行ksud module list,会列出全部模块,适合不想开 App 的场景。
至于 LSPosed 框架内部能否正常显示、能否勾选目标应用,那属于框架自身的行为,KernelSU 文档只声明"LSPosed 可以在 ZygiskNext 的支持下正常运行",没有给出框架层面的验证步骤,以 LSPosed 模块自己的提示为准。
模块装错导致开不了机时怎么自救
先给一句严肃提醒(官方文档原话级别的警告):不要安装来路不明的模块。模块拥有 root 权限,问题模块可能造成不可逆损坏。
如果真的翻车了,按下面两条路走:
路线一:安全模式(首选)。在首次开机画面出现后,连续"按下-松开"音量下键超过 3 次——注意是短按连击,不是长按。这会触发 KernelSU 内核内置的安全模式,开机后所有模块被禁用,你可以进 Manager 的 Module 页面卸载问题模块。👀 注意按键窗口在开机动画出现之前就结束了,设备启动太快或按得晚了都会触发失败,多练几次把握节奏。
路线二:ADB + ksud 命令。如果设备还能连上 ADB,可以直接在命令行处理,<id>替换成module list里显示的目标模块 ID:
adb shell su ksud module list # 列出所有模块 ksud module disable <id> # 禁用问题模块 ksud module uninstall <id> # 或直接卸载 reboot完整的救援流程(包括 Recovery 手动清理的兜底方案)见 Rescue from bootloop。
最后留个心眼:late-load 模式。如果你的 KernelSU 是通过ksud late-load以可加载内核模块方式在系统启动完成后加载的,那么 initrc 注入、音量键安全模式检测等开机早期机制都不可用。排障时先确认自己跑在标准开机模式还是 late-load 模式,两条路线的可用手段不同(详见 Module guide 的 "Late-load mode" 一节)。
相关文档
- FAQ
- Module guide
- Difference with Magisk
- Metamodule Guide
- Rescue from bootloop
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考