想给老手机刷Magisk,第一步是拿到原始boot.img,很多机型官网不直接给,只能自己从机器里提,同事在群里问怎么弄,其实adb几条命令能搞定。

先确认能进fastboot或已root

提取boot的方法分两种,没root的机器要靠官方线刷包,已root的机器可以直接从分区里dd出来。没root还想提,一般是在官方包里找boot.img,或者用ADB进临时环境导出关键分区。

常见入口是让设备进recovery或者fastbootd,那里能摸到分区的块设备。手机开发者选项里打开USB调试,电脑装好平台工具。

adb devices 回车,再执行 adb reboot bootloader 进引导模式

找到boot分区对应的块设备

进到有root权限的环境后,先列一下块设备,boot一般在by-name目录下有软链。

ls -l /dev/block/by-name/ 找到名为boot的那一行,记下实际路径

然后把它整个读成镜像。

dd if=/dev/block/by-name/boot of=/sdcard/boot.img

如果机器是A/B分区,名字可能是boot_a和boot_b,两个都要提,别只拿一个。顺手把init_boot也看一眼,新的机型把内核塞在了init_boot里,Magisk要的是它。

导出到电脑并校验

  • 导出:adb pull 把镜像存到电脑
  • 校验:用文件头判断是不是Android boot镜像,正常的开头是ANDROID
  • 避免空文件:提出来0字节多半是没权限,换个环境重来
adb pull /sdcard/boot.img .

用十六进制工具看头几个字节是不是ANDROID,对不上说明提错分区了。

一句话取舍:机型和版本都对得上再动手刷,镜像来源不明、校验过不去就别硬刷,变砖后悔来不及。