從零開始的路由器刷機記錄(一)——造磚篇
因為最近搬家,正好有一堆東西打算更新了,本身自己對電子硬件方面甚是感興趣,繼電腦主機、手機、電視盒子之后,本著不折騰會死的心態看中了路由器。曾經偶爾也看到過一些關于軟路由、openwrt的文章,覺得在這方面還是有一些可玩性的。
盡管現在2021年了,但路由器圈子還是一個小眾群體,通過恩山論壇還是補充了很多的知識,從固件來分類,主要有openwet、梅林、DD-DRT、Padavan、x86軟路由等等...可以折騰的路由器品牌主要是小米、華碩、網件、極路由(已倒閉)、斐訊(K2P一代神機)...最后從可玩性和性價比方面綜合考慮(沒錢),小米AX3600是一個還不錯的選擇。
(圖片來自官方商城)
作為一款2020年2月上市的產品,憑借出色的硬件得到了許多好評,599元的上市價在一年多以后的今天,竟然在某魚炒到了700-1000左右,已經到了一機難求的地步。
在某魚尋找了一個禮拜,用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=/web/home#router
在地址欄輸入以下網址,將替換為之前復制的內容,回車后如果頁面顯示{"code":0}就說明成功了。
http://192.168.31.1/cgi-bin/luci/;stok=%3CSTOK%3E/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%27s%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg%27%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B
繼續輸入以下網址,將替換為之前復制的內容,這一步是為了將root用戶的密碼修改為admin
http://192.168.31.1/cgi-bin/luci/;stok=/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B
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天。