☰
KernelSU 让 LSPosed 跑起来:ZygiskNext 与 LSPosed 两个 ZIP 的安装顺序和开不了机时的恢复手段
2026/10/3 2:24:38 网站建设 项目流程

KernelSU 让 LSPosed 跑起来:ZygiskNext 与 LSPosed 两个 ZIP 的安装顺序和开不了机时的恢复手段

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

LSPosed 等 Xposed 系框架默认无法在 KernelSU 上挂进安卓应用进程,因为 KernelSU 的内核不随附 Zygisk 能力。关键卡点就在这里:必须先用 ZygiskNext 模块接管 zygote,LSPosed(Zygisk 版)才有地方附着并注入应用进程。本文给出完整路径:动手前的 4 项核对、两个 ZIP 的安装顺序、装完后的验证方式,以及刷坏开不了机时的恢复手段。

开工前必须满足的 4 个条件

核对项怎么判断不满足怎么办
KernelSU 已装好且设备受官方支持Manager 显示Not installed即支持,显示Unsupported即不支持自行编译内核集成 KernelSU,或查 非官方支持设备文档
bootloader 已解锁官方要求解锁 bootloader 才能刷入;已解锁则 Manager 可正常安装先解锁,否则刷入 patched boot 必然失败
ZygiskNext 与 LSPosed(Zygisk 版)两个官方 ZIP 已备齐文件在设备下载目录,Manager 的文件选择器里能选中从两者各自的官方发布渠道获取;KernelSU 文档不提供下载链接,以官方发布说明为准
metamodule(仅当存在改 /system 的模块)Module 页面列表中能看到带 metamodule 标识的条目(如meta-overlayfs)按 Metamodule 文档 安装 meta-overlayfs;只跑脚本、sepolicy、system.prop 的模块不需要

操作流程:按四个阶段走

阶段一:备好两个模块 ZIP

  • 把 ZygiskNext 的官方发布 ZIP 与 LSPosed Zygisk 版官方 ZIP 放到设备容易选中的目录(如下载目录)。
  • 若还没做过,先在 Manager 中备份原始 boot 镜像,刷模块之前留好后路。

正常状态:两个 ZIP 都能被 Manager 的文件选择器选中,且来源可追溯到各自官方渠道。

本阶段特有的坑:模块拥有 root 权限,文档明确警告不要安装来路不明的模块,恶意或劣质模块可能损坏设备且不可逆,极端情况下只能清数据重刷官方系统。触发条件就是 ZIP 来源不明,恢复手段只有重刷,所以来源必须卡在官方渠道。

阶段二:先装 ZygiskNext,然后重启

  1. 打开 KernelSU Manager,点击 ➕ 按钮
  2. 选中 ZygiskNext 的 ZIP,等安装走完
  3. 重启设备(所有模块都要重启后才生效)

正常状态:重启后进入 Module 页面,ZygiskNext 出现在模块列表中,系统无报错。

本阶段特有的坑:模块的开机脚本若有问题,设备可能开不了机。post-fs-data 阶段会暂停整个开机流程(阻塞式执行),脚本卡住后系统最多等 10 秒才继续,严重时会直接卡死在启动。若卡住,用下文"刷完不生效"一节的开机卡死恢复流程。

阶段三:再装 LSPosed(Zygisk 版)

动作与阶段二相同:➕ → 选中 LSPosed 的 Zygisk 版 ZIP → 重启。

正常状态:重启后 Module 页面的模块列表中,LSPosed 与 ZygiskNext 各自在列。

本阶段特有的坑:LSPosed 框架内部的配置(勾选目标应用、启用注入等)不在 KernelSU 文档覆盖范围内,以 LSPosed 自身说明为准。装好模块只代表地基就绪,没在框架里启用目标应用,Xposed 功能不会自动出现。

阶段四:验证两个模块与 metamodule 状态

  • 在 Manager 的 Module 页面核对模块列表
  • 或用 root 权限执行ksud module list,输出中应能看到两个模块的 ID 且均未被禁用

正常状态:两个模块 ID 都在列表里;若还有改 /system 的模块,列表里还应能看到 metamodule(如 meta-overlayfs)。

本阶段警告:卸载 metamodule 会让所有模块停止挂载——一旦移除,直到再安装另一个 metamodule 之前,各模块的system目录都不会被挂载。误卸载的恢复方式:重装一个 metamodule 的 ZIP 并重启。

为什么必须先 ZygiskNext 后 LSPosed

两次安装动作本身只是把文件写进/data/adb/modules,真正的依赖关系在开机流程里。下表摘自 Module guide 的启动阶段说明,*标记 KernelSU/Zygisk 相关动作:

开机阶段谁在做什么与操作顺序的关系
post-fs-data(阻塞)ksud 依次执行各模块post-fs-data.sh;ZygiskNext 的zygisk-ptrace64monitor 启动ZygiskNext 的地基必须在 zygote 启动前就位;模块脚本卡住即卡开机
模块挂载metamodule 的metamount.sh挂载各模块system目录只影响改 /system 的模块,与 Zygisk 链路无关
service(late_start)ZygiskNext hook zygote 并启动zygiskd;LSPosed 的module.prop被挂载LSPosed 附着的是 ZygiskNext 刚启动的 zygiskd,所以前者必须先装好
zygote fork 应用进程LSPosed 注入每个应用进程Xposed 功能从这里才开始生效

流程示意:

post-fs-data(阻塞,脚本卡住最多等 10 秒) ksud 执行各模块 post-fs-data.sh ZygiskNext:zygisk-ptrace64 monitor 启动 service 阶段 ZygiskNext:hook zygote,zygiskd 启动 LSPosed:module.prop 挂载,等待注入 zygote 逐个 fork 应用进程 LSPosed 注入应用进程 → Xposed 功能生效

一句话:Zygote 是安卓应用进程的父进程,被 ZygiskNext 的 hook 接管后才具备注入能力;LSPosed 必须附着在 zygiskd 上,才轮得到它。这就是顺序不能反的原因。

刷完不生效:4 种典型症状与处理

现象根因快速处理彻底方案
两个模块都在,Xposed 功能没出现KernelSU 内核不带 Zygisk,LSPosed 的 hook 必须经过 ZygiskNext 的 zygiskd;也可能是框架内未启用目标应用执行ksud module list确认两者都在列表;回 LSPosed 框架内启用目标应用(以 LSPosed 自身说明为准)确认两个 ZIP 均为官方最新版,按顺序卸载重装后重启复验
装完模块设备开不了机(开机卡死)模块持有 root 权限,post-fs-data 阶段阻塞开机,劣质脚本或 initrc 注入会卡住启动首次开机画面出现后,快速按下并松开音量下键 3 次以上(非长按)触发 KernelSU 安全模式,此时全部模块被禁用,在 Module 页面卸载问题模块音量键时机窗口在启动动画之前,设备启动过快可能触发失败;ADB 能连就用下方命令禁用/卸载;兜底进 Recovery 删掉模块加载文件
用 KernelSU 模块后 Magisk 完全停止工作KernelSU 的模块系统与 Magisk 的 magic mount 冲突,KernelSU 里启用任何模块都会让 Magisk 停摆停止两套 root 方案混用Zygisk 能力整体交给 ZygiskNext;只想与 Magisk 共存时,仅使用 KernelSU 的su且不启用任何模块(两者分别改 kernel 与 ramdisk,互不冲突)
模块在列表里,但 /system 文件的改动没体现没有安装 metamodule,system目录未被挂载到 Module 页面确认列表中有无 metamodule按 Metamodule 文档安装 meta-overlayfs 后重启

ADB 可用时,禁用/卸载问题模块(<id>取自ksud module list的输出):

adb shell # 进入设备 shell su # 获取 root 权限 ksud module list # 查看模块 ID ksud module disable <id> # 禁用问题模块 ksud module uninstall <id> # 或直接卸载 reboot # 重启使变更生效

ADB 连不上时,进第三方 Recovery(如 TWRP)挂载 data 与 metadata 分区,删除 KernelSU 加载模块所依赖的文件;重启后 KernelSU 将不再加载任何模块,进系统后再处理模块:

mount /data # 挂载 data 分区(可能需先解密) rm -f /data/adb/ksud # 删除 ksud,阻止模块加载 mount /metadata # 挂载 metadata 分区 rm -f /metadata/ksu/modules.rc # 删除 initrc 注入文件 reboot # 重启

三种边界情况

问:KernelSU 以 late-load 方式加载(ksud late-load)时,行为有什么不同?

内核模块在系统完全启动后才载入,部分开机早期机制不可用:initrc 注入不可用、安全模式的音量键检测始终禁用、post-fs-data.sh由 late-load 阶段脚本替代(模块方可提供late-load.sh)。若按本文装好 LSPosed 后行为对不上,先确认当前运行模式,细节以 Module guide 的 late-load 章节为准。

问:能和 Magisk 共存吗?

只有"仅使用 KernelSU 的 su、不启用任何模块"这一种共存路径,两者分别修改 kernel 与 ramdisk,互不冲突。一旦 KernelSU 中启用任何模块(包括 ZygiskNext),Magisk 即完全停止工作,不要做两套并存的规划。

问:LSPosed 这套需要 metamodule 吗?

不需要。metamodule 只服务于要修改/system文件的模块;脚本、sepolicy 规则、system.prop 以及 Zygisk 注入链路都不依赖它。只有当你的模块清单里存在改 /system 的模块时才需安装。

参考资料

  • 官方文档:FAQ
  • 官方文档:Module guide(开机阶段、late-load 模式)
  • 官方文档:Metamodule Guide
  • 官方文档:Rescue from bootloop
  • 官方文档:Difference with Magisk
  • 源码:userspace/ksud/src/cli.rs(ksud module list/disable/uninstall命令定义)
  • 源码:userspace/ksud/src/late_load.rs(late-load 模式实现)

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

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

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

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

立即咨询