MacOS 使用一加 13 全量包刷机救砖

一加 13 全量包的 zip 文件中包含 payload.bin ,我们可以使用这个文件提取分区镜像,并使用脚本通过 fastboot 刷写镜像。

准备工作

  1. 下载全量包,假设全量包名字为 xxx.zip
  2. 安装 fastboot 工具
  3. 安装镜像提取工具 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

# 检查 fastboot 是否存在
if ! command -v fastboot &> /dev/null; then
echo "fastboot not found."
exit 1
fi

# 开始刷机
echo "************************ START FLASH ************************"
echo "******************* REBOOT FASTBOOTD *******************"
fastboot -aa # 使用 A 槽位
fastboot flash modem FTH/modem.img # 高通 modem 需要使用 fastboot 模式刷入,其它镜像使用 fastbootd
fastboot reboot fastboot
sleep 5

# 刷写 FTH 镜像
for img in FTH/*.img; do
echo "flashing $img"
# echo "fastboot flash $(basename $img .img) $img"
fastboot flash "$(basename "$img" .img)" "$img"
done

# 刷写 vendor_boot 镜像
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
fastboot reboot fastboot
sleep 5

# 格式化数据分区
echo "**************************** FOMAT DATA ******************************"
fastboot -w
sleep 5

# 重启 bootloader
fastboot reboot bootloader
sleep 5

# 锁定 bootloader
#fastboot flashing lock
#echo "Press the \"volume down\" button to \"lock the bootloader"

# 退出脚本
exit 0

修改权限并执行

1
2
chmod +x ~/xxx/flash_all.sh
~/xxx/flash_all.sh

动态分区修复

如果出现如下错误:【未完待续】