#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 手动嵌入。

#首次修补时嵌入

  1. 按照 安装指南 中的自动修补流程进行修补,在进行第 4 步之后不要立即执行下一步操作。
  2. 点击”嵌入模块”按钮,之后选择你要嵌入的 KPM 文件(后缀名为 .kpm)。
  3. 确认要嵌入的 KPM 是你想要使用的 KPM。
  4. 完成剩余的”自动修补”流程即可。

#安装 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 提供了两种方式:

  1. 使用 JSON 配置自定义加载:你需要写入符合 JSON 语法格式的 KPM 路径
  2. 使用可视化选择:FolkPatch 将直接调用系统文件选择器,选择你需要的 KPM 即可

其余行为与 加载 保持一致。

:::warning 自动加载默认不会向 KPM 传递任何参数 :::

#版权所有

版权归属:Apatch Document

本文转载自:https://apatch.dev/zh_CN/kpm-usage-guide.html

许可证:Attribution-ShareAlike 4.0 International

#🔗 相关链接