ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何在 KernelSU 上安装 LSPosed:借助 ZygiskNext 的完整指南

如何在 KernelSU 上安装 LSPosed:借助 ZygiskNext 的完整指南

如何在 KernelSU 上安装 LSPosed:借助 ZygiskNext 的完整指南

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

KernelSU 本身不带 Zygisk 运行时,因此 LSPosed 这类 Xposed 模块装上后默认无法生效。本指南讲解如何在已完成 KernelSU 安装的设备上,通过接入 ZygiskNext 补齐运行时,让 Magisk 生态的 Zygisk 版 LSPosed 框架包直接复用。做完之后,你的 KernelSU 设备即可像 Magisk 设备一样加载 LSPosed 并管理模块,全程只需安装两个 ZIP 模块。

✅ 准备工作:开工前核对 3 件事

  1. 确认设备支持状态:打开 KernelSU Manager,状态显示Not installed表示设备受官方支持,可直接安装;显示Unsupported时需自行编译内核集成 KernelSU,或参考 非官方支持设备指南 走非官方路线。
  2. 判断是否需要 metamodule:只有模块要修改/system文件时,才必须先安装 metamodule(如meta-overlayfs)。纯 scripts、sepolicy 规则、system.prop 类功能不依赖它。ZygiskNext 与 LSPosed 都不碰/system,无需额外动作;但若设备上其他模块带system目录而未装 metamodule,该目录不会被挂载(详见 Metamodule Guide)。
  3. 两个 ZIP 就位:ZygiskNext 模块包、LSPosed 的 Zygisk 版框架包。Magisk 生态的 Zygisk 版 LSPosed 原样可用,不需要重新打包。

主流程:先装 ZygiskNext,再装 LSPosed

顺序必须固定为先 ZygiskNext、后 LSPosed:LSPosed 的注入依赖 ZygiskNext 提供的 Zygisk 运行时,反序安装时框架首次启动将没有可挂载的宿主。

第 1 步:安装 ZygiskNext

打开 KernelSU Manager,点击悬浮+按钮,选择 ZygiskNext 的 ZIP,然后重启设备。

确认生效:重启完成后,Manager 的 Module 页面应列出 ZygiskNext 模块。

注意:所有模块变更都要在重启后才生效,装完不重启等于没装。

第 2 步:安装 LSPosed 框架包

重复上面的操作:打开 Manager,点+按钮,选择 LSPosed 的 Zygisk 版框架 ZIP,再次重启设备。

确认生效:Module 页面同时出现 ZygiskNext 和 LSPosed 两个条目。

注意:框架内勾选目标应用、配置模块行为属于 LSPosed 自身功能,按其界面提示操作即可。

确认成功:两个验证动作

  1. 打开 Manager 的 Module 页面,列表应包含两个模块(该页面也会显示 metamodule,若已安装)。
  2. 在有 root 权限的 shell 中执行ksud module list,输出中应能看到两个模块的 ID。

两个 ID 都出现在列表里,即表示安装完成;框架的实际运行效果以 LSPosed 自身的提示为准。

⚠️ 出问题时:开不了机的两条恢复路径

情况一:卡在开机动画,还能触发安全模式。原因:问题模块导致启动失败,但内核内置的安全模式仍可进入。 处理:首次开机画面出现后,连续"按下-松开"音量下键超过 3 次(是 press-release 动作,不是长按),进入 KernelSU 安全模式,所有模块会被禁用,再到 Module 页面卸载问题模块。按键窗口在开机动画之前——内核在 post-fs-data 阶段就注销了音量键监听,启动快的设备容易错过。

情况二:进不了系统,但 ADB 还能连接。原因:模块脚本执行出错,但设备仍可连上 shell。 处理:直接用ksud禁用或卸载问题模块,然后重启:

adb shell su ksud module list ksud module disable <id> ksud module uninstall <id> reboot

disable与uninstall二选一执行即可,不要两条都跑。

原理速览:hook 在启动的哪个时机生效

LSPosed 在 zygote 进程上挂钩子,zygote 每 fork 一个应用进程,就把 hook 库注入新进程。ZygiskNext 的作用正是拦截这条 fork 路径的运行时,实现与 Magisk 内置 Zygisk 等价。打个比方:ZygiskNext 是 fork 通道上的"关卡",每个应用进程(货车)通过时由 LSPosed 装上模块库(货物)。

时序上分三段:post-fs-data阶段 monitor 程序先拉起并等待拦截;到late_startservice 阶段完成 zygote hook 并启动zygiskd;此后 zygote fork 出的每个应用进程才带上 LSPosed 注入。这就是为什么安装顺序不能颠倒——没有 ZygiskNext 在post-fs-data站岗,LSPosed 的 hook 无处附着。

注意事项

KernelSU 模块系统与 Magisk 的 magic mount 直接冲突:启用任一 KernelSU 模块后 Magisk 整体失效。从 Magisk + LSPosed 环境迁移时不要尝试两套并存,Zygisk 模块交由 ZygiskNext 承载即可;仅使用 KernelSU 的su、不启用模块时两者才能共存。

模块以 root 权限运行:问题模块可能让设备开不了机,且可能造成不可逆损伤。只从可信来源安装模块。

若设备以 late-load 模式加载内核模块(由ksud late-load触发),initrc 注入、安全模式检测等启动早期机制均不可用,本文的排障路径需要按 Module Guide 中 late-load 模式一节另行调整。

参考资料

  • Module Guide
  • Metamodule Guide
  • Rescue from Bootloop
  • Difference with Magisk
  • Unofficially supported devices

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

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进