#KernelPatch Module (KPM)
FolkPatch 基于 APatch 二次开发,APatch 依赖于 KernelPatch,继承了其全部功能并进行了扩展。因此,FolkPatch 也支持使用 KernelPatch Modules (KPM)。
#什么是 KPM?
KPM 是一种运行在内核空间内的模块,可以让代码运行在内核空间中,类似于 Loadable Kernel Modules(LKM)。
通过 KPM,你可以实现一些 APM 不能实现的功能(例如分区镜像保护等)。
#如何安装 KPM?
KPM 有三种安装方式:嵌入、加载和安装。
#关于”安装”
:::warning 目前,FolkPatch 并没有实现 KPM 的”安装”操作,因其上游 APatch 并没有实现,因此现阶段 FolkPatch 的 KPM 只能通过”嵌入”和”加载”两种方式安装。KernelPatch 和 APatch 的开发者正在努力实现相关功能,请耐心等待。 :::
#嵌入
嵌入 是指将 KPM 直接嵌入至 kernel。此模式下安装的 KPM 会同 kernel 一起被合并进 boot.img 中,在 pre-kernel-init 阶段加载。
KPM 的嵌入可以在首次使用 FolkPatch 管理器修补 boot.img 时或者在完成 FolkPatch 安装后进行。你也可以使用 kptools 手动嵌入。
#首次修补时嵌入
- 按照 安装指南 中的自动修补流程进行修补,在进行第 4 步之后不要立即执行下一步操作。
- 点击”嵌入模块”按钮,之后选择你要嵌入的 KPM 文件(后缀名为
.kpm)。 - 确认要嵌入的 KPM 是你想要使用的 KPM。
- 完成剩余的”自动修补”流程即可。
#安装 FolkPatch 后嵌入
在 FolkPatch 安装后,嵌入 KPM 的方式和安装 APM 的方式大致相同。你可以在”内核模块”界面点击右下角的按钮,选择”嵌入”,之后的步骤可以参考 首次修补时嵌入 进行。
#加载
加载 是指将 KPM 立即交给内核进行加载。通过这种方式加载的 KPM 会立即生效,但会在下次重新启动后消失。
加载 KPM 的方式和安装 APM 的方式大致相同,唯一一点区别在于 KPM 在加载后无需重启。
#安装
:::info 目前 KernelPatch 和 FolkPatch 还未实现 KPM 的安装,以下的描述仅为对安装 KPM 的预期行为描述。 :::
安装 是指将 KPM 作为一个类似于 APM 的模块文件安装至 /data/adb/kpmodules 或类似目录。通过这种方式安装的 KPM 可以在特定的 event 进行加载。
#自动加载
FolkPatch 目前支持在首次启动 FolkPatch 应用时加载 KPM 至内核中,这需要你选定 KPM 的路径,FolkPatch 提供了两种方式:
- 使用 JSON 配置自定义加载:你需要写入符合 JSON 语法格式的 KPM 路径
- 使用可视化选择:FolkPatch 将直接调用系统文件选择器,选择你需要的 KPM 即可
其余行为与 加载 保持一致。
:::warning 自动加载默认不会向 KPM 传递任何参数 :::
#版权所有
版权归属:Apatch Document
本文转载自:https://apatch.dev/zh_CN/kpm-usage-guide.html
许可证:Attribution-ShareAlike 4.0 International