☰
KernelSU 模块改了 /system 没生效?装好 meta-overlayfs 元模块四步搞定
2026/10/20 1:59:37 网站建设 项目流程

KernelSU 模块改了 /system 没生效?装好 meta-overlayfs 元模块四步搞定

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

KernelSU 的模块要改 /system 文件,必须先装元模块。本文带你判断自己是否需要 meta-overlayfs,完整走完安装、验证和排错流程,重启后覆盖、删除、目录替换全部生效。

先自查:你的模块需不需要装元模块

🎯 先花一分钟对照下面的清单,别盲目装:

  • 动了 /system 下的文件(替换预装应用、删广告组件、整目录替换):必须装。模块里的system目录只有元模块挂上去之后才会叠到系统分区上,不装就白写。
  • 只跑开机脚本(post-fs-data.sh、service.sh之类):不用装。脚本由 KernelSU 内核按阶段调度执行,和挂载是两条独立路径。
  • 只带sepolicy.rule或system.prop:不用装。前者由内核直接加载,后者直接按系统属性载入,两者都绕开了挂载环节。

如果你只用后两类能力,可以跳过本文直接干活;模块目录的完整结构参考 模块指南。

开机时发生了什么:OverlayFS 是怎么盖到系统分区上的

KernelSU 核心本身不碰挂载这件事,它把活儿外包给一个可插拔的插件组件——元模块。官方参考实现meta-overlayfs在开机post-fs-data阶段执行metamount.sh(挂载处理脚本),用内核的 OverlayFS(叠加文件系统,可在表面叠加内容而不改原分区)把每个启用模块的system目录依次叠到/system、/vendor、product、system_ext、odm、oem这些分区上。

打个比方:相当于给系统分区盖了一层影子图层。读文件时优先命中影子层,写和删都发生在影子上,底层分区一个字节都不动。

三个高频操作,知道原理后就不难懂:

  • 覆盖:同名文件放模块里,读到的是模块版本。
  • 删除(whiteout):在模块里执行mknod filename c 0 0生成同名空占位符,OverlayFS 就把原文件当"已删"处理。
  • 整目录替换(opaque):对模块内同名目录执行setfattr -n trusted.overlay.opaque -v y <TARGET>,该目录不再和底层合并,只保留模块自己的内容。

不想手写占位符的话,在customize.sh里声明REMOVE/REPLACE列表,KernelSU 会自动帮你完成上面两步。更多架构细节看 元模块指南。

四步装好 meta-overlayfs:从下载 ZIP 到重启

📦 全程在 KernelSU Manager 里完成,不需要 adb:

  1. 备好安装包:下载meta-overlayfs.zip。同时确认设备上没有其他激活的元模块——KernelSU 同一时间只认一个,再装第二个会被直接拒绝。
  2. 进安装入口:打开 KernelSU Manager 应用。
  3. 点装:点页面上的悬浮按钮(➕),在文件选择器里选中刚下载的meta-overlayfs.zip,确认安装。
  4. 重启:重启设备并等开机走完。开机过程中metamount.sh已跑完,各模块的system目录这会儿已经叠到对应分区上了。

装完对号入座:5 个信号确认挂载已生效

  • Module 页面里meta-overlayfs出现在列表中,且带元模块专属标识
  • 执行ls -l /data/adb/metamodule,这个软链接指向元模块目录,是排查"当前到底是谁在挂载"的稳定路径
  • 读模块里与系统同名的文件,拿到的是模块侧内容(覆盖生效)
  • 你做过mknod占位符的位置,原文件已不可见,而/system分区本身没被改动
  • 标了 opaque 的目录里只剩模块自己的内容(整目录替换生效)

翻车自救:元模块不生效的四种典型场景

⚠️ 按"现象 → 原因 → 处理"顺序对号:

  1. 装第二个元模块被拒。原因:单实例限制,防止两套挂载方案互相打架。处理:卸载全部普通模块 → 卸载当前元模块 → 重启 → 装新元模块 → 重装普通模块 → 再重启。
  2. 卸载元模块后所有模块集体罢工。设备照常开机,但挂载能力随之消失,模块改动全部落空。处理:尽快装回一个元模块;没准备好替代品之前,别碰卸载按钮。
  3. 唯独某个模块挂不上。原因:该模块目录里躺着skip_mount(跳过挂载)或disable(禁用模块)标记文件。处理:删掉对应标记,再重启一次。
  4. 装完也重启了,覆盖/删除还是没体现。先回 Module 页面确认meta-overlayfs真在列表里,再按第 3 条查标记文件;FAQ 里"全新安装后模块不工作"的结论与此一致。

记住这一条主线:meta-overlayfs 元模块是模块改动 /system 的落地开关,装好它、确认它在列表里,覆盖、删除、整目录替换才算真正生效。

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

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

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

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

立即咨询