APatch 中文文档 下载 App

模块安装报错 os error 2/5/22 — 取消 shell root 授权就好

什么情况会碰到

在 APatch(或 KernelSU)管理器里安装 APM 模块时,弹出报错:

或者模块安装成功但重启后不生效。

原因

这是 APatch/KernelSU 生态里已知的老坑。

shell 这个用户(通过 adb shell 进入系统的用户)如果被 APatch 授予了 root 权限,它的 SELinux 上下文会变成 root 的上下文。这个上下文变化会影响其他进程的文件操作——特别是模块安装时需要创建的目录、写入的文件可能因为"操作不允许"而失败。

Magisk 用户习惯了给 shell 授权 root(因为 Magisk 的 su 守护进程在 shell 场景下工作没问题),但在 APatch 里这个习惯会炸。

解决方案

在 root 授权页面取消 shell 的 root 权限:

  1. 打开 APatch 管理器
  2. 进入权限管理页面(不同版本可能叫"权限管理"、"应用权限"等)
  3. 找到 shell 这个条目
  4. 把它的 root 授权改成"拒绝"或"撤销"
  5. 重启设备(必须重启,撤销才生效)
  6. 重启后重新尝试安装模块

验证修复

重启后再试着装之前报错的模块:

为什么 Magisk 没这个问题

Magisk 的 su 守护进程在处理 shell 场景时有专门的上下文保留逻辑——它不会修改 shell 的 SELinux 上下文。而 APatch 的 SuperCall 直接在内核层面授予 root 权限,shell 的上下文确实会被改。

这不是 bug——是两种权限授予方式的固有差异。Magisk 走用户空间守护进程,APatch 走内核空间 hook,副作用不同。

以后都不要给 shell 授权 root

记住这条 APatch 的使用铁律:

绝对不要给 shell(adb shell 用户)授权 root 权限

如果你需要 root shell,用管理器授权的方式(正常的 App 授权),或用 su 命令触发 App 内授权。

其他常见安装错误

错误可能原因解决
os error 13权限不足检查目标目录权限,确认管理器有 root
os error 30只读文件系统系统分区被挂载为只读,尝试 remount
模块无 module.prop模块 zip 结构不对解压确认 zip 根目录有 module.prop
重启后模块不生效SELinux 或 overlayfs 问题检查 SELinux 模式(应为 permissive 或 hook 绕过)

总结

模块安装时报 os error 2/5/22 → 去权限管理里取消 shell 的 root 授权 → 重启 → 再试。就这一条。