php 小公尺路由器 小公尺路由器韌體修改

2021-10-17 05:26:09 字數 3773 閱讀 9784

小公尺路由器官方提供的韌體是自定義格式,而且刷機時要驗證rsa簽名,因此只刷自製韌體幾乎不可能。

通過對韌體工具mkxqimage的分析,基本弄清楚了韌體打包和解包的流程,如果採用自己的rsa私鑰打包韌體,然後用自己的rsa公鑰替換/usr/share/xiaoqiang/public.pem,那麼就能實現通過web介面刷自製韌體。

韌體解包

韌體工具mkxqimage完成對韌體的解包,在解包前先檢查checksum是否正確,然後利用rsa公鑰/usr/share/xiaoqiang/public.pem檢查rsa簽名,這兩個步驟通過後,根據[0x0c]的韌體型別,以及[0x10]、[0x14]、[0x18]和[0x1c]的4個偏移量拆分韌體。韌體中可能包含的內容有:

brcm4709_fac_update_nor.bin

brcm4709_nor.bin

fac_mode.bin

nvram_fac.bin

ramfsz

root.ext4.lzma

root.squashfs

upsetting.sh

upsetting_fac1.sh

upsetting_fac2.sh

upsetting_fac3.sh

vmlinuz.trx

韌體格式和解包命令詳見:小公尺路由器韌體分析

韌體打包

下面以穩定版0.4.85為例,介紹韌體修改和打包方法。

韌體解包

cd /userdisk/data

mkdir xqimage

cd xqimage

wget -o mkxqimage.tgz

tar xzf mkxqimage.tgz

wget -o brcm4709_hdr_039ef_0.4.85.bin

./mkxqimage -x brcm4709_hdr_039ef_0.4.85.bin

得到2個檔案:

-rw-r--r-- 1 root root 16646144 may 30 08:14 brcm4709_nor.bin

-rw-r--r-- 1 root root 34853955 may 30 08:14 root.ext4.lzma

前者是flash全映象,這個檔案成分比較複雜,目前不建議修改它。

後者是硬碟韌體映象,先用unlzma解壓,得到root.ext4

unlzma root.ext4.lzma

韌體修改

用mount命令載入

mount -o loop -t ext4 root.ext4 /mnt

接下來先把rsa公鑰替換掉,然後開ssh

cd /mnt/usr/share/xiaoqiang

mv public.pem public.pem.orig

cp /userdisk/data/xqimage/public.pem public.pem.new

ln -s public.pem.new public.pem

sed -i 's/ssh_en=0/ssh_en=1/g' xiaoqiang-defaults.txt

把一些關掉的web介面恢復

cd /mnt/usr/lib/lua/luci/controller/web

sed -i 's/--entry/entry/g' index.lua

如果需要,還可以對韌體進行修改,這裡就不再多說。

將上面的修改儲存回硬碟韌體映象檔案中:

cd /userdisk/data/xqimage

umount /mnt

sleep 30

# 一定要等待一會兒後再壓縮映象

韌體打包

將修改後的硬碟映象壓縮:

./lzma e -a0 root.ext4 root.ext4.lzma

./mkxqimage -o brcm4709_hdr_00000_0.4.85.bin -p ./private.pem -t 5 -f brcm4709_nor.bin -f root.ext4.lzma

公升級準備

公鑰替換

mount -o rw,remount /

cd /usr/share/xiaoqiang

mv public.pem public.pem.orig

cp /userdisk/data/xqimage/public.pem public.pem.new

ln -s public.pem.new public.pem

mount -o ro,remount /

自製韌體測試

用下面的命令測試:

cd /userdisk/data/xqimage

mkdir test

cd test

mkxqimage -x ../brcm4709_hdr_00000_0.4.85.bin

ls -l

如果解壓韌體過程中沒有出現錯誤資訊,最後列表出2個檔案,說明自製韌體打包沒問題。

-rw-r--r-- 1 root root 16646144 jun 1 12:00 brcm4709_nor.bin

-rw-r--r-- 1 root root 33188560 jun 1 12:00 root.ext4.lzma

注意:brcm4709_nor.bin檔案的大小一定是16646144。

驗證root.ext4.lzma是否正確:

cd /userdisk/data/xqimage/test

unlzma root.ext4.lzma

mount -o loop -t ext4 root.ext4 /mnt

ls -l /mnt/usr/share/xiaoqiang/public.pem*

grep ssh_en /mnt/usr/share/xiaoqiang/xiaoqiang-defaults.txt

umount /mnt

上面命令執行完畢後,應該能看到一些資訊(時間資訊會有差別):

lrwxrwxrwx 1 root root 14 jun 1 11:30 /mnt/usr/share/xiaoqiang/public.pem -> public.pem.new

-rw-r--r-- 1 root root 451 jun 1 11:30 /mnt/usr/share/xiaoqiang/public.pem.new

-rwxr-xr-x 1 root root 451 may 27 11:33 /mnt/usr/share/xiaoqiang/public.pem.orig

ssh_en=1

備份自製韌體

在計算機資源管理器中輸入: \\192.168.31.1\xiaomi\xqimage ,目錄列表中能看到brcm4709_hdr_00000_0.4.85,將該自製韌體複製到計算機上。

公升級自製韌體

登入小公尺路由器管理頁面,在「路由設定」-「高階功能」-「路由器手動公升級」介面中選中brcm4709_hdr_00000_0.4.85,點「上傳並安裝韌體」按鈕,等待數分鐘。

安裝完韌體後,ssh有可能沒有啟動,這是因為公升級韌體時將nvram項ssh_en清為0,而第一次啟動時通過defaults設定將ssh_en設定為1的動作在dropbear啟動之後。只需要重啟一下路由器,就能夠ssh登入了。

特別提醒

由於替換了路由器中的rsa公鑰,路由器不能公升級官方韌體,如果想恢復成官方韌體,只需換回原來的公鑰,方法如下:

mount -o rw,remount /

cd /usr/share/xiaoqiang

cp public.pem.orig public.pem

mount -o ro,remount /

小公尺路由器怎麼限速 小公尺路由器給裝置限速的教程

由於家裡的無線路由器有很szvcwddv多人在使用,但大家都用它來 或看電影了這樣就影響到我正常的工作了,那麼我們有沒有辦法來限制一些人的速度呢,下面就看一下如何限速吧 1 開啟瀏覽器在電腦中位址列輸入頁面,如圖所szvcwddv示 2 輸入管理員密碼後,在首頁會顯示實時網速,及連線小公尺路由器的終...

全新小公尺路由器多少錢 新小公尺路由器配置怎麼樣

小公尺路由器怎麼賣?小公尺路由器配置如何?小公尺今天下午召開了發布會,而今天到來了就是之前猜測的小公尺路由器了,那麼全新小公尺路由器多少錢?新小公尺路由器配置怎麼樣?下面小編就為大家介紹一下,來看看吧!剛剛,小公尺正式發布了全新小公尺路由器,造型和上代產品有了很大不同,採用外接雙天線,同時內建了大容...

小公尺路由器3 R3 刷韌體

1 1 首先進入路由器原聲後台 miwifi.com 1 2 在右上角,點選系統公升級 在系統版本下邊選擇手動公升級,選擇資源包裡的 miwifi r3 all 55ac7 2.11.20.bin 檔案 如下圖所示 1 3 公升級完成後,設定路由器後台密碼,這裡隨意即可。2 2 開啟以後你會看到如下...