3 步装好 meta-overlayfs 元模块:KernelSU 模块挂载从原理到排错的完整指南 3 步装好 meta-overlayfs 元模块KernelSU 模块挂载从原理到排错的完整指南【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSUKernelSU 的模块挂载能力由名为meta-overlayfs 元模块的官方参考实现提供。它让模块里的system目录以 systemless 方式叠加到/system分区之上无需真正改动系统分区。本文按先看懂原理 → 照做安装 → 验证生效 → 排错避坑的路径带你走完整个流程并给出换装、卸载的限制说明。装好之后你的模块会发生什么变化先看清楚目标状态操作时心里才有底重启后元模块在启动流程的post-fs-data 阶段执行挂载把所有已启用模块的system目录以 OverlayFS 叠加到系统分区支持system、vendor、product、system_ext、odm、oem共 6 个分区的覆盖官方实现meta-overlayfs还支持用 ext4 镜像modules.img存放模块文件节省存储空间模块声明的文件替换、目录合并、文件删除都会在开机后按预期体现出来。哪些模块能力依赖元模块只有修改/system文件这一项。模块里的启动脚本post-fs-data.sh、service.sh等、sepolicy.rule、system.prop都不需要元模块就能工作。如果你的模块只用这三类能力可以跳过安装。详见 模块指南 和 FAQ。一分钟看懂元模块机制普通 root 方案把挂载逻辑写死在核心里而 KernelSU 把这部分抽成了可插拔的元模块metamodule对比项核心KernelSU 本体元模块职责提供 root 与模块管理基础决定模块如何被安装和挂载安装数量只有一份同一时间仅允许一个脚本优先级普通模块脚本元模块脚本先于普通模块脚本执行这样做的好处是核心保持精简、不易被检测同时社区可以自行实现不同的挂载策略无挂载、Magic Mount、自定义 VFS 等。对普通用户来说装一个meta-overlayfs就够用。元模块的判定依据是其module.prop中的metamodule1属性并可携带metamount.sh挂载处理器、metainstall.sh安装钩子、metauninstall.sh清理钩子三个钩子脚本。开发向的细节参见 元模块指南。安装 meta-overlayfs照做即可的 5 步流程元模块的安装方式和普通模块完全相同全程在 KernelSU Manager 应用内完成下载元模块的 ZIP 包例如meta-overlayfs.zip到手机存储打开 KernelSU Manager 应用点击右下角的悬浮按钮➕在弹出的选择器中选中刚才下载的 ZIP 文件等待安装完成后重启设备。重启这一步不能省挂载逻辑只在启动时执行装完不重启等于没装。如何确认元模块真的生效了验证分两层先看装没装上再看干没干活。第一层应用内确认身份。打开 Manager 的Module 页面当前激活的元模块会出现在模块列表中并带有专属的元模块标识。如果列表里看不到它说明安装未成功回到上一步重来。第二层观察system目录的实际行为。装好meta-overlayfs后模块里system目录的规则如下完整说明见 模块指南你的诉求模块里该做什么替换同名文件放入同名文件即可自动覆盖合并同名目录目录自动合并无需额外操作删除系统文件用mknod filename c 0 0生成同名占位由 OverlayFS 做 whiteout/system分区本身不动整目录替换创建同名目录并执行setfattr -n trusted.overlay.opaque -v y TARGET或在customize.sh中声明REMOVE/REPLACE变量交给 KernelSU 自动处理所以最直接的验证方式是挑一个你模块里声明的覆盖/删除/替换项重启后确认它是否按预期出现。注意事项限制、副作用与标记文件集中说明这一节把容易踩的坑全部收拢在一起操作前扫一眼能省不少返工时间。⚠️同一时间只能装一个元模块。若设备上已有元模块例如迁移配置带来的再装第二个时 KernelSU 会直接阻止安装以避免冲突。需要切换时按官方给出的顺序操作卸载所有普通模块卸载当前元模块重启安装新的元模块重新安装普通模块再次重启。⚠️卸载元模块的副作用波及所有模块。卸载后、换装新元模块之前没有任何模块会被挂载——涉及/system修改的内容全部失效设备本身仍可正常开机。如果你只是临时卸载请对模块集体静默有心理准备。排查用的小知识元模块安装后KernelSU 会建立符号链接/data/adb/metamodule - /data/adb/modules/metamodule_id这条与 ID 无关的稳定路径可以随时用来确认当前激活的是哪个元模块模块目录里若存在skip_mount或disable标记文件该模块的system目录就不会被挂载。模块装了没反应时先检查这两个标记是否存在。重启后仍不生效按这个顺序排查FAQ 对全新安装后模块不工作的结论与本文一致需要改/system文件的模块必须依赖元模块其余能力不依赖。据此按顺序过一遍进 Module 页面确认元模块出现在列表里且带元模块标识确认目标模块目录中没有skip_mount、disable标记文件确认确实执行了安装后的重启挂载只在开机时发生若以上都满足仍不生效检查模块system目录结构本身是否符合 模块指南 的规范。元模块的其他实现无挂载、Magic Mount、自定义方案以及开发所需的钩子脚本参见 元模块指南模块目录结构、启动脚本等安装后配置继续参考 模块指南。【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考