KernelSU 模块装了不生效?五步装好 meta-overlayfs 元模块完整指南
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
模块装上了,重启也做了,/system 下的文件却纹丝不动?很多新手卡在这一步。原因很简单:缺的是元模块——可以把它理解为模块挂载的总开关。KernelSU 把挂载能力拆成了可插拔的元模块,不装官方的 meta-overlayfs,模块的 system 目录根本不会被挂载。本文带你五步装好。
先搞懂:元模块是不是必需的
打个比方:OverlayFS 的叠加,就像往原文件夹上贴一层透明贴纸——模块文件盖在系统文件上面,撕掉贴纸原件不动,这就是 systemless。meta-overlayfs 是官方参考实现,提供基于内核 OverlayFS 的挂载,模块文件还可以存进 ext4 镜像 modules.img 里。
边界也要划清楚:只有要修改 /system 文件的模块必须装元模块;只用启动脚本、sepolicy.rule、system.prop 这些能力的模块,不装也照常工作,具体可查 模块指南 和 FAQ。
安装前 3 项自检
动手机之前,先过一遍这张单子:
- ✅ KernelSU 已经装好并拿到 root
- ✅ 手里的模块确实要改 /system 下的文件(而不是只有启动脚本、sepolicy)
- ✅ 元模块的 ZIP 包(例如 meta-overlayfs.zip)已经下载到手机上
五步装好 meta-overlayfs
- 下载元模块的 ZIP 文件(例如meta-overlayfs.zip)
- 打开KernelSU Manager应用
- 点一下悬浮的➕按钮
- 选中刚才下载的元模块 ZIP
- 执行重启
重启后元模块就接管了:它在 post-fs-data 阶段跑挂载脚本,把每个已启用模块的 system 目录以 OverlayFS 方式叠到对应分区上,覆盖 system、vendor、product、system_ext、odm、oem 六个分区。
重启后怎么确认 + 覆盖规则速查
打开 KernelSU Manager 的Module 页面:当前激活的元模块会出现在模块列表里,还带一个特殊的元模块标识——看到这个,说明装对了。
模块 system 目录里的文件最终怎么生效,对照这张表:
| 想要的效果 | 模块里怎么写 |
|---|---|
| 覆盖同名文件 | 放一个同名文件,模块文件直接盖掉系统文件 |
| 合并同名目录 | 放一个同名目录,两边内容自动合并 |
| 删除系统文件 | 用mknod filename c 0 0生成同名占位,由 OverlayFS 做 whiteout(相当于贴一张"删除"标记),/system 分区本身不动 |
| 整目录替换 | 对目录执行setfattr -n trusted.overlay.opaque -v y <TARGET>,或在 customize.sh 里声明REMOVE/REPLACE变量,交给 KernelSU 自动处理 |
⚠️ 所以"有没有生效"的最终判据,就是这些覆盖、删除、替换在重启后是否按预期出现。
换装与卸载的两个坑
**坑一:元模块同一时间只能有一个。**设备里已经装着元模块,你再装第二个,KernelSU 会直接拦住。要换,就老老实实走六步:
- 卸载所有普通模块
- 卸载当前元模块
- 重启
- 安装新的元模块
- 重装普通模块
- 再次重启
**坑二:卸载是连坐的。**元模块一卸,波及所有模块——在装上新元模块之前,所有模块都不会再被挂载。设备本身照常开机,只是模块修改不生效。
想查现在激活的是哪个元模块,看安装后 KernelSU 建的符号链接/data/adb/metamodule -> /data/adb/modules/<metamodule_id>,这条路径与 ID 无关,可以放心长期使用。
快问快答
问:全新安装后,模块为什么不工作?答:凡是碰 /system 文件的模块,都得先有元模块把 system 目录挂起来;启动脚本、sepolicy 这些能力则跟元模块无关。
问:装了元模块重启后还是不生效,先查什么?答:两处。先看 Module 页面,元模块是否真的在列表里;再看目标模块有没有skip_mount或disable标记文件,任一个存在,它的 system 目录就不会被挂载。
问:除了 meta-overlayfs,还有哪些元模块实现?答:无挂载、Magic Mount、自定义方案都有人做。自己开发元模块的话,需要metamodule=1属性和metamount.sh等钩子脚本,详见 元模块指南。
元模块就是挂载的总开关,装好 meta-overlayfs 就打通了 systemless 覆盖 /system 这条路。下一步照着 模块指南 把模块目录结构配好,开干。
【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考