一加 13 全量包的 zip 文件中包含 payload.bin ,我们可以使用这个文件提取分区镜像,并使用脚本通过 fastboot 刷写镜像。
准备工作
- 下载全量包,假设全量包名字为 xxx.zip
- 安装 fastboot 工具
- 安装镜像提取工具 payload-dumper-go
安装镜像提取工具
1
| brew install payload-dumper-go
|
解压全量包
1 2
| mkdir ~/xxx unzip xxx.zip -d ~/xxx
|
提取所有分区镜像
1
| payload-dumper-go -o ~/xxx/FTH/ ~/xxx/payload.bin
|
将如下脚本保存为 ~/xxx/flash_all.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #!/bin/bash
file=vendor_boot
if ! command -v fastboot &> /dev/null; then echo "fastboot not found." exit 1 fi
echo "************************ START FLASH ************************" echo "******************* REBOOT FASTBOOTD *******************" fastboot -aa fastboot flash modem FTH/modem.img fastboot reboot fastboot sleep 5
for img in FTH/*.img; do echo "flashing $img" fastboot flash "$(basename "$img" .img)" "$img" done
if [ -f FTH/$file.zip ]; then echo unzip -p FTH/$file.zip FTH/$file > FTH/$file.img echo "********************** FTH FLASHING **************************" fastboot flash $file FTH/$file.img echo "*********************** FASTBOOT AGAIN ***************************" rm -f FTH/$file.img fi
fastboot reboot fastboot sleep 5
echo "**************************** FOMAT DATA ******************************" fastboot -w sleep 5
fastboot reboot bootloader sleep 5
exit 0
|
修改权限并执行
1 2
| chmod +x ~/xxx/flash_all.sh ~/xxx/flash_all.sh
|
动态分区修复
如果出现如下错误:【未完待续】