想给老手机刷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,对不上说明提错分区了。
一句话取舍:机型和版本都对得上再动手刷,镜像来源不明、校验过不去就别硬刷,变砖后悔来不及。