小米 3G 路由器参数
Architecture: MIPS
Vendor: Mediatek
Bootloader: U-Boot
System-On-Chip: MT7621 family
CPU/Speed: mipsel_24kc @ 880MHz 2 core
Flash: 128MB ESMT NAND
RAM: 256MB - NT 5C C 128M16 FP-DI,DDR3-1600-11-11-11
Wireless: MT7603/MT7612 2.4GHz/5GHz 802.11an+ac
Ethernet: 1000 Mbit/s / vlan support
USB: 1x 3.0
刷入开发版 ROM 并开启 SSH
为了写入 Bootloader,要开启 SSH,要开启 SSH,就需要将小米路由器的 ROM 更新为开发版
在小米的 miwifi 下载页面 找到路由器对应的开发版 ROM(R3G ROM 开发版)
ROM 的升级有两种方式:
- 登陆路由器后台在线升级
- 如果前一个方式不行,可以将其拷贝到 U 盘根目录,并命名为 miwifi.bin,随后断开电源,插上 U 盘,并按住 reset 按钮后插入电源,等到指示灯变为黄色闪烁 (10-15 秒) 后松开 reset 键,之后路由器将更新 ROM 并重启进入正常状态(指示灯变为蓝色常亮)
获取 SSH 权限
先注册小米账号.
安装 MiWiFi 手机 APP,连上路由器 WIFI 后绑定路由器,绑定教程请参见 https://zhidao.baidu.com/question/2011024461729333668.html
绑定后, 登陆 https://d.miwifi.com/rom/ssh,点击 "下载工具包"
下载工具包的链接旁边有 root 密码,需要记一下
开启 SSH
- 将下载的工具包 bin 文件复制到 U 盘(FAT/FAT32 格式)的根目录下, 保证文件名为 miwifi_ssh.bin;
- 断开小米路由器的电源,将 U 盘插入 USB 接口;
- 按住 reset 按钮之后重新接入电源,指示灯变为黄色闪烁状态 (10-15 秒) 即可松开 reset 键
- 等待 3 - 5 秒后安装完成之后,小米路由器会自动重启, 蓝灯常亮
- 登录 ssh 的密码,在刚才下载工具包的界面上
如果 ssh 连接遇到错误
Unable to negotiate with 192.168.31.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
需要手动指定 oKexAlgorithms,命令如下
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 root@192.168.31.1
备份
R3G 的闪存是 128M 的 NAND,先查看布局,执行
cat /proc/mtd
会显示如下结果:
dev: size erasesize name
mtd0: 07f80000 00020000 "ALL"
mtd1: 00080000 00020000 "Bootloader"
mtd2: 00040000 00020000 "Config"
mtd3: 00040000 00020000 "Bdata"
mtd4: 00040000 00020000 "Factory"
mtd5: 00040000 00020000 "crash"
mtd6: 00040000 00020000 "crash_syslog"
mtd7: 00040000 00020000 "reserved0"
mtd8: 00400000 00020000 "kernel0"
mtd9: 00400000 00020000 "kernel1"
mtd10: 02000000 00020000 "rootfs0"
mtd11: 02000000 00020000 "rootfs1"
mtd12: 03580000 00020000 "overlay"
mtd13: 012a6000 0001f000 "ubi_rootfs"
mtd14: 030ec000 0001f000 "data"
备份命令
具体路径根据自己的 U 盘路径调整 /extdisks/sda4 即可
dd if=/dev/mtd0 of=/extdisks/sda4/ALL.bin
dd if=/dev/mtd1 of=/extdisks/sda4/Bootloader.bin
dd if=/dev/mtd2 of=/extdisks/sda4/Config.bin
dd if=/dev/mtd3 of=/extdisks/sda4/Bdata.bin
dd if=/dev/mtd4 of=/extdisks/sda4/Factory.bin
dd if=/dev/mtd5 of=/extdisks/sda4/crash.bin
dd if=/dev/mtd6 of=/extdisks/sda4/crash_syslog.bin
dd if=/dev/mtd7 of=/extdisks/sda4/reserved0.bin
dd if=/dev/mtd8 of=/extdisks/sda4/kernel0.bin
dd if=/dev/mtd9 of=/extdisks/sda4/kernel1.bin
dd if=/dev/mtd10 of=/extdisks/sda4/rootfs0.bin
dd if=/dev/mtd11 of=/extdisks/sda4/rootfs1.bin
dd if=/dev/mtd12 of=/extdisks/sda4/overlay.bin
dd if=/dev/mtd13 of=/extdisks/sda4/ubi_rootfs.bin
dd if=/dev/mtd14 of=/extdisks/sda4/data.bin
推荐使用 FinalShell SSH 工具,连接 SSH 后,会在左下方显示磁盘信息,在里面根据磁盘大小找到你对应的 U 盘路径即可
备份到 mtd14 可以会提示设备不存在, 可以忽略,mtd0-mtd4 备份下来就行了
恢复备份命令
mtd write /extdisks/sda4/Bootloader.bin Bootloader
mtd write /extdisks/sda4/Config.bin Config
mtd write /extdisks/sda4/Bdata.bin Bdata
mtd write /extdisks/sda4/Factory.bin Factory
mtd write /extdisks/sda4/crash.bin crash
mtd write /extdisks/sda4/crash_syslog.bin crash_syslog
mtd write /extdisks/sda4/reserved0.bin reserved0
mtd write /extdisks/sda4/kernel0.bin kernel0
mtd write /extdisks/sda4/kernel1.bin kernel1
mtd write /extdisks/sda4/rootfs0.bin rootfs0
mtd write /extdisks/sda4/rootfs1.bin rootfs1
mtd write /extdisks/sda4/overlay.bin overlay
mtd write /extdisks/sda4/ubi_rootfs.bin ubi_rootfs
mtd write /extdisks/sda4/data.bin data
写入 Breed
下载 Breed
- 网址:https://breed.hackpascal.net/
- 在网页内通过 Ctrl+ F 找到 breed-mt7621-xiaomi-r3g.bin
- 当前版本的日期是 2022-07-24 00:12,大小 134K
使用 winscp 上传Breed 并刷入Breed
下载 winscp:https://dwz.cam/OwcDw
使用 winscp 登入路由器
将刚才下载的 breed-mt7621-xiaomi-r3g.bin 上传到路由器的 /tmp 文件夹下,并改个简单点的文件名 breed.bin
执行 scp 命令:
mtd -r write /tmp/breed.bin Bootloader
写入完成后会自动重启,注意,这时候直接重启是肯定回不去原来小米路由器的系统的,因为 Breed 里还有个参数没有设置
看灯变紫色后直接拔掉电源,拿牙签回形针之类的东西顶住 reset 孔并插上电源,看到蓝灯灯快速闪烁的时候再松开 reset 孔,这时候路由器就已经进入了 Breed 系统
在电脑的命令行 cmd 中通过 ipconfig 查看 IP,能看到电脑获取到 IPV4 地址为 192.168.1.x,在浏览器中访问 192.168.1.1 就可以进入 breed 控制台
配置 breed
在 breed 控制台的环境变量中,删除 normal_firmware_md5 这个键值,因为刷新刷的固件 md5 值与原来的不一致会导致无法开机(必须删除,不删不能开机)
在环境变量编辑中,添加一个环境变量,变量名为 xiaomi.r3g.bootfw,值为2(这个必须要设置吗,否则进不去原来的小米系统)
然后拔电再插电重启路由器,之后就会进入小米系统
如果进不去,可以在 breed 控制台的固件更新页面勾选固件,选择第一步下载的小米 R3G 开发者 ROM 包,闪存检测选择自动检测,勾选自动重启,点击上传,更新,等待页面进度条完成后拔电再插电重启路由器即可进入小米官方系统
参数说明 xiaomi.r3g.bootfw
如果写入 Breed 到 bootloader,这个参数是必须的
Breed 的启动流程如下:
如果 kernel0 存在,那么启动 kernel0
如果 kernel0 不存在,kernel1 存在,那么启动 kernel1
如果 kernel0 和 kernel1 都存在,则检查环境变量 xiaomi.r3g.bootfw 的值,如果存在且值为 2,那么启动 kernel1,否则启动 kernel0
如果通过 mtd 写入了 OpenWrt 到 Kernel1,但是不写这个环境变量,Breed 就会从 kernel0 启动,无法进入系统,然后重启,再次从 kernel0 启动,这样一直循环下去
刷入 Padavan
本次刷入的固件来自恩山无线论坛 togo1986 大佬的帖子:https://www.right.com.cn/forum/thread-8228177-1-1.html
当然你也可以选择别的适配 P3G 的固件,直接在 Breed 控制台的固件更新页面刷入即可
Padavan 预览图
微信扫描下方的二维码阅读本文