跳到主要内容
Dali T6/T6Pro 救砖实战:macOS/Windows 用 mtkclient 修复 Fastboot 无限重启 | 极客日志
Python
Dali T6/T6Pro 救砖实战:macOS/Windows 用 mtkclient 修复 Fastboot 无限重启 综述由AI生成 介绍使用 mtkclient 工具在 macOS 和 Windows 环境下修复 Dali T6/T6Pro 学习机 Fastboot 无限重启问题的方法。核心步骤包括备份原机身份分区(proinfo),将可用的 user 区镜像(backup.bin)写入设备以恢复系统启动,最后写回原机 proinfo 以恢复序列号绑定。文章提供了详细的命令示例、路径配置及常见故障排查方案。
性能调优 发布于 2026/3/29 更新于 2026/5/29 22 浏览Dali T6/T6Pro(MTK)救砖实战:macOS/Windows 用 mtkclient 从 Fastboot/Logo 无限重启完整恢复
本文记录一次 Dali T6 学习机(联发科 MTK 平台,示例识别为 MT6771/0x788 系列)从'卡 Fastboot / Logo 无限重启'到成功进入系统,并最终恢复原机 SN/设备身份(proinfo)的完整过程。
TL;DR(快速流程)
下面这套是'最短路径'修复流程:
先备份原机身份(proinfo)(防止 SN 丢失/绑定冲突)
再把整机 user 区(backup.bin)写回去(解决 Fastboot/Logo 循环)
最后写回原机 proinfo 恢复 SN(避免家长 App 冲突)
如果你不想看后面的解释,只做这几步就行。
TL;DR-1:把文件放对位置(非常关键)
macOS 放这里(推荐统一路径,避免输错):
backup.bin 放到:/Users/c/Desktop/dali/backup.bin
原机备份 proinfo.bin 放到:/Users/c/Desktop/t6_identity_backup/proinfo.bin
Windows 放这里:
backup.bin 放到:C:\\dali\\backup.bin
原机备份 proinfo.bin 放到:C:\\dali\\t6_identity_backup\\proinfo.bin
TL;DR-2:进入 BROM(本机型实测无需短接)
每次执行 mtkclient 命令时:
先在电脑上运行命令(它会等端口)
再插电源 + 插数据线
一直长按电源键不放,直到电脑端出现:
Port - Device detected :)
或 BROM mode detected.
TL;DR-3:macOS 一键流程(复制粘贴版)
A) 安装 mtkclient(只需一次)
git clone https://github.com/bkerler/mtkclient.git ~/mtkclient
cd ~/mtkclient
python3 -m pip install -r requirements.txt
B) 备份'当前原机身份'(必须做,防丢 SN)
mkdir -p /Users/c/Desktop/t6_identity_backup
cd ~/mtkclient
sudo python3 mtk.py r proinfo /Users/c/Desktop/t6_identity_backup/proinfo.bin
成功标志(看到任意一个即可):
Dumping partition "proinfo"
Dumped sector ... as .../proinfo.bin
C) 整机写回 user 区(本次成功关键步骤)
cd ~/mtkclient
python3 mtk.py wo 0x0 0x3a5c00000 /Users/c/Desktop/dali/backup.bin --parttype user
sudo
成功标志:出现 Write 进度条,并最终写入完成。
拔 USB
拔 DC
等 10–15 秒
只插 DC 开机验证是否能进系统
D) 恢复 SN(先备份可启动 proinfo,再写回原机 proinfo) cd ~/mtkclient
sudo python3 mtk.py r proinfo /Users/c/Desktop/proinfo_working_now.bin
cd ~/mtkclient
sudo python3 mtk.py w proinfo /Users/c/Desktop/t6_identity_backup/proinfo.bin
cd ~/mtkclient
sudo python3 mtk.py w proinfo /Users/c/Desktop/proinfo_working_now.bin
TL;DR-4:Windows 一键流程(复制粘贴版)
A) 安装 mtkclient(只需一次) git clone https://github.com/bkerler/mtkclient.git C:\mtkclient
cd C:\mtkclient
python -m pip install -r requirements.txt
B) 备份原机 proinfo mkdir C:\dali\t6_identity_backup
cd C:\mtkclient
python mtk.py r proinfo C:\dali\t6_identity_backup\proinfo.bin
C) 整机写回 user 区 cd C:\mtkclient
python mtk.py wo 0x0 0x3a5c00000 C:\dali\backup.bin --parttype user
D) 恢复 SN cd C:\mtkclient
python mtk.py r proinfo C:\dali\proinfo_working_now.bin
python mtk.py w proinfo C:\dali\t6_identity_backup\proinfo.bin
cd C:\mtkclient
python mtk.py w proinfo C:\dali\proinfo_working_now.bin
TL;DR-5:最常见失败处理(小白只看这段就够)
一直卡在 Waiting for PreLoader VCOM :
继续长按电源键(别松)
换数据线(优先)
换 USB 口
全断电 10 秒再试
写 backup.bin 过程中断了/报错 :
先别开机折腾,重新进 BROM 再写一次(供电/线材先换好)
写回原机 proinfo 后又异常 :
立刻按上面的'回滚命令'写回 proinfo_working_now.bin
0. 重要结论(先说重点)
如果你已经分区刷写了 boot/lk/super 等仍然无限重启,最终成功率最高的方案之一是:
直接把可用机器备份的 user 区整块镜像(backup.bin)写回 eMMC user 区 (raw write)。
写回整机镜像后设备能进系统,但通常会带上供体身份信息;要避免家长 App 绑定冲突,需要:
写回你自己的 proinfo.bin(原机备份)以恢复 SN/身份 。
本机型进入 BROM 的方式(本次实测):
不需要短接 TestPoint 。
只要 插上电源/数据线的同时一直长按电源键 ,mtkclient 就能捕获到 BROM/Preloader 端口完成读写。
1. 风险提示(务必阅读)
先备份再写入 :至少备份 proinfo,推荐同时备份 nvram/nvdata/nvcfg。
proinfo 是设备身份分区:包含 SN/识别码等。刷错会导致绑定冲突。
seccfg 是安全配置分区:风险更高,非必要不要写;若要写必须先备份并可回滚。
整机 raw write 会覆盖 user 区大量内容,请确保:
只要你还进得去 BROM,就还有救 ,不用慌。
先备份再写入 是底线:尤其是 proinfo。
下面涉及到的命令基本都需要 管理员权限 :
macOS:命令前面加 sudo
Windows:用'管理员身份运行'PowerShell/命令提示符
2. 准备材料(照着准备就行)
一台电脑:macOS 或 Windows
一条可靠的数据线(必须有数据线芯,不是纯充电线)
Dali T6 设备 + 电源
固件/镜像文件(你后续补链接)
t6.bin:供体设备备份(用于分区提取/实验)
backup.bin:最终用于整机恢复的 eMMC user 区镜像(关键)
macOS:/Users/你的用户名/Desktop/dali/
Windows:C:\\dali\\
本文后续示例以 macOS 路径为主,你在 Windows 上只要把路径替换成 C:\... 即可。
2.1 术语解释(必看,1 分钟看完)
BROM :联发科芯片最底层的'下载模式',只要能进 BROM,通常就能读写 eMMC。
Preloader :BROM 之后的引导阶段(USB 连接时常显示 PreLoader VCOM)。
分区(partition) :手机/设备存储里被划分出来的一块块区域,比如 boot、super。
user 区(eMMC USER) :你设备主要存储区域(类似一整块硬盘)。
raw write / 整机写回 :不按'分区名'写,而是按'偏移地址'把整个 user 区镜像写回去。
proinfo :设备身份分区,通常包含 SN/序列号等。恢复 SN 就靠它。
bootloop(Logo 循环) :出现 Logo 后自动重启,循环不停。
3. 安装 mtkclient(macOS / Windows)
3.1 macOS 安装
安装 Python3(建议 3.9+)
拉取 mtkclient
git clone https://github.com/bkerler/mtkclient.git ~/mtkclient
cd ~/mtkclient
python3 -m pip install -r requirements.txt
Python 版本是否过低(建议 3.9+)
是否用了系统自带的旧 Python
如果你系统需要 sudo 才能访问串口/USB,可后续命令加 sudo。
3.2 Windows 安装(PowerShell)
安装 Python 3.x(勾选 Add to PATH)
安装 Git(可选)
拉取或下载 mtkclient
git clone https://github.com/bkerler/mtkclient.git C:\mtkclient
cd C:\mtkclient
python -m pip install -r requirements.txt
Windows 若无法识别 Preloader/BROM 端口,通常需要驱动/线材/时序排查(后文有'常见坑')。
4. 进入 BROM(本机型实测:无需短接)
插上电源 + 插上数据线
一直长按电源键不放 (持续按住)
同时在电脑端运行 mtkclient 的读/写命令,它会等待端口,捕获到后自动进入流程
先看到反复提示 Waiting for PreLoader VCOM...
然后出现 Port - Device detected :)
然后出现 BROM mode detected. / Uploading stage 2... / DRAM setup passed.
电脑上先打开终端/PowerShell
执行任意一个'读分区'命令(例如下面第 5 节的 r proinfo)
看到程序在等端口时
插上 DC 电源 + 插上 USB
一直按住电源键不放 ,直到电脑端出现 Port - Device detected :)
换 USB 口、换线(优先换线)
先拔电源/USB 等 10 秒再试
Windows 检查设备管理器里有没有闪一下'MediaTek USB Port / Preloader'
5. 第一步:备份原机身份分区(恢复 SN 的关键) mkdir -p ~/Desktop/t6_identity_backup
cd ~/mtkclient
sudo python3 mtk.py r proinfo ~/Desktop/t6_identity_backup/proinfo.bin
sudo python3 mtk.py r nvram ~/Desktop/t6_identity_backup/nvram.bin
sudo python3 mtk.py r nvdata ~/Desktop/t6_identity_backup/nvdata.bin
sudo python3 mtk.py r nvcfg ~/Desktop/t6_identity_backup/nvcfg.bin
Windows 对应写法(路径与 python 命令不同):
cd C:\mtkclient
mkdir C:\dali\t6_identity_backup
python mtk.py r proinfo C:\dali\t6_identity_backup\proinfo.bin
python mtk.py r nvram C:\dali\t6_identity_backup\nvram.bin
python mtk.py r nvdata C:\dali\t6_identity_backup\nvdata.bin
python mtk.py r nvcfg C:\dali\t6_identity_backup\nvcfg.bin
proinfo 通常约 3MB
nvram/nvdata/nvcfg 大小因机型不同
Dumping partition "proinfo"
Dumped sector ... as .../proinfo.bin
以及一个 Read 进度条
先不要进行写入操作,先把'能读出来的先读出来'
反复出现 Waiting for PreLoader VCOM:回到第 4 节重新调整'长按电源键 + 插线'时序
6. 第二步:先尝试'分区级刷写'(从 fastboot 推进到系统启动) 如果你手里只有 t6.bin 这类供体镜像,可以先按 GPT/分区表提取并刷写关键分区(示例)。
小白建议:如果你只是想'快速修好',且你手里有 backup.bin(整机 user 区镜像),可以直接跳到第 8 节做整机写回,成功率更高。
6.1 提取分区(dd 示例格式)
具体 skip/count 必须以你设备 printgpt 输出为准。
mkdir -p ~/Desktop/t6_parts
ddif=/path/to/t6.bin of=~/Desktop/t6_parts/boot_a.img bs=512skip=<OFFSET_SECTOR>count=<COUNT_SECTOR>
小白怎么拿到 <OFFSET_SECTOR>/<COUNT_SECTOR>:
你需要先运行一次 printgpt 把分区表打印出来(会输出每个分区的起始扇区和长度)。
cd ~/mtkclient
sudo python3 mtk.py printgpt
cd C:\mtkclient
python mtk.py printgpt
6.2 写入分区(mtkclient w) cd ~/mtkclient
sudo python3 mtk.py w boot_a,boot_b /path/to/boot_a.img,/path/to/boot_b.img
lk_a/lk_b
dtbo_a/dtbo_b
vbmeta*
super
tee/gz/spmfw/sspm 等链路分区
以及清空 userdata(视情况)
7. 第三步:遇到 Logo 循环(bootloop)如何判断原因 本次案例在刷入多分区后从 fastboot 变成 Logo 循环重启 ,属于'更进一步但仍失败'。
7.1 导出 crash 日志分区 mkdir -p /Users/c/Desktop/bootloop_logs
cd ~/mtkclient
sudo python3 mtk.py r expdb /Users/c/Desktop/bootloop_logs/expdb.bin
sudo python3 mtk.py r ramdump /Users/c/Desktop/bootloop_logs/ramdump.bin
成功标志:能看到 Read 进度条,并在最后提示 Dumped ... as ...。
7.2 快速搜索关键字 strings -a /Users/c/Desktop/bootloop_logs/ramdump.bin |egrep -i "watchdog|hang_detect|panic|fatal|init|vold|mount|dm-|metadata|super|avb|verity" |head -n 200
AP Watchdog
hang_detect ... system_server found pid:xxx
说明系统启动到 framework 阶段卡死/无响应,最终被 watchdog 重启。
8. 最终方案:整机 user 区 raw write(backup.bin)直接恢复 当你确认'分区补刷/验证身份分区/甚至 seccfg'等都无法解除 bootloop,最强力的一步是:
把可用设备导出的 eMMC user 区整块镜像写回 (backup.bin)。
8.1 先确认 backup.bin 大小 ls -lh /path/to/backup.bin
backup.bin 大小约 15.6GB
设备输出 EMMC USER Size: 0x3a5c00000
先运行一次任意 mtkclient 读/写命令,输出里会打印 EMMC USER Size,把它记下来。
同时你也可以从 mtkclient 输出看到设备 user 区大小(示例):
EMMC USER Size: 0x3a5c00000
8.2 执行整机写回(write offset) cd ~/mtkclient
sudo python3 mtk.py wo 0x0 0x3a5c00000 /path/to/backup.bin --parttype user
cd C:\mtkclient
python mtk.py wo 0x0 0x3a5c00000 C:\dali\backup.bin --parttype user
会出现 Write 进度条
最后显示写入完成/成功信息
拔 USB
拔 DC
等 10–15 秒
只插 DC 开机验证
9. 恢复原机 SN/身份(写回 proinfo) 整机写回后设备通常带上供体身份信息。为了恢复你自己的 SN/绑定,必须写回原机 proinfo.bin。
9.1 先备份'当前可启动状态 proinfo'(回滚点) cd ~/mtkclient
sudo python3 mtk.py r proinfo /Users/c/Desktop/proinfo_working_now.bin
因为它代表'当前这台机器能正常开机的 proinfo 状态'。
如果你写回原机 proinfo 后又出现异常,你能立刻写回这份恢复开机。
9.2 写回原机 proinfo(恢复 SN)
~/Desktop/t6_identity_backup/proinfo.bin
cd ~/mtkclient
sudo python3 mtk.py w proinfo /Users/c/Desktop/t6_identity_backup/proinfo.bin
输出类似 Wrote ... to sector ... with sector count ...。
拔 USB
拔 DC
等 10–15 秒
只插 DC 开机
9.3 如果写回后出现异常(回滚) 极少数情况下写回整块原机 proinfo 可能导致异常;此时可立刻回滚到可启动版本:
cd ~/mtkclient
sudo python3 mtk.py w proinfo /Users/c/Desktop/proinfo_working_now.bin
本次案例:写回原机 proinfo 后仍可启动,SN/身份恢复完成。
10. 常见坑 & 解决思路
10.1 一直 'Waiting for PreLoader VCOM'
保持长按电源键不放(本机型关键点)
更换 USB 口/线材
确保供电稳定
Windows 检查驱动与设备管理器端口变化
换数据线
换 USB 口
电脑重启一次
再考虑驱动问题(Windows)
10.2 Handshake failed
不要慌,重试
调整'按住电源键 + 插线'的时序
线材接触不良也会导致反复握手失败
10.3 不要一开始就写 proinfo / seccfg
10.4 为什么'分区刷写'不如'整机 raw write'稳定
多分区组合一致性
隐藏配置/校准数据
安全/策略分区状态
当你无法确定所有依赖是否已对齐时,整机写回往往一次性解决一致性问题。
11. 最终结果与验证清单
设备从 fastboot / logo 循环成功恢复到可进入系统
最终写回原机 proinfo 完成 SN/身份恢复
家长 App 绑定不再与供体设备冲突(需自行验证绑定)
备份原机 proinfo.bin
备份 nvram/nvdata/nvcfg(可选但推荐)
backup.bin raw write 完成并可启动
备份可启动状态 proinfo_working_now.bin
写回原机 proinfo.bin 后仍可启动
12. 特别注意 如果长按电源键无法进入 BROM 模式时 可能需要拆机 短接主板触电激活该模式如下图:
## 14.特别感谢
昵称:@阿莫西 @红鲤鱼与绿鲤鱼 **提供的固件支持!
相关免费在线工具 curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
HTML转Markdown 将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
JSON 压缩 通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online