资讯动态

KernelSU meta-overlayfs 元模块安装终极指南:三步让模块改动 /system 真正生效

发布时间:2026/10/20 11:08:11 来源:尧图企业网站定制
KernelSU meta-overlayfs 元模块安装终极指南三步让模块改动 /system 真正生效【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU你装了个会改 /system 的 KernelSU 模块重启后读到的却还是原来的文件KernelSU 本身不做模块挂载你缺的是一个元模块meta-overlayfs。按本文走完安装和验证你的模块 system 目录从此叠加到系统分区上。先给结论三步装好 meta-overlayfs最小路径只有三步拿到meta-overlayfs.zip安装包在 KernelSU Manager 应用里点击悬浮按钮➕选中这个 zip 完成安装重启设备。重启后所有启用模块的 system 目录会在开机早期被叠加到对应分区覆盖、隐藏、替换一次性全部就位。着急的话可以直接跳到验证一节想先弄清它背后的机制接着往下看。元模块机制一场不动 /system 分区的替身秀KernelSU 把模块挂载这件事整个交给了一个可插拔的插件组件——元模块负责模块挂载的插件组件官方参考实现就是meta-overlayfs。它的挂载脚本在开机 post-fs-data 阶段执行以 systemless表面叠加、不改原始分区方式把所有启用模块的 system 目录叠加到 /system、/vendor、/product、/system_ext、/odm、/oem 六个分区上。打个比方这是一场替身演出。原始系统文件一直待在后台/system 分区纹丝不动应用读到的是模块提供的替身在同一个位置上出场。元模块卸载后替身集体退场原件重新露面谁也发现不了这里曾经换过人。三种改法都由替身完成文件覆盖模块里与系统文件同名时应用读到的就是模块那份内容。隐藏原文件用mknod filename c 0 0生成一个同名零字节占位符OverlayFS 会把这个文件当作已删除处理应用视角里它直接消失而分区里的原件还在。整目录替换对模块里的同名目录执行setfattr -n trusted.overlay.opaque -v y TARGET打上 opaque 标记后该目录不再与系统原目录合并只保留模块自己的内容。不想手动敲这两条命令可以在customize.sh里声明REMOVE和REPLACE列表KernelSU 会自动完成占位符和 opaque 标记。机制细节可查元模块指南。先问自己一个问题你的模块改不改 /system装之前对照你模块用到的能力判断如果你的模块覆盖 /system 里的文件换应用、去预装、整目录替换必须装元模块没有挂载system 目录不会生效。如果你的模块只跑开机脚本post-fs-data.sh、service.sh之类不用装脚本独立执行与挂载无关。如果你的模块只用sepolicy.rule不用装规则由 KernelSU 核心直接加载。如果你的模块只有system.prop不用装这个文件直接作为系统属性载入。模块目录的完整结构参考模块指南。不属于第一种情况的话后面的安装步骤可以整段跳过。一步步安装 meta-overlayfs下载meta-overlayfs.zip安装包。打开 Module 页面看当前列表如果已有元模块先卸掉旧的KernelSU 同一时间只允许一个元模块装第二个会被直接拦下。打开 KernelSU Manager 应用。点击页面上的悬浮按钮➕。选中刚下载的meta-overlayfs.zip确认安装。重启设备等待开机完成。两个额外提醒。卸载元模块和普通模块不同卸完之后所有模块都会失去挂载能力设备能正常开机但修改全部停摆需要尽快装回新的。想换成别的元模块顺序是卸载所有普通模块 → 卸载当前元模块 → 重启 → 安装新的 → 重装普通模块 → 再重启一次。重启后怎么验证生效三种改法各验一次重启完成之后按你的改法逐一确认。文件覆盖怎么验挑一个模块覆盖过的 /system 文件直接读取。读到的是模块内容而不是系统原文覆盖就到位了。顺手确认 Module 页面里 meta-overlayfs 在列表中并且带元模块标识。whiteout 隐藏怎么验找到模块里那个零字节占位符对应的原路径。重启后应用视角里这个文件应当消失而 /system 分区本身没有任何改动——文件还在分区里只是被占位符挡住了。opaque 目录替换怎么验查看设备上那个同名目录的文件列表应当只剩模块自己的内容系统原目录里的文件一个都不出现。如果你是在customize.sh里用REPLACE声明的标记已由 KernelSU 自动打好。模块不生效按由近及远的顺序排查装了、重启了改动却没体现别乱试从最靠近答案的地方往深处查。第一层元模块本身在不在位打开 Module 页面确认 meta-overlayfs 在列表里、带元模块标识。再看/data/adb/metamodule这个符号链接它应当指向当前激活的元模块目录——这条路径与模块 ID 无关是确认现在激活的是谁最快的方式。如果元模块压根不在列表里问题就找到了回到安装一节重做。第二层模块目录里有没有挂起标记元模块正常、唯独某个模块没被叠上去就到它的模块目录里找两个标记文件skip_mount跳过挂载和disable禁用模块。只要存在其中一个该模块的 system 目录就不会被叠加。删掉对应标记重启模块就回来了。第三层挂载时机对不对前两层都通过还不生效问题多半出在挂载流程里。官方meta-overlayfs的metamount.sh在所有 post-fs-data 脚本跑完之后才执行挂载完成后才进入 post-mount 阶段。如果你的模块在post-fs-data.sh或post-mount.sh里做了文件操作先确认它落在了正确的阶段挂载前执行的脚本看不到挂载完成后的结果。全新安装后模块不工作的常见原因FAQ 里有对应条目。收尾关应用前检查这三条Module 页面里 meta-overlayfs 在列且带元模块标识。/data/adb/metamodule指向当前激活的元模块目录。你覆盖过的路径上读到的是模块内容。任何一条没过从第一层开始逐层排查。【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑