找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 34791|回复: 29

[R4A] 小米路由器4A千兆版 折腾记录 完美刷入官方openwrt 2022-08-09更新

[复制链接]
本帖最后由 友谊 于 2022-8-9 16:41 编辑

相关教程链接
https://www.right.com.cn/forum/f ... tra=page%3D1&page=1
https://www.right.com.cn/forum/f ... ypeid%26typeid%3D55

我买到的路由器的固件版本是:MiWiFi 稳定版 2.28.65

准备工作:
1.下载breed
这个是开发BREED的作者的帖子
https://www.right.com.cn/forum/thread-161906-1-1.html
这个是BREED下载地址
https://breed.hackpascal.net/
小米路由器4a千兆版用的是这个
https://breed.hackpascal.net/breed-mt7621-pbr-m1.bin

2.下载openwrt固件
https://downloads.openwrt.org/re ... shfs-sysupgrade.bin
(顺便贴一下小米4a千兆版的介绍页面https://openwrt.org/inbox/toh/xi ... _4a_gigabit_edition)

3.电脑开启telnet功能
我的系统是WIN10,在设置-应用-程序和功能-启用或关闭windows功能 这里把telnet勾选上,需要重启电脑

4.下载openwrt获取root权限的python脚本
https://github.com/acecilia/Open ... refs/tags/0.0.7.zip
下载这个,下载下来的文件名是OpenWRTInvasion-0.0.7.zip
然后解压到c:/xiaomi/

5.下载需要用到的其他工具:winscp(用来把breed固件上传到路由器,用的是ftp协议)
(既然是ftp我估计是可以直接用windows自带的资源管理器访问的,打开我的电脑,然后在地址栏输入ftp://192.168.31.1应该就可以访问了)

然后开始正式的过程:

第0步:必做的工作
先把路由器正常的接好,让电脑可以正常的上网  这一步尤其重要,而且估计可能还需要能科学上网,毕竟github有一些东西是访问不了的

第一步:安装python
https://www.python.org/ftp/python/3.10.1/python-3.10.1-amd64.exe下载安装包
安装的时候勾选添加到path环境变量,这样在cmd里面就可以直接输入python命令了
然后打开cmd 输入pip install requests
这个命令是安装模块,第一次安装完毕有个提示,好像是说什么版本过老,建议用什么命令安装,我就用他推荐的命令重新装了一下requests
(安装界面纯英文)

安装完毕重启系统

第二步:获取root权限
打开cmd,进入到c:/xiaomi/
输入命令python remote_command_execution_vulnerability.py
提示输入IP 默认是192.168.31.1 可以直接回车或者如果你改了路由器的IP可以手动输入
然后要输入stok
用浏览器访问路由器管理界面,登录以后会在地址栏看到stok值,复制下来
然后就会开始root
过一会就提示成功了
(注意:这里一定要有网络,否则永远不可能root成功)(这里必须路由器WAN口可以访问谷歌,不然绝对会root失败,我今天弄剩下的4台的时候发现的)

然后再输入命令 telnet 192.168.31.1
(这里如果提示连接失败说明上面的root没有成功,路由器需要科学上网)


第三步:备份
备份的命令我忘记了,我也忘记备份了,参考论坛其他帖子的备份命令吧
(这个备份的目的是以后好刷回小米官方系统)

cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01000000 00010000 "ALL"
mtd1: 00030000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Bdata"
mtd4: 00010000 00010000 "Factory"
mtd5: 00010000 00010000 "crash"
mtd6: 00010000 00010000 "cfg_bak"
mtd7: 00100000 00010000 "overlay"
mtd8: 00d00000 00010000 "OS1"
mtd9: 00b30000 00010000 "rootfs"
mtd10: 00180000 00010000 "disk"

cd /tmp
mkdir backupB9AD
cd backupB9AD
dd if=/dev/mtd0 of=/tmp/backupB9AD/mtd0-ALL.bin
dd if=/dev/mtd1 of=/tmp/backupB9AD/mtd1-Bootloader.bin
dd if=/dev/mtd2 of=/tmp/backupB9AD/mtd2-Config.bin
dd if=/dev/mtd3 of=/tmp/backupB9AD/mtd3-Bdata.bin
dd if=/dev/mtd4 of=/tmp/backupB9AD/mtd4-Factory.bin
dd if=/dev/mtd5 of=/tmp/backupB9AD/mtd5-crash.bin
dd if=/dev/mtd6 of=/tmp/backupB9AD/mtd6-cfg_bak.bin
dd if=/dev/mtd7 of=/tmp/backupB9AD/mtd7-overlay.bin
dd if=/dev/mtd8 of=/tmp/backupB9AD/mtd8-OS1.bin
dd if=/dev/mtd9 of=/tmp/backupB9AD/mtd9-rootfs.bin
dd if=/dev/mtd10 of=/tmp/backupB9AD/mtd10-disk.bin
备份完毕用FTP把这几个文件复制出来保存好,以后万一要用到

第四步:上传breed文件到路由器
用winscp用FTP协议把breed上传到路由器的/tmp目录

第五步:刷入breed
输入命令mtd -r write /tmp/breed-mt7621-pbr-m1.bin Bootloader
之后路由器会自动重启到breed界面
(breed界面的IP是192.168.1.1,这里需要手动设置电脑的IP)
用浏览器访问breed界面 备份固件的各种信息 记录MAC地址等 防止以后可能会用到 (这个breed不是专门为小米4a千兆版设计的,这里的全备没啥用,估计备份eeprom可能有点用)

第六步:在breed界面用命令刷入openwrt(只能这样刷入)

首先在本地搭建一个http服务,怎么搭建随便你
我自己是用win10的hyper-v开了一个虚拟机,在虚拟机里面提供web服务
然后把上面下载下来的固件放到web服务器的根目录

然后打开telnet,进入到breed.命令是telnet 192.168.1.1
然后依次输入命令
wget http://192.168.1.2/openwrt-21.02 ... shfs-sysupgrade.bin
#(192.168.1.2就是我提供WEB服务的虚拟机的IP)
#下面提示下载的信息,包含大小和保存的地址
#Length: 5768992/0x580270 (5MB) [application/octet-stream]
#Saving to address 0x80001000

flash erase 0x180000 0x600000
#从0x180000开始擦除0x600000这么大的区域   一定要先擦除,为什么要写0x600000呢,是因为擦除的大于必须大于固件的大小,并且这个数字还有一些未知的要求,我猜测可能是某个数的整数倍,懒得测试了,直接0x600000简单省事
#0x180000是小米路由器4a千兆版的openwrt的默认起始地址

flash write 0x180000 0x80001000 0x580270
#从0x180000这个地址写入保存在0x80001000的数据    写入的大小为0x580270

boot flash 0x180000
#从0x180000启动系统

重启以后就进入了openwrt的系统了

第七步:收尾
这个breed不是本路由器专用的,默认的启动地址不是0x180000
为了保证重启以后每次都能顺利启动系统,需要添加环境变量
重启到breed界面,然后开启环境变量,再重启一次进breed就可以添加环境变量了
在环境变量界面,增加autoboot.command字段,值设为boot flash 0x180000
即可,这就是告诉breed启动系统时,从0x180000处启动

至此就大工告成了,成功的刷入了openwrt的官方系统


目前还有一个小bug
5G的功率有问题最高只能选3db 1mw,1毫瓦,这根本就没有5G信号了,不知道怎么解决
(我猜测可能和上面备份的eeprom有关,但是我不知道怎么弄)
有同样刷了openwrt的,希望看看怎么解决

问题解决了,在breed界面刷入备份的eeprom就可以了
我是完全重新操作了一遍,在第六步的最后一个重启命令先不要输入,先在网页访问breed,恢复之前备份的eeprom
然后重启就可以了,就有正常的5G了

至此这个路由器完美的刷入了OPENWRT的官方固件

最后补上openwrt的闪存分区情况
root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "Bdata"
mtd3: 00010000 00010000 "factory"
mtd4: 00010000 00010000 "crash"
mtd5: 00010000 00010000 "cfg_bak"
mtd6: 00100000 00010000 "overlay"
mtd7: 00e80000 00010000 "firmware"
mtd8: 00241f43 00010000 "kernel"
mtd9: 00c3e0bd 00010000 "rootfs"
mtd10: 00920000 00010000 "rootfs_data"





2022-08-09更新
我刚刚把剩下的4台都刷了OP
把教程补充了一下,备份的命令我加进去了
同时也发现root的时候路由器必须能访问谷歌

评分

参与人数 3恩山币 +3 收起 理由
忒*** + 1 感谢你的分享,无论怎样,你都是最无私的人.
仰望*** + 1 强大的恩山!(以下重复1万次)
woyeshi*** + 1 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
 楼主| | 显示全部楼层
本帖最后由 友谊 于 2024-3-21 20:41 编辑

我在breed刷入了最上面那个链接的MT7621_7603_7612_128M_3.4.3.9-099.trx这个固件 然后重启以后就有无线了


这楼不用看了,只需要看一楼的教程  
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

看你的名字就知道你刷的是过度包。保存不了配置,所以没有无线

点评

请问OPENWRT的官方包要怎么弄? 我先在breed里面刷了openwrt-21.02.1-ramips-mt7621-xiaomi_mi-router-4a-gigabit-initramfs-kernel.bin 进系统没有无线 然后我在系统里面手动更新openwrt-21.02.1-ramips-mt762  详情 回复 发表于 2021-11-16 12:16
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 友谊 于 2024-3-21 20:41 编辑
x403795698 发表于 2021-11-13 21:47
看你的名字就知道你刷的是过度包。保存不了配置,所以没有无线

请问OPENWRT的官方包要怎么弄?

我先在breed里面刷了openwrt-21.02.1-ramips-mt7621-xiaomi_mi-router-4a-gigabit-initramfs-kernel.bin
进系统没有无线然后我在系统里面手动更新openwrt-21.02.1-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin  结果无限重启  


然后我继续刷回openwrt-21.02.1-ramips-mt7621-xiaomi_mi-router-4a-gigabit-initramfs-kernel.bin
这次我是先刷这个包,不重启
然后再刷eeprom
然后重启以后还是没有无线



这楼不用看了,大家只需要看一楼的教程就行了  

点评

反复重启的问题解决了吗?我也是不停的断连  详情 回复 发表于 2024-3-21 15:03
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

4A一般刷高恪或者老毛子,这俩好用些
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

教程好长呀,感谢分享。希望能出一个视频教程。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

都2022年了 root的时候可以本地不需要联网了0.0.8就支持本地。还有不需要安装python了。

点评

vtf
不需要联网知道,不用python怎么搞?  详情 回复 发表于 2022-11-25 09:39
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

航校门口二楼修 发表于 2022-11-24 20:47
都2022年了 root的时候可以本地不需要联网了0.0.8就支持本地。还有不需要安装python了。

不需要联网知道,不用python怎么搞?

点评

要python,就是不用安装这么麻烦了。绿色的运行环境直接放进文件夹里就可以运行了  详情 回复 发表于 2022-11-25 10:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

vtf 发表于 2022-11-25 09:39
不需要联网知道,不用python怎么搞?

要python,就是不用安装这么麻烦了。绿色的运行环境直接放进文件夹里就可以运行了

点评

vtf
哦。是我理解有问题  详情 回复 发表于 2022-11-27 17:04
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

航校门口二楼修 发表于 2022-11-25 10:31
要python,就是不用安装这么麻烦了。绿色的运行环境直接放进文件夹里就可以运行了

哦。是我理解有问题
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢大佬的教程
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

写的很认真,多谢。不想折腾了,我也是后来才知道要改那个启动地址。射了一个老毛子,打开后看着不太喜欢,又恢复原厂了。有些老外在国外论坛说不要刷breed。我感觉breed在国外发烧友确实都知道,但用的不多。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

写的很认真,多谢。不想折腾了,我也是后来才知道要改那个启动地址。射了一个老毛子,打开后看着不太喜欢,又恢复原厂了。有些老外在国外论坛说不要刷breed。我感觉breed在国外发烧友确实都知道,但用的不多。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

当初刷原版op的时候好像没这么复杂~~~
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
0x180000 这个启动地址要查看OPENWRT官网对应路由器的页面 在里面慢慢找,我记得好像是找启动日志,里面慢慢看,应该有启动地址的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 18:31

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表