小米路由器 4A 千兆版刷入 ImmortalWrt

SerinaNya

参考文献:

0. 确认路由器型号

  • 路由器背面标签:小米路由器 4A 千兆版,型号 R4A
  • 拆开后主板上的小米 Logo 下方的型号:M43 R0101

1. 获取路由器访问权限

⬇️ 需要使用到 OpenWRTInvasion

目前最新的 0.0.10 版本(NoConfusion)已不支持直接在 Windows 上运行,我选择将其放在在一台 Ubuntu 虚拟机中运行。

从 GitHub Releases 下载压缩包并解压,进入文件夹后运行:

1
2
python3 -m pip install -r requirements.txt
python3 remote_command_execution_vulnerability.py

然后输入路由器的 IP 和密码,软件即可自动获取访问权限,不再需要像以前那样手动登录路由器后复制 URL 中的 stok=... 字符串。

之后会询问从哪里获取 busybox 和 dropbear,这时候直接按回车确认(也就是默认 1)即可:

1
2
3
4
There two options to provide the files needed for invasion:
1. Use a local TCP file server runing on random port to provide files in local directory `script_tools`.
2. Download needed files from remote github repository. (choose this option only if github is accessable inside router device.)
Which option do you prefer? (default: 1)

成功后会列出 Telnet / SSH / FTP 的访问方式。

我建议使用在 Windows 上直接通过 telnet 命令连接,以及用 WinSCP 连接 FTP 传输文件。

2. 备份路由器原厂固件

通过 Telnet 连接到路由器后,运行以下命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd /tmp
mkdir backup
cd backup

dd if=/dev/mtd0 of=/tmp/backup/ALL.bin
dd if=/dev/mtd1 of=/tmp/backup/Bootloader.bin
dd if=/dev/mtd2 of=/tmp/backup/Config.bin
dd if=/dev/mtd3 of=/tmp/backup/Bdata.bin
dd if=/dev/mtd4 of=/tmp/backup/Factory.bin
dd if=/dev/mtd5 of=/tmp/backup/crash.bin
dd if=/dev/mtd6 of=/tmp/backup/cfg_bak.bin
dd if=/dev/mtd7 of=/tmp/backup/overlay.bin
dd if=/dev/mtd8 of=/tmp/backup/OS1.bin
dd if=/dev/mtd9 of=/tmp/backup/rootfs.bin
dd if=/dev/mtd10 of=/tmp/backup/disk.bin

完成后,通过 FTP 下载 /tmp/backup/ 下的所有文件,并妥善保存。

3. 刷入 Breed

Breed 是一个 Bootloader,可以在其网页上刷入其他系统,即使刷坏了,只要不影响到 Bootloader 分区就可以进入 Breed 界面重新刷入,大大降低变砖的可能性。

虽然 Breed 支持很多设备,但不知道为什么并未单独支持 Xiaomi Router 4A Gigabit Edition,因此只能借用架构同为 mt7621 的 PandoraBox PBR-M1 的包,而且后续需要进行额外的处理。

⬇️ 需要下载:breed-mt7621-pbr-m1.bin

通过 FTP 将下载好的 breed-mt7621-pbr-m1.bin 上传到 /tmp/ 下,然后执行以下命令:

1
mtd -r write /tmp/breed-mt7621-pbr-m1.bin Bootloader

完成后设备会自动重启。

4. 进入 Breed

设备自动重启后,需要通过有线连接才能访问 Breed。

将电脑的网口通过网线连接到路由器的 WAN 口(蓝色)以后,路由器上的灯才会亮起。

电脑会被 DHCP 到 192.168.1.2 的地址,访问 http://192.168.1.1/ 就可以进入 Breed 界面了。

之后如果还需要进入 Breed 界面,只需要先将路由器断电,然后按住复位键不放,再将路由器通电,等5到10秒松开复位键。此时再通过上述步骤就可以进入 Breed 界面了。

前文提到,刷入的这个 Breed 并非专为 Xiaomi Router 4A Gigabit Edition 设计,所以接下来的操作主要需要在 Telnet 中完成,网页上的操作较少。

可以通过 telnet 192.168.1.1 进入 Breed 的 Telnet。

5. 刷入 ImmortalWrt

⬇️ 在 ImmortalWrt Firmware Selector 页面上搜索并选择 Xiaomi Mi Router 4A Gigabit Edition,下载 SYSUPGRADE 文件。其文件名类似于 immortalwrt-24.10.5-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin

Breed 并不提供 FTP 这样的协议用以上传文件,但是提供了从 HTTP 来源下载文件的能力。

由于 Breed 中并无互联网连接,因此仅有的下载源是连接这路由器的电脑。

在 SYSUPGRADE 文件下载完成后,在下载目录中打开终端。然后使用 Python 运行一个基础的 Web 服务器:

1
python3 -m http.server 80

这样一来就可以通过 http://192.168.1.2/immortalwrt-24.10.5-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin 下载到 SYSUPGRADE 文件了。

进入到 Breed 的 Telnet 后,执行以下命令:

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

与正常的 wget 命令不同,它输出的结果类似于:

1
2
3
4
5
HTTP request sent, awaiting response... 200 OK
Length: 9634944/0x930480 (9MB) []
Saving to address 0x80001000

[===========================================] 100%

其中的 0x80001000 是文件下载到的内存地址,0x930480 是文件的长度(大约 9MB)。

然后,将下载到的文件从内存中写入到路由器的 OS1 分区,其起始地址是 0x180000。

OS1 分区的结束地址是 0xe80000,长度为 0xe80000 - 0x180000 = 0xd00000。
如果你想多写一点空间的话也是可以的。

1
2
flash erase 0x180000 0x930480
flash write 0x80001000 0x180000 0x930480

这样一来,刷入就完成了。

6. 调整引导位置

Breed 默认并不会从 0x180000 引导,若不手动进行调整会导致路由器无限重启。

进入 Breed 的网页,先开启环境变量,设置为保存在 Breed 内,然后再重新启动路由器(否则一时无法修改环境变量配置)。

在环境变量页面添加 autoboot.command: boot flash 0x180000,保存后重启路由器即可正常引导到 ImmortalWrt。

7. 修复 5GHz 信号问题

经过上述步骤后应该已经可以正常使用了。

但如果你此前还在路由器上折腾过什么东西,那你可能会发现 5GHz 的信号不太好,甚至连不上。

若你检查后发现在 ImmortalWrt 中 5GHz 的功率只能最高改到 3dBm,那么就需要通过刷入 Factory 分区来修复这个问题。

Factory 分区的起始地址是 0x50000,长度为 0x10000。

在先前下载的备份文件夹中开启 Web 服务器:

1
python3 -m http.server 80

然后在 Breed 的 Telnet 中执行以下命令:

1
2
3
4
wget http://192.168.1.2/Factory.bin

flash erase 0x50000 0x10000
flash write 0x50000 0x80001000 0x10000

8. 进入系统

将网线插回路由器的 LAN 口,访问 http://192.168.1.1 就会出现 LuCI 的登录界面。

ImmortalWrt 的默认用户名是 root,密码为空。

登录后即可开始配置你的路由器啦。

ImmortalWrt LuCI 登录界面

可以看到这台机器的配置非常捉襟见肘。
内存只有 128MB 左右,而整机的 EEPROM 存储空间更是只有 16MB。

  • 标题: 小米路由器 4A 千兆版刷入 ImmortalWrt
  • 作者: SerinaNya
  • 创建于 : 2026-02-19 16:43:30
  • 更新于 : 2026-02-20 13:33:00
  • 链接: https://serinanya.cn/2026/xiaomi-router-4a-gigabit-immortalwrt/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。