小米路由器青春版刷入其他固件

ぐ巨炮叔叔 提交于 2020-01-17 14:51:34

小米路由器青春版搭载的是基于OpenWRT深度定制的智能路由器操作系统MiWiFi ROM,实质即嵌入式linux系统。

小米路由器青春版自带的miwifi_r1cl_all_59371_2.1.26.bin及其以下版本中存在通过路由器web管理界面开启ssh的bug,借此契机我们通过外部工具对小米路由器自带的固件进行外部刷入。

miwifi固件ROM包下载地址

固件刷新步骤:

1. 进入路由器内部系统(开启ssh)
2. 备份原厂bin
3. 刷入breed管理固件
4. 进入breed管理界面,刷入外部固件(Padavan固件、华硕固件、梅林等)
5. 路由器重启,配置新的固件管理及测试

在开放平台中,我们很容易就能找到”开启SSH工具”,了解服务器的都知道,用SSH的方式,我们可以通过命令行的方式与系统进行连接,路由器系统也不例外。出于安全考虑,路由器系统都会把SSH关了,自然我们就不容易进到路由器的系统中。在寻找官方的开启SSH工具的过程中我们会发现,我们的小米路由器青春版其实是没有官方的开启工具的。

这个时候有细心网友及技术党发现,在旧版的开发版系统中(低于2.1.26皆可,含2.1.26),是可以直接通过修改路由管理器的请求地址的特定参数值对,而改变系统参数。

下面引用修改的方法:

一、刷回旧版固件,开启SSH

因小米官方并未开放青春版SSH开启工具,所以必须刷回旧版固件利用BUG获取权限。

1、刷入旧版固件

自行下载小米路由器青春版的2.1.26或低于该版本的ROM,并使用官方管理系统刷入,并完成进入路由器设置好密码等一系列操作。

2、登录路由管理界面

连接设置好的WiFi后在浏览器地址栏输入192.168.31.1,输入账号密码后,浏览器地址栏可以看到类似如下URL

http://192.168.31.1/cgi-bin/luci/;stok=351a9142135557c27acdeae2175381f9/web/home#router 

3、更改root密码

将以上地址URL中的

/web/home#router

改成

/api/xqsystem/set_name_password?oldPwd=当前路由的密码&newPwd=新的路由密码

这里我们可以设置新的路由密码为admin
然后在浏览器地址栏回车查看网页的返回结果,如果返回的JSON字符串是

{"code":0}

就已经成功的更改了root密码了。

4、启用路由器telnet登录

以同样的方式修改网址URL,把

/web/home#router

改为

/api/xqnetwork/set_wifi_ap?ssid=xiaomi&encryption=NONE&enctype=NONE&channel=1%3B%2Fusr%2Fsbin%2Ftelnetd

然后查看返回的JSON数据

{"msg":"未能连接到指定WiFi(Probe timeout)","code":1616}

返回码有可能不同,出现以上返回消息时已经可以通过telnet的方式来登录路由器了。

5、启用路由器SSH登录

下载Putty并打开,填写以下参数:连接类型:telnet;主机名称:192.168.31.1;打开后看到login,输入root,密码为刚修改后的新密码。若

输入密码时出现键盘无法输入时,解决办法如下:
右击putty菜单栏,打开设置界面,点terminal,在出现的界面中将implicit CR in every LF、implicit LF in every CR勾选,local echo下点选force on,然后apply即可。
在这里插入图片描述
登录后依次执行下面的三条指令:

sed -i ":x;N;s/if \[.*\; then\n.*return 0\n.*fi/#tb/;b x" /etc/init.d/dropbear
/etc/init.d/dropbear start
nvram set ssh_en=1; nvram commit

到此SSH已完成开启。

二、备份并刷入Breed固件

1、备份原厂bin

1.1、Putty操作

打开Putty,按以下选择或填写:主机名:192.168.31.1;端口号22;连接类型:ssh。如有提示点击更新或者确定。弹出窗口输入用户名:root;密码:上面设置的新密码。然后在Putty命令行窗口中输入命令

cat /proc/mtd

在这里插入图片描述
可以看到有十个固件和分区,看名字可以知道第一个mtd0固件包含已全部分区的数据(All),第二个是Bootloader。 输入命令

dd if=/dev/mtd0 of=/tmp/all.bin

在这里插入图片描述
这表示备份第一个固件到tmp文件夹的all.bin文件中,如有需要可按对应的方式备份其他分区数据。

cd /tmp
mkdir rom
dd if=/dev/mtd0 of=/tmp/rom/ALL.bin
dd if=/dev/mtd1 of=/tmp/rom/Bootloader.bin
dd if=/dev/mtd2 of=/tmp/rom/Config.bin
dd if=/dev/mtd3 of=/tmp/rom/Factory.bin
dd if=/dev/mtd4 of=/tmp/rom/OS1.bin
dd if=/dev/mtd5 of=/tmp/rom/rootfs.bin
dd if=/dev/mtd6 of=/tmp/rom/OS2.bin
dd if=/dev/mtd7 of=/tmp/rom/overlay.bin
dd if=/dev/mtd8 of=/tmp/rom/crash.bin
dd if=/dev/mtd9 of=/tmp/rom/reserved.bin
dd if=/dev/mtd10 of=/tmp/rom/Bdata.bin

也可使用终端登录路由器:ssh -l root 192.168.31.1,密码:新设置的密码

1.2、Winscp操作

打开Winscp,按以下选择或填写:文件协议:SCP;主机名:192.168.31.1;端口号:22;用户名:root;密码:上面设置的新密码。如有提示点击更新或者确定。进入/tmp文件夹将备份到 /tmp/rom 中的这些 bin 文件拷贝出来作为备份,因为 tmp 目录是个临时存放处,当系统重启时临时文件就会丢失。
在这里插入图片描述

恢复命令 (以后备用)

mtd write /tmp/rom/Bootloader.bin Bootloader
mtd write /tmp/rom/Config.bin Config
mtd write /tmp/rom/Factory.bin Factory
mtd write /tmp/rom/OS1.bin OS1
mtd write /tmp/rom/rootfs.bin rootfs
mtd write /tmp/rom/OS2.bin OS2
mtd write /tmp/rom/overlay.bin overlay
mtd write /tmp/rom/crash.bin crash
mtd write /tmp/rom/reserved.bin reserved
mtd write /tmp/rom/Bdata.bin Bdata

2、下载并刷入Breed

2.1、下载Breed

Breed发布地址,进入作者提供的下载地址https://breed.hackpascal.net,选择breed-mt7688-reset38.bin和md5sum.txt下载。(注意:下载后一定要校验bin文件的MD5值,将校验结果与md5sum.txt文件中对应bin文件的MD5值比对,如MD5值不符,重新下载并校验)。将breed-mt7688-reset38.bin改名为breed.bin,方便后续操作。
校验过程:使用Command Prompt(CMD)、Powershell 均可。

certutil -hashfile 文件路径/文件名称 MD5
certutil -hashfile 文件路径/文件名称 SHA1
certutil -hashfile 文件路径/文件名称 SHA256

CertUtil -hashfile C:\xxx.tar MD5
此命令不仅可以做MD5哈希算法校验,还支持其他的哈希算法,具体如下:
CertUtil -hashfile 文件路径 [算法]
支持的算法有:MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

在这里插入图片描述
比对官方发布的MD5文件中的MD5码发现一致,083bd22c3048383aab718e0662487ad1 breed-mt7688-reset38.bin,证明breed的bin包可用。

2.2、刷入Breed

通过WinScp把breed.bin传入到/tmp中。然后使用Putty,输入命令

mtd -r write /tmp/breed.bin Bootloader

将breed刷入bootloader,刷入成功后按提示重启路由器。

三、Breed的使用与固件推荐

1、进入breed控制台

拔掉路由器电源,使路由关机,用取卡针或者其他尖锐物戳着reset键,然后插上电源,待路由器后方的网络接口灯闪烁时松开reset键即可,然后用一条网线把电脑和路由器的WAN口相连,打开浏览器访问192.168.1.1,即可进入breed控制台。进入后即可开始对路由器进行刷机。
在这里插入图片描述

2、路由器固件推荐

推荐使用Padavan固件,固件发布地址:http://opt.cn2qq.com/padavan/(注意:小米路由器青春版请选择MI-NANO专版,目前最新版固件名称如下:MI-NANO_3.4.3.9-099.trx)。

Padavan 默认配置 旧固件网关:192.168.1.1 新固件网关:192.168.123.1 管理页面:http://my.router/ 管理账号:admin/admin wifi:1234567890 

在这里插入图片描述
路由器插件使用:https://blog.csdn.net/Josh_Zhen/article/details/83718410
老毛子固件基础教程:http://www.duomingxing.com/jiaocheng/padavan/
也可以使用其他固件。
梅林固件ss账号教程:https://www.johntitorblog.com/?p=310
tomato固件:http://dl.tomato.org.cn/mt7620/
华硕RT-N56U:https://bitbucket.org/padavan/rt-n56u/src/master/

四、原厂固件刷回

小米路由器破解开启SSH 小米路由器mini丢失SN后恢复找回SN 完美无需编程器!https://www.right.com.cn/forum/thread-178547-1-1.html

找个官方固件名称包含 “all” 就是带u-boot
登陆Breed刷官方固件
重启登陆后台再手动升级固件(换掉Breed)
开启SSH,修复SN
最后再升级到最新固件

http://www.miui.com/thread-1776173-1-1.html
https://www.right.com.cn/forum/thread-178547-1-1.html

相关资料:https://blog.csdn.net/Josh_Zhen/article/details/83716624
锐捷校园网:小米mini路由刷Padavan固件实现wifi上网
https://blog.csdn.net/u013447565/article/details/78007540
小米路由器3实现锐捷认证[免刷固件]
https://blog.csdn.net/dj741/article/details/78871797
小米 mini 路由器刷 openwrt
https://blog.csdn.net/weixin_33941350/article/details/91997894
小米路由器MINI 潘多拉迅雷远程/xunlei安装教程
https://blog.csdn.net/lbsjs/article/details/90705922
關於小米路由器老毛子Padavan固件中ss的使用
https://blog.csdn.net/Josh_Zhen/article/details/83718410
小米路由器mini刷7620老毛子Padavan固件
https://blog.csdn.net/Josh_Zhen/article/details/83716624
小米路由器刷入Padavan系统
https://www.jianshu.com/p/e49f4e19396a
小米路由器青春版 开启ssh 刷入breed 潘多拉 华硕 固件
https://www.jianshu.com/p/6cbf7251c551
小米路由器青春版刷潘多拉、华硕固件
https://blog.csdn.net/qq_19666821/article/details/69948930

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!