MTKClient:4 条命令让 MTK 手机从 BROM 模式起死回生的免费救砖刷机工具
2026/8/21 18:23:21 网站建设 项目流程

MTKClient:4 条命令让 MTK 手机从 BROM 模式起死回生的免费救砖刷机工具

【免费下载链接】mtkclientMTK reverse engineering and flash tool项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient

[23:41] 设备管理器: 未知 USB 设备(设备描述符请求失败) [23:42] fastboot devices (无任何输出) [23:47] 维修报价: 主板损坏,建议整体更换,800 元,无保修

一台变砖的联发科(MTK)手机,MTKClient 是一款免费开源的 MTK 救砖与刷机工具,也是少数不要求系统能开机的救援通道:它通过 USB 直连闪存芯片,能完整备份所有分区、把写坏的镜像写回去,甚至直接解锁 Bootloader(引导加载器,决定手机"从哪个系统启动"的那段程序)。

它到底能干什么:一张能力清单看懂 MTKClient

一句话定位:MTKClient 是面向 MTK 芯片设备的命令行工具集,在一条 USB 连接上完成读闪存、写闪存、解锁、内存调试这一整套操作。

为什么能做到:每颗 MTK SoC(系统级芯片)内部都固化了一小段 BootROM——出厂烧死、无法更新、无法删除的代码。系统再坏,开机瞬间它也一定先运行,而且按设计开放了一个 USB 诊断口。可以把它理解成主板上预留的一条应急通道:别的链路全断了,它反而是唯一出口。MTKClient 就是顺着这条通道直接跟存储芯片对话,完全绕过开不了机的系统。较新的芯片采用 V6 协议、BootROM 被收紧,需要额外提供一个有效的 DA 文件(联发科官方调试模块,工具把它加载到设备上执行更深层操作)。

能力速查:

能力命令入口干什么用
查看分区表printgpt列出设备上每个分区的名字、大小和位置
读/写单个分区r / w把分区读出到本地文件;把本地文件写回指定分区
整盘读取rf / rl导出整块闪存,或把全部分区逐个存到目录
擦除分区e清空某个分区,去掉写坏的数据
解锁 Bootloaderda seccfg unlock打开 Root 与第三方 ROM 的前置条件
绕过 SLA/DAApayload设备启用安全握手、常规连不上时,加载通用补丁程序
内存读写da peek / da poke直接读改内存,面向逆向研究
挂载存储fs把设备存储挂成电脑目录直接浏览

动手前自检:先确认这 4 件事

  1. 确认芯片型号,而不是手机品牌型号。项目里的救援文件按 SoC 编号匹配(MT6762、MT6765、MT8168 之类),到 Loader/Preloader/ 目录里能找到对应文件,成功率会明显更高。
  2. 确认环境能跑起来。Python ≥ 3.8,装完依赖;Linux 还需加载 udev 规则,系统才认得这台设备。
  3. 确认设备能进 BROM 模式。BROM 模式是设备最底层的诊断状态,具体按键组合见下一节,这是所有救援动作的前提。
  4. 只要能连上,先备份再动手。读命令都是安全的,任何写操作之前,先把整套分区存下来。

五分钟跑通:从零到看到分区表

第 1 步,拿代码并装依赖:

git clone https://gitcode.com/gh_mirrors/mt/mtkclient cd mtkclient pip install -r requirements.txt

第 2 步(仅 Linux),让系统认识你的手机:

sudo cp Setup/Linux/*.rules /etc/udev/rules.d/ sudo udevadm control -R && sudo udevadm trigger

💡 命令报权限错误时,可临时把 python 换成 sudo python;或把自己的账号加入 plugdev、dialout 组后重启,以后就不再需要 sudo。

第 3 步,让设备进入 BROM 模式:关机 → 按住音量上 + 电源键(部分机型是音量下)→ 保持按住的同时插入 USB 数据线 → 工具识别到设备后松开按键。

按键组合不灵时,不少机型可以用导电物短接主板测试点(TP)强行进入,动手前先查清自己机型的测试点位置。

第 4 步,跑第一条读取命令:

python mtk.py printgpt

成功的样子:屏幕上出现一串 GPT 条目(分区名、大小、偏移),同时打印出芯片型号——救援通道正式打通。

三个最高频场景:命令直接抄

场景一:刷机前对 MTK 全部分区做完整备份

做任何底层操作之前,先给设备拍一张"全屋照片":把每个分区逐个存出来,后面出问题可以按房间还原。

python mtk.py rl ./backup_full

成功的样子:backup_full 目录里按分区名生成一堆文件,数量和 printgpt 列表对得上。

⚠️ 全量导出通常有几个 GB,先留够磁盘空间;中途断线只需重读对应分区,不必从头再来。

场景二:写回坏分区,把系统救回来

系统写坏开不了机,多数是 boot、recovery 之类的分区被写错了,解法就是把备份写回去。

python mtk.py w boot ./backup_full/boot.img python mtk.py reset

成功的样子:提示写入完成,reset 后设备正常进入开机动画。坏的不止一个分区时,也可以把所有备份文件放进一个目录,用python mtk.py wl ./backup_full一次性写回。

⚠️ w(写回)和 e(擦除)都不可逆:动手前用 printgpt 核对分区名,写错分区可能把"软砖"变成"硬砖"。

场景三:一行命令解锁 MTK Bootloader

备份完成、想 Root 或刷第三方 ROM,先打开 Bootloader 锁:

python mtk.py da seccfg unlock

成功的样子:命令结束后设备自动重启,首次开机出现"Bootloader 已解锁"警告画面,随后正常进系统。

⚠️ 解锁通常伴随用户数据被清空、保修失效;MT6781、MT6789 等新芯片目前仅支持未锁定(unfused)设备。

进阶能力速查:每个能力一条命令

能力命令说明
批量脚本python mtk.py script examples/run.example把常用命令写进文件按顺序执行,格式见示例脚本
绕过 SLA/DAApython mtk.py payload常规连接失败时加载通用补丁 payload
读内存python mtk.py da peek 0x10000000 0x100从指定地址倒出 0x100 字节内存
写内存python mtk.py da poke <地址> <十六进制数据>面向逆向研究,别写进系统关键区
挂载存储python mtk.py fs /mnt/mtk把设备存储当电脑目录浏览
读 efusepython mtk.py da efuse查看熔丝状态,判断芯片是否被物理锁定

翻车急救包:常见症状与处理办法

表现可能原因处理
提示找不到设备没进 BROM 模式或按键组合不对彻底关机后换另一组音量键组合重试;仍不行查该机型的 TP 短接点
连上但芯片型号不匹配缺少或选错 preloader(BootROM 之后的第一级程序,负责接管闪存)到 Loader/Preloader/ 找对应型号文件,用 --preloader 指定
Linux 下报权限错误udev 规则没加载把规则拷进 /etc/udev/rules.d 并刷新,或临时 sudo 运行
读写中途断开数据线是纯充电线、接触不良换短线高质量数据线,全程给设备接外电
新芯片(MT6781/MT6789 等)连不上V6 协议收紧、preloader 被禁用用 --loader 指定有效 da;启用 DAA/SLA 的设备目前无公开解
写回后设备开不了机镜像或分区选错用刷机前的全量备份,python mtk.py wl整体写回

这篇文章里所有命令可以归成两类:printgpt、r、rl 只读,错了也没事;w、e、unlock 会改数据,做了就回不去——守住这条边界,大部分风险已经避开。下一步不用做大动作:把设备连上、进 BROM 模式,跑一次 printgpt。亲眼看到自己手机的真实分区表之后,"救砖"就不再只是维修店才会的事。

【免费下载链接】mtkclientMTK reverse engineering and flash tool项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询