本文信息核实于2026-08-06
先给你句掏心窝的话:红米路由器B11这货,官方固件更新慢得像蜗牛,但第三方固件(比如OpenWrt、Padavan)却香得不行。 但刷机前最怕啥?怕变砖!变砖后没原厂固件救砖,那真是哭都找不着调。所以,学会提取B11的固件,就是给自己上了一份“保险”。今天我不扯虚的,直接给你一套从零开始的提取方案,哪怕你是刚入坑的小白,照着做也能成。
一、核心观点:提取固件不只是“备份”,更是解锁玩机的第一步
很多人以为提取固件就是“复制粘贴”,大错特错。B11的固件分区是加密且隐藏的,普通文件管理器根本看不见。真正的提取,是绕过系统限制,把NAND Flash里的完整镜像(包括Bootloader、固件、ART分区)原封不动地抓出来。 这有什么用?
- 救砖神器:刷第三方固件失败,只要bootloader还在,就能用TFTP或串口刷回原厂。
- 逆向研究:大佬能从中提取驱动、闭源代码,甚至魔改出更稳定的固件。
- 降级刷机:官方新固件砍了功能?提取旧版固件,随时降回去。
核心操作逻辑就一句话:通过SSH或TTL进入路由器底层,用dd命令或mtd工具,把指定分区“读”出来,再传到电脑上。
二、详细解读:三种主流提取方法,总有一款适合你
方法一:SSH法(最简单,但有门槛)
这是首选,前提是你已经拿到了B11的root权限(通常通过开启开发者模式或利用已知漏洞)。
步骤拆解:
- 开启SSH:登录路由器管理后台(192.168.31.1),在“系统工具”→“调试”里,有的固件版本直接有“启用SSH”选项。没有的话,可以试试用官方“MiWiFi”App的开发者模式,或者用网上的“B11开启SSH工具”脚本(注意安全)。
- 连接SSH:电脑上下载Putty或Xshell,输入路由器的IP和端口(默认22),用户名
root,密码就是你设置的路由器管理密码(有些版本是空密码,试了才知道)。 - 查看分区表:输入命令
cat /proc/mtd,你会看到类似下面这样的输出:dev: size erasesize name mtd0: 00040000 00010000 "Bootloader" mtd1: 00040000 00010000 "Config" mtd2: 00100000 00010000 "Bdata" mtd3: 00100000 00010000 "Factory" mtd4: 00080000 00010000 "crash" mtd5: 00080000 00010000 "cfg" mtd6: 00100000 00010000 "overlay" mtd7: 01b00000 00010000 "OS1" mtd8: 01b00000 00010000 "OS2" mtd9: 00080000 00010000 "nvram"注意:OS1和OS2就是主固件区,通常我们提取这两个就够了。Bootloader和Factory(含MAC地址和无线校准数据)也建议备份。 - 提取固件:输入命令
dd if=/dev/mtd7 of=/tmp/os1.bin,同理提取mtd8为os2.bin。如果不想区分,直接提取整个mtdblock设备:dd if=/dev/mtdblock7 of=/tmp/full.bin(但这样文件会很大)。 - 传输到电脑:在SSH里启动TFTP服务(
tftpd-hpa),然后用电脑上的TFTP客户端下载。或者更简单,用scp命令:scp root@192.168.31.1:/tmp/os1.bin .(在你电脑的终端操作)。
优点:操作直观,速度快。缺点:需要先搞定SSH,对小白不友好。
方法二:TTL串口法(救砖必备,物理外挂)
如果你的B11已经半砖,SSH进不去,那TTL就是最后的救命稻草。
你需要准备:USB转TTL模块(CH340或CP2102,几块钱)、杜邦线、电烙铁(如果路由器板子没留插针)。
操作流程:
- 拆机:撬开路由器外壳,找到主板上的TTL排针(通常有4个针脚:VCC、GND、TX、RX)。注意别接VCC,只接GND、TX、RX。
- 连接电脑:TTL模块插电脑USB,驱动装好后,在设备管理器里看COM口号。
- 打开串口终端:用SecureCRT或MobaXterm,波特率设置115200,连接对应COM口。
- 上电启动:给路由器通电,终端里会疯狂刷启动日志。在出现
Hit any key to stop autoboot时,疯狂按任意键,进入U-Boot命令行。 - 提取固件:在U-Boot里输入
printenv查看环境变量,找到bootcmd。然后输入tftp 0x82000000 os1.bin(需要你先在电脑上搭建TFTP服务器),再输入nand read 0x82000000 0x200000 0x1b00000(从NAND偏移0x200000读0x1b00000长度的数据),最后tftp 0x82000000 os1.bin写回电脑。
优点:无视系统状态,纯底层操作。缺点:需要硬件知识,焊接有风险,且命令复杂容易出错。
方法三:官方救砖工具逆向法(最省事,但需运气)
有时候,小米官方会放出B11的“救砖工具”或“恢复固件包”(后缀为.bin或.img)。这些文件本质上是完整的固件镜像,只不过被加了头或加密。
提取思路:
- 去小米路由器官网下载中心,找B11的“修复工具”。
- 下载后,用
binwalk(Linux工具)扫描这个文件:binwalk -e xxx.bin。 - 如果运气好,binwalk会自动解包出
kernel、rootfs等分区镜像。 - 如果加密了,那就只能抓包分析路由器升级时的数据流了(这个太进阶,不展开)。
优点:不用拆机,不用SSH。缺点:官方不一定提供,且加密后基本无解。
三、5个高频问题FAQ
Q1:提取出来的固件能直接刷回其他B11吗? A:可以,但必须注意。OS1/OS2分区是通用的,但Factory分区(含MAC和无线校准)是每台设备唯一的。刷别人的Factory分区可能导致无线信号差或MAC冲突,建议只刷OS1/OS2。
Q2:提取固件会不会变砖?
A:只读操作不会变砖。dd和mtd工具都是读取,只要你不在写操作时断电,就不会损坏。但TFTP传输时断网可能中断,重来就行。
Q3:B11的固件是加密的吗?怎么判断?
A:官方固件分区不加密(但升级包会加密)。你可以用hexdump查看提取的os1.bin开头,如果是7F 45 4C 46(ELF头)或1F 8B(gzip头),说明是明文。如果全是随机字符,那可能加密了,需要先解密。
Q4:没有Linux电脑,能用Windows操作吗?
A:可以。Windows下用dd的替代工具Win32DiskImager(但只适合整卡备份),或者用HxD十六进制编辑器直接读取\\.\PhysicalDrive(但路由器不是物理盘,不适用)。建议装个虚拟机或WSL,用Linux命令更顺手。
Q5:提取后怎么验证固件完整性?
A:看MD5值。在路由器上提取前和提取后,分别执行md5sum /tmp/os1.bin,对比两次结果一致,说明提取成功。传输到电脑后再算一次MD5,确保没损坏。
四、实用建议:老鸟的避坑指南
- 先备份再折腾:拿到B11的第一天,就按方法一提取全套固件(Bootloader、OS1、OS2、Factory),存到网盘和本地硬盘各一份。别等刷机变砖了才后悔。
- 不要乱刷“精简版”:网上很多所谓“B11精简固件”其实是砍了QoS和Mesh功能的,信号可能变差。提取原厂固件自己改,比下载来路不明的包安全得多。
- TFTP服务器设置:电脑防火墙要关掉,网线直连路由器LAN口,IP设为静态(比如192.168.31.2),TFTP根目录放固件,文件名要小写,不然U-Boot找不到。
- 串口波特率不是115200?:有些B11批次用的是74880或57600,连不上就换波特率试,别死磕。
- 提取后别急着删:保留原始提取的
os1.bin,以后官方出更新,你可以对比新旧版本差异,甚至手动提取新版的驱动模块替换到老固件里,实现“魔改”而不升版本。 - 进阶玩法:提取后,你可以用
unsquashfs解包rootfs,直接改里面的/etc/config文件,定制专属路由功能,比如开启隐形的FTP服务器。
如果你需要的话,可以试试下面的免费工具:
最后说一句,提取固件这事,难度不大,但细心和耐心是必须的。 照着上面步骤一步步来,你的B11就能成为一台“不死”的机器。如果过程中卡住了,回来评论区问我,我看到就回。祝你玩机愉快,千万别砖!