从安装 APatch 到嵌入 KPM
准备
- 一台 Android 手机
- 一台运行 Windows 并且带有 adb 环境的电脑
- APatch 安装包
提取 boot 分区
通过刷机包来提取 boot 分区
如果你是小米/红米手机的话,你可以到 XiaomiROM 下载你手机对应的刷机包来提取 Boot 分区,其他系统请自行查找,注意刷机包分为线刷和卡刷包。
线刷包的提取方法
- 解压线刷包到任意路径下
- 进入线刷包文件夹找到 images 文件夹
- 找到里面的 boot.img 传输到手机上
卡刷包的提取方法
- 解压卡刷包到任意路径下
- 使用工具提取 payload.bin 的分区
你可以使用这些工具来提取 payload.bin
本教程使用 payload-dumper-go 来提取,将 payload-dumper-go.exe 放入到有 payload.bin 的文件夹中,在上方输入 cmd 并回车,这时 cmd 的启动路径就在你当前的路径下了
在终端窗口中输入
1 | # 如果你使用的是PowerShell请使用这条命令 |
当看到 boot 分区已经提取出来了,手动使用 ctrl + c 打断程序,因为我们只需要 boot 分区
你会发现在当前目录下新建了一个文件夹叫extracted_xxxxxx_xxxxxx
进入该文件夹你就可以看到你提取的所有分区了,这里面应该有 boot 分区,提取出来传输到手机上
使用ADB提取boot分区(需要Root)
再次提醒:dd 命令存在较大的风险,请谨慎使用
- 确定是否为 AB 分区的设备
- 使用
adb shell getprop ro.build.ab_update如果返回为true则代表为AB分区,如果返回为空白则不是 AB 分区 - 如果确认为AB分区的设备,使用
adb shell getprop ro.boot.slot_suffix来查看系统目前所在的分区
- 使用
- 使用
adb shell进入 adb shell 模式 - 使用
su提权到 Root - 使用
cd /dev/block/bootdevice/by-name切换到分区路径下 - 使用
ls -l分区名查看地址,如果是非AB分区设备使用ls -l boot就可以了,如果是AB分区的设备需要使用 ls -l boot_目前所在的分区 - 看 boot 链接的路径,比如我这里的路径是/dev/block/sde37 ,那么我就使用
1 | # dd if=输入文件名 of=输出文件名 |
- 此时在你的
/sdcard/Download/目录下应该有一个名为 boot.img 的文件,它就是我们需要的 boot
修补和刷入 Apatch
修补 boot
- 下载并安装 Apatch
- 进入 Apatch,点击点此安装
- 点击选择一个启动镜像并修补
- 选择你的 boot 镜像
- 点击开始修补
- 在修补完成之后并不会退出该页面,看到下方显示 Successful Patched! 为成功
- 把 /sdcard/Download/ 目录下带有 apatch 开头的镜像文件传输到电脑上,为刷入做准备
刷入 boot
- 确认 Apatch 修补过的镜像文件已经移动到电脑上
- 重启手机到 fastboot 模式下
- 使用
fastboot flash boot 镜像文件路径,把 boot 刷入到手机上 - 使用
fastboot reboot重启手机
嵌入 KPM
警告:在进行嵌入模块之前请先尝试加载模块,如果如果确认没问题之后再嵌入,否则出现无法开机等情况概不负责
- 进入 Apatch 点击下方的内核模块选项
- 点击右下角的 FAB,选择嵌入
- 点击嵌入模块,选择你想嵌入的模块
- 最后点击开始修补,等待修补完成之后点击重启即可
参考
[2] https://magiskcn.com/payload-dumper-go-boot
[3] https://miuiver.com/checks-for-ab-partitions-support/
[4] https://bbs.kanxue.com/thread-277700.htm
[5] https://developer.android.com/tools/adb
[6] https://developer.android.com/tools/releases/platform-tools
[7] https://www.runoob.com/linux/linux-comm-dd.html
更新日志
[2026/3/26] 移除了所有图片,进行了排版优化,并删除了 APatch 与 Magisk 共存的部分,因为这种方法并不稳定。