【路由器】小米 WR30U 解鎖並刷機

2023-08-25 06:00:29

本文主要記錄個人對小米 WR30U 路由器的解鎖和刷機過程,整體步驟與 一般安裝流程 類似,但是由於 WR30U 的解鎖 ssh 和刷機的過程中有一些細節需要注意,因此記錄一下

解鎖 ssh

環境準備

需要一臺同時具有 WiFi 和有線網路的電腦,以及一根網線

然後需要設定 python 環境,並且安裝 pycryptodome 依賴

conda create -n wr30u
conda activate wr30u
conda install pycryptodome

然後是解鎖指令碼,可以直接從 PatriciaLee3 的倉庫中下載

解鎖過程

PatriciaLee3 的倉庫中已經給出了詳細的解鎖過程,這裡只是簡單記錄一下

  1. 電腦連線原廠韌體的路由器,進入 192.168.31.1 的管理後臺,在常用設定-上網設定裡分別設定:

    • 上網設定 DHCP,自動設定 DNS
    • 啟動與智慧閘道器無線設定同步(會重啟)
    • 固定 WAN 口為 1(會重啟)
  2. 電腦連線有正常網路的 WiFi,然後將網線連線到路由器的 WAN 口

  3. 開啟 控制面板 - 網路和 Internet - 網路和共用中心 - 更改介面卡設定 - 選擇 WLAN - 右鍵屬性 - 共用,勾選第一個並確認,這個時候 WR30U 會通過有線連線共用電腦的網路,並且網路指示燈會變成藍色

  4. 開啟 控制面板 - 系統和安全 - Windows Defender 防火牆 - 啟動或關閉 Windows Defender 防火牆,關閉 Windows Defender 防火牆

  5. 執行解鎖指令碼,並按照指令碼提示操作

    conda activate wr30u
    python server_emulator.py
    
  6. 解鎖完成後,路由器的賬號密碼為 rootadmin,之後記得重新開啟防火牆,並且關閉共用網路

刷入 mt798x uboot

簡介

這裡首先推薦刷入 hanwckf 的 mt798x uboot,這個 uboot 有很多功能,其中以下兩點非常實用:

  • 【使用方便】自帶 MTK 原廠開發的簡易 WebUI 恢復介面,可以通過 WebUI 直接刷入韌體或者更新 uboot
  • 【相容性好】支援多種 Flash 分割區佈局切換功能(僅支援 spi-nand),可以在 WebUI 中切換不同的分割區佈局,完美相容小米原廠韌體

刷入流程

  1. 電腦接入正常網路,然後去 hanwckf 的倉庫 release 頁面下載對應的 uboot 檔案:mt7981_wr30u-fip-fixed-parts-multi-layout.bin

  2. 電腦接入路由器網路,通過 scp 將 uboot 傳到路由器上

    scp mt7981_wr30u-fip-fixed-parts-multi-layout.bin [email protected]:/tmp
    
  3. 通過 ssh 登入路由器,檢視佈局

    # on PC
    ssh [email protected]
    
    # on Router
    # 檢視當前分割區佈局
    cat /proc/mtd
    

    預設佈局如下:

    dev:    size   erasesize  name
    mtd0: 08000000 00020000 "spi0.0"
    mtd1: 00100000 00020000 "BL2"
    mtd2: 00040000 00020000 "Nvram"
    mtd3: 00040000 00020000 "Bdata"
    mtd4: 00200000 00020000 "Factory"
    mtd5: 00200000 00020000 "FIP"
    mtd6: 00040000 00020000 "crash"
    mtd7: 00040000 00020000 "crash_log"
    mtd8: 02200000 00020000 "ubi"
    mtd9: 02200000 00020000 "ubi1"
    mtd10: 02000000 00020000 "overlay"
    mtd11: 00c00000 00020000 "data"
    mtd12: 00040000 00020000 "KF"
    

    如果需要備份,可以通過 nanddump 命令備份,之後通過 scp 將備份的檔案傳到電腦上

    # on Router
    nanddump -f /tmp/BL2.bin /dev/mtd1
    nanddump -f /tmp/Nvram.bin /dev/mtd2
    nanddump -f /tmp/Bdata.bin /dev/mtd3
    nanddump -f /tmp/Factory.bin /dev/mtd4
    nanddump -f /tmp/FIP.bin /dev/mtd5
    nanddump -f /tmp/ubi.bin /dev/mtd8
    nanddump -f /tmp/KF.bin /dev/mtd12
    
    # on PC
    scp [email protected]:/tmp/*.bin .
    
  4. 然後將 uboot 刷入 FIP 分割區,之後關機

    # on Router
    mtd write /tmp/mt7981_wr30u-fip-fixed-parts-multi-layout.bin FIP
    
    poweroff
    

刷入 ImmortalWrt

簡介

ImmortalWrt 是 OpenWrt 的一個分支,相比於 OpenWrt 有更多的軟體包以及裝置支援,並且對中國大陸使用者有特殊優化

刷入流程

  1. 電腦連線正常網路,去官網下載 Sysupgrade 韌體

    這裡選擇了 custom U-Boot layout 的韌體,也就是 112M UBI layout 的韌體,這樣可以有更多的空間用於安裝軟體包,韌體名格式為 immortalwrt-xxxxxx-mediatek-filogic-xiaomi_mi-router-wr30u-112m-nmbm-squashfs-sysupgrade.bin

  2. 針按住 reset 不放,再接上電源,等待 10s 左右鬆開,路由器的系統燈變藍後就是成功進入 uboot 了

  3. 因 uboot 不支援 DHCP 功能,需要把電腦的 IP 地址設定成固定 IP:

    電腦通過網線連線路由器,然後在網路設定裡將乙太網設定為靜態,IP地址:192.168.31.100,子網掩碼:255.255.255.0,閘道器:192.168.31.1,首選 DNS:192.168.31.1,最後儲存

  4. 直接存取 WebUI 進行刷韌體,將 layout 選為 immortalwrt-112m,然後上傳前面下載的韌體,點選刷機即可

刷為原廠韌體

刷回原廠韌體的過程與刷入 ImmortalWrt 類似,只是需要下載原廠韌體,然後在 WebUI 中將 layout 設定為 default,之後上傳原廠韌體刷機即可

參考資料

本文作者: ywang_wnlo
本文連結: https://ywang-wnlo.github.io/posts/e6410576.html
版權宣告: 本部落格所有文章除特別宣告外,均採用 BY-NC-SA 許可協定。轉載請註明出處!