因为最近搬家,正好有一堆东西打算更新了,本身自己对电子硬件方面甚是感兴趣,继电脑主机、手机、电视盒子之后,本着不折腾会死的心态看中了路由器。曾经偶尔也看到过一些关于软路由、openwrt的文章,觉得在这方面还是有一些可玩性的。

尽管现在2021年了,但路由器圈子还是一个小众群体,通过恩山论坛还是补充了很多的知识,从固件来分类,主要有openwet、梅林、DD-DRT、Padavan、x86软路由等等...可以折腾的路由器品牌主要是小米、华硕、网件、极路由(已倒闭)、斐讯(K2P一代神机)...最后从可玩性和性价比方面综合考虑(没钱),小米AX3600是一个还不错的选择。

路由器刷固件就是刷机吗(从零开始的路由器刷机记录)(1)

(图片来自官方商城)

作为一款2020年2月上市的产品,凭借出色的硬件得到了许多好评,599元的上市价在一年多以后的今天,竟然在某鱼炒到了700-1000左右,已经到了一机难求的地步。

路由器刷固件就是刷机吗(从零开始的路由器刷机记录)(2)

在某鱼寻找了一个礼拜,用499买了一个售后换新的机器,拿到手后对这个路由器的第一印象就是“大”,太TM大了,占用空间=2个普通路由器。开机、接网线LAN口、进入设置一气呵成,然后打开已经准备好的固件文件夹和刷机教程,直接开刷。(相关命令步骤来源自恩山论坛)

Step1.固件降级

在官方固件1.0.17版本以后,官方修补了开启SSH的漏洞,因此只能通过降级方法开启ssh。首先登陆192.168.31.1,进入控制台后在升级页面找到1.0.17的固件包,待刷入重启便降级成功。

Step2.开启SSH

降级后进入路由器控制页面,在浏览器地址栏找到以下地址,记下stok=后面的一串字符,直接复制。

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/web/home#router

在地址栏输入以下网址,将<STOK>替换为之前复制的内容,回车后如果页面显示{"code":0}就说明成功了。

http://192.168.31.1/cgi-bin/luci/;stok=/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;

继续输入以下网址,将<STOK>替换为之前复制的内容,这一步是为了将root用户的密码修改为admin

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h; echo -e 'admin\nadmin' | passwd root;

Step3.备份及固化SSH直接Win X打开Windows终端(此处赞一下PowerShell真好用),输入

ssh root@192.168.31.1

密码是刚才设置的admin,然后看到ARE U OK说明成功进入。接下来继续输入以下命令,浏览器会弹出下载mtd9备份。

mkdir /tmp/syslogbackup/ dd if=/dev/mtd9 of=/tmp/syslogbackup/mtd9

用winscp将提前准备好的fuckax3600上传到路由器根目录下的tmp文件夹里,然后运行

chmod x /tmp/fuckax3600 /tmp/fuckax3600 unlock

然后路由器重启,重新SSH连接路由器,再一次用winscp上传fuckax3600,输入

chmod x /tmp/fuckax3600 /tmp/fuckax3600 hack /tmp/fuckax3600 lock

这一步设置了永久SSH、telnet和uart权限,并计算默认密码,保存,刷机后若ssh被禁用,可使用telnet登陆。

telnet 192.168.31.1 #输入之前保存的密码 sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear /etc/init.d/dropbear start

Step4.刷QSDK

直接输入以下命令

nvram set flag_last_success=0 nvram set flag_boot_rootfs=0 nvram set boot_wait=on nvram set uart_en=1 nvram set telnet_en=1 nvram set ssh_en=1 nvram commit

winscp将固件xiaomimtd12.bin上传到路由器tmp目录,输入

mtd write /tmp/xiaomimtd12.bin rootfs

然后拔电源重启路由器(切记不要输入reboot),重启后浏览器输入192.168.1.1进入qsdk固件

在web页面备份升级下,不保留配置刷入nand-ipq807x-single.img(第一次刷入,目的是为了把rootfs_1分区扩大到128M),

重启后再次进入web,再刷一次nand-ipq807x-single.img

ssh输入以下命令,重启后刷入qsdk完成

fw_setenv flag_last_success 1 fw_setenv flag_boot_rootfs 1

Step5.刷入第三方固件

winsc将固件包openwrt-ipq807x-generic-xiaomi_ax3600-squashfs-nand-sysupgrae.bin上传到tmp目录,ssh输入

sysupgrade -F -n openwrt-ipq807x-generic-xiaomi_ax3600-squashfs-nand-sysupgrade.bin

然后就是漫长的等待过程,大概30分钟后没有任何反应,觉得有点不对劲,拔路由器电源重启,幸好可以重启没有成砖,发现固件还是qsdk,说明第三方固件刷入失败了,不甘心直接在web页面不保留配置刷入第三方固件,漫长的等待后,发现路由器灯灭,然后继续拔电源线重启,结果开机亮黄灯后灯灭,搜索不到wifi信号,网线获取不了ip地址,浏览器无法进入管理后台,ssh无法连接,telnet无法连接,一块小米大板砖诞生。

惊慌之下搜索了小米官方恢复工具miwifitool,按照步骤能成功恢复,路由器闪烁蓝灯,本以为重启正常了,结果依旧亮黄灯后灯灭。

AX3600从拿到到变砖,寿命2天。

路由器刷固件就是刷机吗(从零开始的路由器刷机记录)(3)

,