小米R4A千兆版V1路由器刷入OpenWRT第三方固件并解决无限重启和无线信号弱的问题

您所在的位置:网站首页 小米路由器4A千兆版和小米路由器3哪个好 小米R4A千兆版V1路由器刷入OpenWRT第三方固件并解决无限重启和无线信号弱的问题

小米R4A千兆版V1路由器刷入OpenWRT第三方固件并解决无限重启和无线信号弱的问题

2024-07-17 07:21| 来源: 网络整理| 查看: 265

摘 要 小米R4A使用Breed刷入固件后因为Breed适配问题可能会造成无限重启不能正常进入固件,本文通过修改固件引导地址解决上述问题。同时,发现从Breed中备份出来的eeprom分区重新刷入后有一定概率无法恢复无线正常功率,需要在刷入Breed前备份eeprom分区。

笔者邮箱:[email protected],如有疑问,欢迎交流。

0 刷入前准备 0.1 推荐两个精简版固件

https://firmware-selector.immortalwrt.org/?version=23.05.2&target=ramips%2Fmt7621&id=xiaomi_mi-router-4a-gigabit

https://github.com/lemonno2333/shared-lede/releases/tag/v1

(下载sysupgrade版)

0.2 OpenWRTInvasion

https://github.com/acecilia/OpenWRTInvasion/releases 下载最新的发行版并解压 最新的版本好像不支持Windows了,可以在Linux虚拟机或者Mac上进行。或者可以自行查阅下老版本的使用方法

0.3 下载Breed

https://breed.hackpascal.net/breed-mt7621-pbr-m1.bin

0.4 安装Python

请自行查阅相关教程

1 使用OpenWRTInvasion破解路由器 1.1 安装Python依赖

在终端中进入OpenWRTInvasion的目录,建立虚拟环境并激活

python -m venv .venv source .venv/bin/activate

安装requirements.txt

pip install -r requirements.txt 1.2 运行破解脚本 python remote_command_execution_vulnerability.py

在这里插入图片描述 输入路由器的ip地址(默认应该为192.168.31.1)和管理员密码,后续步骤默认即可,然后开始自动破解 破解完成后使用telnet连接的界面 破解完成后使用Telnet连接到路由器,用户名和密码默认均为root

telnet 192.168.31.1 # 根据你的路由器地址更改 2 备份引导分区和eeprom文件

注意:一定要备份自带的引导分区,后续如果需要刷回官方固件,需要在Breed中刷回官方的Bootloader然后使用恢复工具进行恢复。

cat /proc/mtd # 显示路由器当前分区 dd if=/dev/mtd1 of=/tmp/Bootloader.bin # 备份引导分区到/tmp/Bootloader.bin dd if=/dev/mtd4 of=/tmp/Factory.bin # 备份eeprom文件,即这里的Factory.bin

在这里插入图片描述 使用ftp连接路由器,用户名和密码均为root,导出上述备份,备份位于/tmp中,引导分区为Bootloader.bin,eeprom为Factory.bin Mac用户可以在访达中按Command+K,然后输入路由器地址连接 在这里插入图片描述

3 上传Breed文件至/tmp文件目录下并刷入

可以选择ftp上传,或者使用python自带的http.server工具搭建简单的http服务器,然后在路由器终端中使用wget下载,这里笔者由于Mac自带的ftp似乎不能直接上传,所以采用第二种办法。

推荐采用第二种方法,因为后续刷入breed后也要采用同样的方法进行上传。

3.1 搭建简单的http服务器

新建一个文件夹,然后在终端中进入这个文件夹。将待上传的文件复制到该文件夹中,建议将Breed、固件、eeprom一起复制过来。

然后开启http服务器

python -m http.server

在这里插入图片描述 如果没有指定端口,会自动在8000端口暴露文件夹中的文件。需要查看链接路由器的网卡的ip地址,假如我电脑的地址为192.168.31.100,文件夹中Breed的二进制文件名为breed-mt7621-pbr-m1.bin,则可通过“http://192.168.31.100/breed-mt7621-pbr-m1.bin”下载该文件。

3.2 上传Breed至路由器

在路由器终端中:

cd /tmp wget http://192.168.89.115:8000/breed-mt7621-pbr-m1.bin

在这里插入图片描述 保存Breed到tmp目录

3.3 刷入Breed mtd -r write /tmp/breed-mt7621-pbr-m1.bin Bootloader

刷入完成后路由器会自动重启。

4 连接Breed,刷入固件

等待路由器重启完后,路由器的地址应该变为了192.168.1.1,连接路由器的网卡应该变为了192.168.1.2。 破解路由器和刷入Breed的操作都可以连接路由器wifi进行,但是刷入breed并重启后,需要用网线连接到路由器的LAN口进行后续操作。

telnet 192.168.1.1

在这里插入图片描述

4.1 上传固件

同样,如果在上述步骤中你已经搭建好了http服务器,可以将固件复制到服务器暴露的文件夹中,然后在breed中进行下载。注意电脑的ip地址发生了变化。

wget http://192.168.1.2:8000/immortalwrt-23.05.2-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin

在这里插入图片描述 上传成功后应该如上图所示。此处需要注意的是上传后文件被保存到了0x80001000这个地址,文件大小为0x89047e(文件大小会根据你选择的固件不同而变化,请注意!)

4.2 擦除现有空间

为了写入固件,需要先擦出现有的数据。小米R4A千兆版V1固件的引导地址是从0x180000开始的,所以需要从0x180000开始,擦出一块比固件文件大小大的空间(一定要比固件大小大),比如上传后提示我固件的大小为0x89047e,则可以擦出0x900000大小的空间(固件的大小使用16进制表示,0-9,a-f,如果固件大小为0x900000,则可以擦除0xa00000大小的空间)

flash erase 0x180000 0x900000 # 从地址0x180000开始擦出0x900000大小的区域 4.3 写入固件 flash write 0x180000 0x80001000 0x89047e # 从0x180000地址处将刚保存固件的地址0x80001000开始,大小为0x89047e的文件写入 4.4 从0x180000处启动系统 boot flash 0x180000

等待路由器重启,如果重启成功,应该显示蓝灯,则固件成功刷入。

如果写入失败,请检查一下固件是否是配,写入过程中内存地址或者大小是否正确,然后拔掉路由器电源,按住reset键插上电源并保持按住几秒,重新进入breed,重新使用telnet连接,然后重新上传-擦除-写入。

如果写入成功,并能通过192.168.1.1(根据刷入固件的不同可能后台会不同)进入openwrt后台,则进行后续操作。

5 修改Breed启动参数解决无限重启问题

因为Breed并不能很好地适配该路由器,Breed默认的固件引导地址并不是0x180000,所以会导致不能正确引导进入固件从而出现无限重启的现象。所以需要修改Breed默认的固件引导地址。

5.1 开启环境变量功能

拔掉路由器电源,按住reset键插上电源并保持按住几秒,重新进入breed,在浏览器中输入192.168.1.1进入breed后台,点击环境变量设置,在右侧启用环境变量功能,位置选择Breed内部,其它保持默认,然后点击设置。 在这里插入图片描述

5.2 添加环境变量

重新拔掉电源,以同样的方法重新进入Breed,然后浏览器刷新一下,点击环境变量编辑,然后添加一条,字段为autoboot.command,值为boot flash 0x180000,添加后保存,重启路由器。这样路由器每次重新启动时,Breed会从0x180000处开始读取固件。如果路由器启动成功,并成功引导进入固件,则固件刷入成功。 在这里插入图片描述

6 恢复eeprom

eeprom是厂家对天线提前设置好的参数,该分区会在写入第三方固件后丢失,导致openwt不能正确驱动天线,从而导致无线信号弱,因此需要手动恢复官方的eeprom分区。

重新进入Breed,使用telnet连接,上传提前备份的eeprom文件。

wget http://192.168.1.2:8000/Factory.bin flash erase 0x50000 0x10000 # 擦除factory区域 flash write 0x50000 0x80001000 0x10000 # 写入factory区域

写入后重启路由器,5G频段wifi功率应该恢复正常,可以设置到23dBm左右(异常情况下最大值为3dBm) 在这里插入图片描述 如果没有成功恢复,有可能是你备份的eeprom文件出现了问题,可以使用经过我测试能够正常使用的eeprom文件(适用于小米R4A千兆版V1) 官方eeprom和上述用到的所有文件



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3