ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

KernelSU 让 LSPosed 跑起来:ZygiskNext 与 LSPosed 两个 ZIP 的安装顺序和开不了机时的恢复手段 KernelSU 让 LSPosed 跑起来ZygiskNext 与 LSPosed 两个 ZIP 的安装顺序和开不了机时的恢复手段【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSULSPosed 等 Xposed 系框架默认无法在 KernelSU 上挂进安卓应用进程因为 KernelSU 的内核不随附 Zygisk 能力。关键卡点就在这里必须先用 ZygiskNext 模块接管 zygoteLSPosedZygisk 版才有地方附着并注入应用进程。本文给出完整路径动手前的 4 项核对、两个 ZIP 的安装顺序、装完后的验证方式以及刷坏开不了机时的恢复手段。开工前必须满足的 4 个条件核对项怎么判断不满足怎么办KernelSU 已装好且设备受官方支持Manager 显示Not installed即支持显示Unsupported即不支持自行编译内核集成 KernelSU或查 非官方支持设备文档bootloader 已解锁官方要求解锁 bootloader 才能刷入已解锁则 Manager 可正常安装先解锁否则刷入 patched boot 必然失败ZygiskNext 与 LSPosedZygisk 版两个官方 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然后重启打开 KernelSU Manager点击 ➕ 按钮选中 ZygiskNext 的 ZIP等安装走完重启设备所有模块都要重启后才生效正常状态重启后进入 Module 页面ZygiskNext 出现在模块列表中系统无报错。本阶段特有的坑模块的开机脚本若有问题设备可能开不了机。post-fs-data 阶段会暂停整个开机流程阻塞式执行脚本卡住后系统最多等 10 秒才继续严重时会直接卡死在启动。若卡住用下文刷完不生效一节的开机卡死恢复流程。阶段三再装 LSPosedZygisk 版动作与阶段二相同➕ → 选中 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.shZygiskNext 的zygisk-ptrace64monitor 启动ZygiskNext 的地基必须在 zygote 启动前就位模块脚本卡住即卡开机模块挂载metamodule 的metamount.sh挂载各模块system目录只影响改 /system 的模块与 Zygisk 链路无关servicelate_startZygiskNext hook zygote 并启动zygiskdLSPosed 的module.prop被挂载LSPosed 附着的是 ZygiskNext 刚启动的 zygiskd所以前者必须先装好zygote fork 应用进程LSPosed 注入每个应用进程Xposed 功能从这里才开始生效流程示意post-fs-data阻塞脚本卡住最多等 10 秒 ksud 执行各模块 post-fs-data.sh ZygiskNextzygisk-ptrace64 monitor 启动 service 阶段 ZygiskNexthook zygotezygiskd 启动 LSPosedmodule.prop 挂载等待注入 zygote 逐个 fork 应用进程 LSPosed 注入应用进程 → Xposed 功能生效一句话Zygote 是安卓应用进程的父进程被 ZygiskNext 的 hook 接管后才具备注入能力LSPosed 必须附着在 zygiskd 上才轮得到它。这就是顺序不能反的原因。刷完不生效4 种典型症状与处理现象根因快速处理彻底方案两个模块都在Xposed 功能没出现KernelSU 内核不带 ZygiskLSPosed 的 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 文件的改动没体现没有安装 metamodulesystem目录未被挂载到 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 中启用任何模块包括 ZygiskNextMagisk 即完全停止工作不要做两套并存的规划。问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.rsksud module list/disable/uninstall命令定义源码userspace/ksud/src/late_load.rslate-load 模式实现【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表