1.降级固件取得SSH权限

降级固件

首先降级固件,Redmi AX5需要降级到1.0.26版本:http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/ra67/miwifi_ra67_all_f3fac_1.0.26.bin

以下内容参考自https://zhuanlan.zhihu.com/p/355530975

小米 AX3600 可通过降级固件版本至 1.0.17 版本后开启 SSH

http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/r3600/miwifi_r3600_firmware_5da25_1.0.17.bin

Redmi AX6 可以尝试降级至小米 AX3600 的 1.0.17 版本固件后开启 SSH

红米 AX5 可通过降级固件版本至 1.0.26 版本后开启 SSH

http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/ra67/miwifi_ra67_all_f3fac_1.0.26.bin

小米 AX1800 可通过降级固件版本至 1.0.378 版本后开启 SSH

http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/rm1800/miwifi_rm1800_firmware_ed621_1.0.378.bin

降级固件版本可能无法体验新版固件中新增功能或性能优化等。

如果不想降级之后重新配置一次路由器,可以不勾选重置配置。

通过Web漏洞取得SSH权限

等待降级完成后,重新登录到路由器,替换网址中;stok=**********/后面web开头的内容为:

/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B

如果网页显示{"code":0}就开启了SSH,并将root用户的密码改为了admin

2.刷入UBOOT和大分区

购买Uboot和大分区(¥5):https://mbd.pub/o/bread/mbd-Ypqbk5dr?after_pay=1

购买Openwrt带WiFi固件(¥10):https://afdian.net/a/nwrtofficial

以上文件需要提前准备好,制作固件不易,请支持原作者。

刷入UBOOT

解锁SSH后,就可以通过SSH客户端连接到路由器了,路由器的IP地址即网关地址(默认是192.168.31.1),用户名root密码admin

SSH客户端的选择非常多,例如XShell、MobaXTerm、PuTTY……这里请自行选择适合自己的工具。

看到ARE U OK就代表登陆成功了。

同样的方法,使用WinSCP软件登录到路由器,需要传输一个文件。

WinSCP是免费软件,官方下载地址:https://winscp.net/eng/download.php

这里一定要注意选择SCP协议而不是SFTP。

然后切换到SSH终端,输入以下命令备份mtd1/7/9/12/13以备不时之需:

mkdir /tmp/syslogbackup/
nanddump -f /tmp/syslogbackup/mtd1 /dev/mtd1
nanddump -f /tmp/syslogbackup/mtd7 /dev/mtd7
nanddump -f /tmp/syslogbackup/mtd9 /dev/mtd9
nanddump -f /tmp/syslogbackup/mtd12 /dev/mtd12
nanddump -f /tmp/syslogbackup/mtd13 /dev/mtd13
dd if=/dev/mtd1 of=/tmp/syslogbackup/mtd1
dd if=/dev/mtd7 of=/tmp/syslogbackup/mtd7
dd if=/dev/mtd9 of=/tmp/syslogbackup/mtd9
dd if=/dev/mtd13 of=/tmp/syslogbackup/mtd12
dd if=/dev/mtd13 of=/tmp/syslogbackup/mtd13

通过网页下载(更推荐通过WinSCP下载,两种方法均可):

http://192.168.31.1/backup/log/mtd1
http://192.168.31.1/backup/log/mtd7
http://192.168.31.1/backup/log/mtd9
http://192.168.31.1/backup/log/mtd12
http://192.168.31.1/backup/log/mtd13

刷入uboot:

mtd write /tmp/AX5_UBoot.bin /dev/mtd7

刷入过渡固件(无WiFi)

进入UBOOT

由于官方系统无法刷入mtd1分区,需要刷入一个过渡用的Openwrt固件,才能刷入mtd1开启大分区。

先把路由器断电,然后用牙签/卡针按住重置按钮(不松开),再接上电源,等待路由器灯黄色闪烁5次变成蓝灯后,用网线连接路由器,此时需要手动设置电脑IPv4配置:

IP地址: 192.168.1.12

子网掩码: 255.255.255.0

网关: 192.168.1.1

刷入OpenWRT过渡固件

打开浏览器输入192.168.1.1进入UBOOT,选择固件上传,然后点击“Update Firmware”

上传固件时,路由器黄灯慢闪;刷入时,黄灯快闪,之后蓝灯亮进入新的系统。如果进入到转圈页面就说明刷入成功了,耐心等待一会:

刷入大分区

重启到Openwrt后,更改网络为自动获取,然后输入192.168.1.1进入Openwrt的配置页面,如果能进入,直接关闭页面,去登录SSH和WinSCP:

通过WinSCP(依旧使用SCP协议不要用SFTP)上传大分区刷入文件AX5_MIBIB.bin到/tmp/目录下,然后在终端内使用以下命令刷入:

mtd write /tmp/AX5_MIBIB.bin /dev/mtd1

出现这个就代表大分区刷入完成了。

3.刷入带QCAWiFi的完整固件

和之前一样的方法,重新进入UBOOT,选择新的固件上传,这里就不赘述了。

注意:因为默认的固件分区只有36M,而完整固件超过36M(我这里刷入的版本大约是43M),因此想要WiFi功能就必须刷大分区。

刷入完成后,路由器自动重启,我刷入的是NWrt编译的固件,默认密码如下:

用户名: root

密码: password

WiFi密码:12345678

刷机完成,enjoy!