怎么让 LSPosed 真正跑在 KernelSU 上?
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
KernelSU 已装好、root 已拿到、Manager 可用,但 LSPosed 还是跑不起来——症结在于 KernelSU 没有内置 Zygisk 支持,而 LSPosed 的注入依赖 Zygisk 运行环境(FAQ)。本文讲清如何用 ZygiskNext 补上这个缺口。
为什么 LSPosed 直接装到 KernelSU 上就不行?
KernelSU 没有内置 Zygisk 支持,模块目录里也没有任何 Zygisk 相关内容(模块指南)。LSPosed 是 Zygisk 模块,靠 Zygisk hook zygote 才能把钩子注入应用进程——直接装上只会被解包,没人 hook zygote,跑不起来。ZygiskNext 就是补位者:它在 KernelSU 之上提供 zygiskd 守护进程和 hook 机制。类比:先铺好「主管道」,LSPosed 的「入户管」才接得上。Zygisk 模块的内容与 Magisk 支持的完全相同,Magisk 生态的版本可以原样使用(模块指南)。
动手前先过这三道关
- Manager 状态显示
Not installed,说明设备被官方支持;显示Unsupported则需自行编译内核或走非官方路线(FAQ)。不满足的直接后果:刷错 boot 后无法开机,什么都装不了。 - 只有模块需要修改
/system文件(带system目录)时才需要安装 metamodule(如meta-overlayfs);scripts、sepolicy 规则、system.prop 等功能不需要(模块指南)。不满足的直接后果:全新 KernelSU 上模块的system目录根本不会被挂载。 - 如果你之前是 Magisk + LSPosed 组合:KernelSU 中只要启用任何模块,就会和 Magisk 的 magic mount 冲突,Magisk 完全停止工作(FAQ)。「两套并存」的迁移思路直接失败,Zygisk 模块要整体交给 ZygiskNext 承载。
按这条时间线装 ZygiskNext 和 LSPosed
- 打开 KernelSU Manager,点悬浮按钮,选择 ZygiskNext 的安装 ZIP;
- 重启设备——任何模块装完都要重启才生效(Metamodule 指南);
- 重启后再次点悬浮按钮,选择 LSPosed 的 Zygisk 版 ZIP,再重启。
装完后两者都会落在/data/adb/modules下的独立子目录里,并出现在 Manager 的 Module 页模块列表中——这是文档给出的确认方式(Metamodule 指南);有 root shell 时还可以用ksud module list核对(开机救援文档)。列表里同时出现 ZygiskNext 和 LSPosed,说明安装到位;LSPosed 应用内能否勾选目标应用,以框架自身提示为准,KernelSU 文档不涉及这部分。如果重启后进不了系统、或列表里没看到模块,别急,直接按最后一章逐条排查。
Zygisk 在启动的哪个节点真正生效
这段是 模块指南 启动时序的节选:*前缀是 KernelSU 的动作,**(Zygisk)**前缀是 ZygiskNext 的动作,展示注入发生在开机哪一步。
post-fs-data *execute module scripts post-fs-data.sh **(Zygisk)./bin/zygisk-ptrace64 monitor ... class_start main start-service adb, netd (iptables), zygote, etc. *execute general scripts in service.d/ *execute module scripts service.sh **(Zygisk) hook zygote (start zygiskd) **(Zygisk) mount zygisksu/module.prop结论一句话:ZygiskNext 在 post-fs-data 阶段启动监控,到 late_start 服务阶段才 hook zygote 并拉起 zygiskd,LSPosed 只在那之后 fork 出的应用进程里生效(模块指南)。
最可能翻车的 3 个坑
别打算和 Magisk 双开。前面关卡里讲过原理,这里把结论钉死:只有仅用 KernelSU 的su、不启用任何模块时两者才能共存——KernelSU 改内核、Magisk 改 ramdisk(FAQ)。
装了模块开不了机。不要安装来路不明的模块,模块拥有 root 权限,可能造不可逆损坏(开机救援文档)。两条路径:
- 安全模式:首次开机画面出现后,连续「按下-松开」音量下键超过 3 次(不是长按),进入 KernelSU 内置安全模式,所有模块被禁用,在 Manager 的 Module 页直接卸载问题模块。按键时机窗口在开机动画之前,设备启动太快可能触发失败(开机救援文档)。
- 设备还能连 ADB 时,用命令直接处理模块:
能通过 ADB 拿到 root shell 时,ksud可以直接禁用或卸载问题模块(开机救援文档):
adb shell # 进入设备 su # 获取 root ksud module list # 列出所有模块 ksud module disable <id> # 禁用问题模块 ksud module uninstall <id> # 或直接卸载 reboot # 重启生效<id>替换为列表输出中的模块 ID,禁用或卸载后重启即生效。
late-load 模式下早期机制缺席。如果 KernelSU 是以ksud late-load方式加载的,initrc 注入、安全模式按键检测等启动早期机制不可用,模块的post-fs-data.sh也由 late-load 阶段替代(模块指南)。排障前先确认当前运行模式,免得对着安全模式按键干等。
分工清楚了:KernelSU 管 root 和模块骨架,ZygiskNext 管 zygote 注入管道,LSPosed 管钩子执行,重启时机对了链路才通。出问题时,安全模式按键和ksud是最后兜底。
FAQ · 模块指南 · 与 Magisk 的区别 · Metamodule 指南 · 开机救援
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考