自由尋覓快樂別人從沒法感受

0%

小米路由器4千兆版刷OpenWrt

前言

在家用了一段时间的小米路由器4千兆版,使用一段时间之后就会发生网络不稳定,甚至无法连接网络等情况,怀疑是官方固件的问题。同时也有一些插件上的需求,于是就开始动手把OpenWrt固件刷入到小米路由器4千兆版中。

刷机环境

  • 刷机使用的系统:macOS 11.4
  • 编译OpenWrt使用的系统:Ubuntu 21.04
  • 小米路由器4千兆版固件版本:MiWiFi 稳定版 2.28.58

开启SSH

开启路由器的SSH需要用到OpenWRTInvasion,首先克隆仓库,安装依赖。

1
2
3
4
5
# 克隆仓库
git clone https://github.com/acecilia/OpenWRTInvasion.git
# 安装依赖
cd OpenWRTInvasion/
pip3 install -r requirements.txt

接下来打开路由器管理界面,获取stokstok在路由器的地址栏处,如下图所示,stok=xxxx一直到/前,那么stok就是ff43b68c8e20a6bcd3d33377c0c889dd

Stok

运行OpenWRTInvasion中的remote_command_execution_vulnerability.py,输入路由器IP地址stok,脚本会执行命令并开启SSH、Telnet和FTP。如果出现如下图提示,表示开启成功。

开启SSH成功

如果等了很久都没有反应,则有可能是下载busyboxdropbear时遇到了网络问题,此时需要手动修改一下busyboxdropbear的下载地址

打开OpenWRTInvasion文件夹中的script.sh文件,找到setup_busybox()函数和start_ssh()函数中的curl命令,将其中的下载地址进行修改,这里我使用自己的服务器提供下载。

1
2
3
4
5
6
7
# setup_busybox函数
# Rationale for using --insecure: https://github.com/acecilia/OpenWRTInvasion/issues/31#issuecomment-690755250
curl -L "https://fisher.lazybone.xyz/downloads/busybox-mipsel" --insecure --output busybox

# start_ssh函数
# Donwload dropbear static mipsel binary
curl -L "https://fisher.lazybone.xyz/downloads/dropbearStaticMipsel.tar.bz2" --output dropbear.tar.bz2

再次运行OpenWRTInvasion,网络状态良好的情况下能够正常开启ssh了。复制执行脚本给出的ssh命令,输入密码root,就能够ssh登录到路由器中了。

SSH登录

刷入Breed

ssh登录路由器后,使用Curl下载Breed,将其重命名为breed.bin并进行md5校验,md5一致后才能刷Breed。

1
2
3
cd /tmp/
curl -o breed.bin https://breed.hackpascal.net/breed-mt7621-pbr-m1.bin
md5sum breed.bin

使用mtd将Breed刷入Bootloader分区中,此时路由器会自动重启。

1
mtd -r write /tmp/breed.bin Bootloader

刷入Breed

使用网线连接路由器,待网卡正确获取到IP为192.168.1.x的地址后,路由器电源指示灯为淡紫色,表示正常进入Breed中了。

进入Breed

编译OpenWrt

如果从网上下载别人编译好的固件,这一步就可以省略了,下面说说我在编译固件时踩过的坑。

  • 首先是直接使用coolsnowwolf的LEDE编译出来的固件,用Breed刷入后是无法正常引导的,这里需要修改一下内存分区的源码,具体操作流程可参考恩山大佬的帖子
  • 接着是编译后的固件没有2.4g无线网卡的驱动,这个需要在编译配置中勾选kmod-mt7603,以支持小米路由器4千兆版的2.4g无线网卡。

刷入OpenWrt

打开Breed的固件更新页面,选择要刷入的Openwrt固件,直接刷入即可。

OpenWrt