在给小米路由青春版刷机的过程中收集的很多资料,走了一些弯路,最后终于成功了。
写一篇文章记录下来。

本文主要参考 @tianbaoha 的文章

目录


1. 准备

2. 升级为官方开发版固件

过程略

3. 更改官方 root 密码为 admin

登录 192.168.31.1 后把你浏览器地址栏 url 的 /web/home#router 替换成
/api/xqsystem/set_name_password?oldPwd=<oldPwd>&newPwd=admin
回车以后网页显示 {“code”:0} 就是成功了。

<oldPwd> 为原登录密码,更改后你的新管理密码和 root 密码为 admin

4. 去除官方 SSH 启动限制 开启 SSH

当初在这步卡了很久,直到看到 小米路由器青春版(mini) 开启SSH 小米路由计算_更改官方root_SSH密码 这篇文章。
以下是 @tianbaoha 的原话

我们常说的开启SSH就是启动dropbear程序,启动方法:/etc/init.d/dropbear start

小米在这个启动脚本增加了两个限制,不满足就不让启动:
1:必须是开发版
2:nvram参数ssh_en=1

mini和R1D、R2D的ssh_en默认是0,是通过U盘刷机的方式把ssh_en设置成1从而启动SSH的
而青春版没有usb接口,所以青春版的ssh_en出厂默认就是1
所以青春版只要刷成开发版dropbear(SSH)就会启动

所以此步对于小米路由青春版来说就可以跳过了。

附录一个小米路由器的 ssh 算法 (未验证)
substr(md5(<SN>+"A2E371B0-B34B-48A5-8C40-A7133F3B5D88"),0,8)

5. 连接到路由器

打开 Xshell 在命令窗口输入

$ ssh root:admin@192.168.31.1

SSH安全警告 弹窗中选择 [接受并保存]
出现 [MI-NANO /home/root]# 为 ssh 连接成功

新建一个选项卡输入

$ sftp root:admin@192.168.31.1

出现 sftp:/home/root> 为 sftp 连接成功

6. 备份编程器固件

切记备份编程器固件即 all.bin 文件,否则无法刷回
顺序输入以下命令

[MI-NANO /home/root]# dd if=/dev/mtd0 of=/tmp/all.bin
sftp:/home/root> get /tmp/all.bin
sftp:/home/root> rm /tmp/all.bin

下载的 all.bin 储存在 Xshell 目录下的 ./Data/Settings/NetSarang/Xshell/Sessions/ 文件夹里
注: [MI-NANO /home/root]# 开头的命令意思是在 ssh 选项卡里输入,sftp:/home/root> 是在 sftp 的选项卡里输入,不要把前缀输进去了。下同

7. 刷入 Breed

顺序输入以下命令

sftp:/home/root> cd /tmp
sftp:/tmp> put

在弹出窗口中选择下载的 breed-mt7688-reset38.bin 文件
输入

[MI-NANO /home/root]# mtd -r write /tmp/breed-mt7688-reset38.bin Bootloader

等待机器重新启动

注:breed-mt7688-reset38.bin 的文件名可以改,把命令中的bin文件名改成你的就行了

8. 进入 Breed

用一根网线把PC和路由器连接。 接在路由器的LAN接口不是蓝色的WAN!
拔掉电源,按住 Reset 不松,接通电源,等黄灯闪烁后松开 Reset
然后输入 192.168.1.1 进入 breed 界面

9. 刷入固件

界面选择如下

  • 固件更新–常规固件

10. 刷回官方固件

由于 MT7628 的 breed 没有小米固件的启动项,所以需要用编程器固件刷回!
进入 breed, 界面选择如下

  • 固件更新–编程器固件

参考文章