一、BOOT历史

1.1 (init_)boot分区简介

  • boot.img:

    • 内含:
      • Ramdisk # 内核-安卓13.5.x及以后移到init_boot分区
      • GKI内核(Kernel)
      • Recover(安卓11之前) # 安卓11以后recovery分区移到boot分区里面
    • adb命令:bootloader模式
      • ``手机关机,电源键+音量下键
      • ``adb reboot bootloader
  • init_boot.img:

    • 分区内涵:
      • Ramdisk # 内核-安卓13.5.x及以后,归入进来
    • adb命令:fastbootd模式
      • ``adb reboot fastboot

#补充 内核版本-安卓13.5.x.x后把Ramdisk放入init_boot分区
#补充 Ramdisk:存放设备启动时所需的临时文件,帮助设备加载系统。

  • 出场内核-安卓11及以上的手机都采用VAB分区,boot分区分为boot_a、boot_b分区

#补充

image.png

image.png

1.2 Magisk、KSU、Apatch修补原理

Magisk、KSU、Apatch修补(init_)boot.img:

  1. Magisk

    • Magisk修补Ramdisk

    #补充 在ramdisk中注入bootstrap进程,它会在启动时初始化magisk环境,随后拉起init进程,手机启动
    #补充 内核版本-安卓13.5.x.x以上的机型,ramdisk移到init_boot分区。

  2. KSU

    • KernelSU(GKI):使用通用内核镜像(GKI)替换掉设备原有的内核。
    • KernelSU(LVM):使用可加载内核模块(LKM)的方式加载到设备内核中,不会替换掉设备原有的内核。向ramdisk分区添加可加载内核,其他安装过程和magisk安装方法一致。
    • #补充 内核版本-安卓13.5.x.x以上的机型,ramdisk移到init_boot分区。

    #补充 ==内核版本5.0以上支持GKI模式,可以安装kernelSU(GKI)==
    #补充==内核版本5.10以上,软件版本0.9.0及以上,支持kernelSU(LKM)==

  3. Apatch

    • Apatch替换官方boot.img中GKI内核的kernel文件,然后再打包刷入boot分区

    #补充==Apatch 支持内核版本5.x以上的手机,4.x仅支持一部分,刷入前提前确认

#注意 KernelSU(GKI):一直操作boot分区
Apatch:所有手机kernel内核一直在boot分区,所以apatch修补boot分区
KernelSU(LKM):操作ramdisk,和Magisk一样的安装方式,但实现机制不同。

二、BOOT提取

## 1.1 刷机包

  • 解压线刷包,找到(init_)boot.img,拷贝保存。
    #注意 官方(init_)boot.img保存好,最高优先级
    #补充 线刷包:解压后,在images文件夹找到(init_)boot.img
    卡刷包:解压后,找到payload.bin,通过[[payload提取boot.img|Payload]]或MT管理器获取boot.img或init_boot,img

1.2 SCENE(需ROOT)

  • 备份还原–>备份分区镜像,选择要备份的槽位对应的boot分区或init_boot分区
    image.png

1.3 爱玩机工具箱(需ROOT)

  • 导航–>刷机工具箱–>镜像分区管理,选择要备份的槽位对应的boot分区或init_boot分区
    image.png

1.4 kernel flash(需ROOT)

  • 查看当前要备份的槽位对应的boot分区或init_boot分区,点击备份。

1.5 TWRP

  • 重启到REC界面,备份当前槽位对应的boot分区或init_boot分区
  • 修改备份文件名为boot.img或init_boot.img

1.6 在线提取

在线提取boot、init_boot镜像

三、BOOT刷入

2.1 搞机助手&ADB工具

  • 修改后的boot或init_boot文件,改为init_boot.img或boot.img,不然可能提示错误
    init_boot分区:      fastboot flash init_boot    boot文件名
    boot分区: fastboot flash boot boot文件名

    其他命令:
    fastboot flash boot_ab boot文件名 #该命令需要在fastbootd模式下
    fastboot flash boot_a boot文件名
    fastboot flash boot_b boot文件名

#补充 电脑fastboot刷入时会自动识别当前分区,刷入其他分区需自行输入命令。

2.2 TWRP

  • 修改后的boot或init_boot文件,改为init_boot.img或boot.img,不然可能提示错误
    init_boot分区:    fastboot flash init_boot    init_boot文件名
    boot分区: fastboot flash boot boot文件名

    其他命令:
    fastboot flash boot_ab boot文件名 #该命令需要在fastbootd模式下
    fastboot flash boot_a boot文件名
    fastboot flash boot_b boot文件名

#补充 电脑fastboot刷入时会自动识别当前分区,刷入其他分区需自行输入命令。

2.3 kernel flasher(需ROOT)

  • 获取root:修改后的boot或init_boot文件直接刷入要刷入的槽位的分区

#补充 区分刷入的A/B槽位

2.4 SCENE(需ROOT)

  • 备份还原–>刷入分区镜像,选择boot或init_boot文件,刷入对应的boot或init_boot分区

#补充 区分刷入的A/B槽位

2.5 爱玩机工具箱(需ROOT)

  • 导航–>刷机工具箱–>镜像分区管理,选择boot或init_boot文件,刷入对应的boot或init_boot分区

#补充 区分刷入的A/B槽位