提取boot-init_boot
几种获取boot镜像的方案
X1.从官方刷机包中提取
X2. 利用adb提取boot
X3.利用DSU侧载GSI提取
Magisk修补Boot方案:
在官方刷机包中提取boot
联发科机型使用mtkclient提取boot
若支持Treble,可刷入GSI提取boot,但会丢失原厂系统。
若要保留原系统提取boot,可使用DSU侧载GSl,要求系统不低于安卓11
特殊方案:
使用mtkeasysu获取root,部分机型会失败
使用各种一键root工具,但不支持高版本安卓系统(建议2.3~5.1)
获取ROOT权限流程总结
1.检查分区类型,需支持Treble(GSI)和动态AB分区(DSU)
2.解锁Bootloader
3.下载userdebug版的GSI
4.通过DSU Sideloader侧载GS!
5.进入GSI后,通过shell su提取boot.img并传到电脑
6.重启到原系统,安装Magisk并修补boot.img
7.重启到Bootloader,刷入修补后的boot.img
8.重启手机,开搞!
利用adb提取boot
adb shell
su
定位分区路径
Android 10及以下:boot分区通常在/dev/block/boot/by-name/boot
Android 11+:可能需要提取init_boot.img(代替或补充boot.img),路径可能是/dev/block/boot/by-name/init_boot
/dev/block/by-name/boot_a
/dev/block/by-name/init_boot_a
提取镜像
dd if=/dev/block/boot/by-name/boot of=/sdcard/boot.img
dd if=/dev/block/boot/by-name/init_boot of=/sdcard/init_boot.img
将镜像拉取到电脑
adb pull /sdcard/boot.img ./
adb pull /sdcard/init_boot.img ./
通过Fastboot提取(需解锁Bootloader)
fastboot getvar all 2>&1 | grep partition-size # 查找分区大小
fastboot dump boot boot.img
fastboot dump init_boot init_boot.img
在TWRP等自定义Recovery中执行:
adb shell
dd if=/dev/block/platform/soc.0/by-name/boot of=/sdcard/boot.img
dd if=/dev/block/platform/soc.0/by-name/init_boot of=/sdcard/init_boot.img
adb pull /sdcard/boot.img .
验证镜像
file boot.img # 应显示为Android bootimg格式
TrebleCheck
https://gitlab.com/TrebleInfo/TrebleInfo/-/releases
侧载工具
https://github.com/VegaBobo/DSU-Sideloader
gsi 下载
https://developer.android.com/topic/generic-system-image/releases?hl=zh-cn#android-gsi-11
社区版
https://github.com/TrebleDroid/treble_experimentations