KernelSU 接入 LSPosed:ZygiskNext 从入门到验收的完整指南
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
KernelSU 本身不带 Zygisk(让 Xposed 模块挂钩进应用进程的注入运行时),LSPosed 这类框架因此在 KernelSU 设备上跑不起来。解法是加装 ZygiskNext:一个专为 KernelSU 补齐 Zygisk 运行时的模块,其实现与 Magisk 内置的等价,装好后 Magisk 生态里的 Zygisk 版 LSPosed 可以原样复用。照这篇指南走,你能独立完成安装前自检、双模块安装、重启后验收,以及装挂之后的 bootloop 救援。
动手前:先自检能不能装
先看 Manager 里 ZygiskNext 一项的状态,它决定你能不能直接走模块流程:
- 显示
Not installed:设备在官方支持范围内,按标准模块流程装即可; - 显示
Unsupported:需要自行编译内核来集成,或改走非官方支持路线。
第二项检查针对 metamodule(负责把模块的 system 内容挂到系统上的元模块)。判断标准只有一条:模块要不要动/system下的文件。要动的话(比如meta-overlayfs)必须先装它;只跑 scripts、sepolicy 规则、system.prop 的模块则不需要。还要留意:全新装的 KernelSU 上,某模块带了system目录而 metamodule 没装,该目录不会被挂载。判断细则可查 Metamodule Guide。
第三项是把两个 ZIP 备齐:
- ZygiskNext 模块包;
- Zygisk 版的 LSPosed 框架包,Magisk 生态里的 Zygisk 版原样可用。
安装顺序:为什么先 ZygiskNext 再 LSPosed
顺序不能反过来。LSPosed 的 hook 依赖 Zygisk 运行时去拦 zygote 的分叉路径,运行时不先就位,框架就无处注入。所以先装 ZygiskNext 并重启,再装 LSPosed 并重启——任何模块都是重启后才生效。
两个都是标准 KernelSU 模块,Manager 里四步走:
- 打开 KernelSU Manager;
- 点悬浮的 ➕ 按钮;
- 选择对应的 ZIP;
- 重启设备。
⚠️ KernelSU 模块系统与 Magisk 的 magic mount 直接冲突:KernelSU 侧一旦启用任一模块,Magisk 就整体失效。从 Magisk + LSPosed 环境迁移时别想着“两套并存”,Zygisk 模块全部交给 ZygiskNext 承载。两者只有在只使用 KernelSU 的
su、不启用任何模块时才能共存。差异细节见 Difference with Magisk。
⚠️ 模块以 root 权限运行,一个有问题的模块足以让设备开不了机。只从可信来源下载安装。
重启后验收:两种方式确认装到位
装完并重启后,任选一条路径核对:
- Manager 的 Module 页面会列出所有生效模块,metamodule 也在其中;
- 有 root shell 时执行
ksud module list,按模块 ID 核对。
列表里同时出现 ZygiskNext 和 LSPosed,安装就算完成;框架对目标应用是否真正生效,以 LSPosed 自身界面的提示为准。
装挂了怎么办:bootloop 的两条救援路径
装完 ZygiskNext 或 LSPosed 之后设备开不了机(反复重启进不去系统),按 Rescue from bootloop 的思路走两条救援路径:
路径一:安全模式。设备刚开始启动、画面刚出现时,就把音量下键“按下-松开”连续做 3 次以上,触发 KernelSU 自带的安全模式,届时全部模块被停用;进系统后到 Module 页面把有问题的模块卸掉即可。
⚠️ 是点按,不是长按;而且这个按键窗口比开机动画出现得更早,启动快的设备很容易错过。
路径二:ADB 命令行。设备还能连上 ADB 时,进 shell 用 ksud 直接处理:
adb shell su ksud module list # 列出所有模块 ksud module disable <id> # 禁用问题模块 ksud module uninstall <id> # 或直接卸载 reboot另外提醒一句:如果设备用 late-load 模式加载内核模块(ksud late-load),initrc 注入、安全模式检测这类开机早期的机制统统失效,排障思路和标准模式不一样,细节查 Module guide。
进阶:hook 到底发生在哪
想理解注入的位置,看启动时序的几个关键节点就够:
post-fs-data (Zygisk) ./bin/zygisk-ptrace64 monitor class_start main start-service zygote, etc. (Zygisk) hook zygote (start zygiskd) (Zygisk) mount zygisksu/module.prop start system apps (autostart)读法:post-fs-data阶段 ZygiskNext 先拉起zygisk-ptrace64 monitor站岗等待拦截;到了class_start main对应的 late_start 服务阶段,zygote 被 hook、zygiskd随之启动;此后 zygote 每 fork 出一个应用进程,该进程才带上 LSPosed 的注入。至于框架里勾选哪些目标应用、配置哪些规则,那是 LSPosed 自身的功能,超出 KernelSU 的范畴。
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考