基础与常识
约 906 字大约 3 分钟
2025-1-3
各Root方案的修补点位
Magisk
Magisk 修补的是ramdisk,在拆分前位于boot分区,拆分后位于init_boot分区
提示
有init_boot就修补init_boot,没有就修补boot
KernelSU
此处涵盖 KernelSU 原版及其所有分支
LKM
KernelSU 在使用 LKM 时修补ramdisk以加载内核模块,位置同Magisk
GKI
KernelSU 在使用 GKI 时,你需要内核源码以重新构建Kernel才可使用 GKI,修改的分区为 boot
Apatch & FolkPatch
Apatch 基于 KernelPatch 二次开发,其修补的点位为kernel,也就是boot分区
重要
无论何时, Apatch 修补的分区均为boot,除非 Google 未来变更kernel位置,否则均为boot,修补init_boot为无效修补
挂载
Magisk
Magisk 使用的挂载机制一般被称为Magic Mount,其内置在 Magisk 核心中。允许你在不实际修改系统文件的前提下对不可写分区 (EROFS:system) 进行修改
重要
你确实可以使用类似Mountify 之类的的模块来让 Magisk 支持Overlayfs挂载,但这一般毫无意义
KernelSU
此处涵盖 KernelSU 原版及其所有已跟进Meta Module的分支
考虑到 KernelSU 已切换至Meta Module用于挂载,此处仅简要谈及部分 Meta Module
Meta-Overlayfs
KernelSU 官方维护的挂载实现,基于Linux Kernel的Overlayfs文件系统实现,理论拥有比Magic Mount更好的性能和隐蔽性
Meta-Magic Mount (rs)
可类比 Magisk 的Magic Mount挂载实现,在此基础上实现了更多功能
Meta-Hybrid Mount
同时提供了Overlayfs & Magic Mount两种挂载实现,考虑到其特殊的HymoFS已被暂时移除,相比较其它Meta Module并无优势
Apatch & FolkPatch
提示
FolkPatch 现已正式引入 Meta Module (元模块) 支持。
元模块 (Meta Module)
FolkPatch 支持安装特殊的 元模块(在 module.prop 中声明 metamodule=1)。元模块拥有极高的权限,可以接管和重新定义 FolkPatch 的核心行为:
- 挂载接管:通过
mount.sh接管默认的挂载逻辑,例如实现基于OverlayFS的挂载机制,提供比默认Magic Mount更好的性能或兼容性。 - 安装接管:通过
metainstall.sh接管普通模块的安装过程,允许自定义模块的安装方式。 - 卸载接管:通过
metauninstall.sh接管模块的卸载过程。
这使得 FolkPatch 能够像 KernelSU 一样,通过社区开发的元模块来扩展其底层能力,例如支持 OverlayFS 挂载或其他高级特性,而无需修改 FolkPatch 核心代码。
模块冲突
你是否经常有这种疑惑,即某个模块是否与某个模块冲突?
首先我们需要明确,为什么模块会冲突?
- 对相同系统文件进行了挂载或修改
- 对相同系统属性进行了修改
- 模块作用域重叠
它们的修改会根据加载顺序进行覆盖,导致某一方的修改不生效,甚至导致系统无法启动。
如何判断是否冲突
- 相同类型模块,例如
Zygisk实现元模块调度墓碑,这些模块通常来讲不会,也不能兼容,所以只能使用一个。 - 各种功能重复的模块,例如
后台优化模块会与Noactive的 后台优化功能重复,因为他们都修改了系统的oom_adj。 - 需要使用挂载的模块,例如
字体温控,同样只能使用一个
重要
如果原作者对模块的兼容性做了特别说明,那么一切以原作者为准
版权所有
版权归属:FolkPatch Team
