小米路由器 4A 刷入lean 的 openwrt/lede
(博主已更换小米路由器 Pro,也就是 R3P)
本教程同时适用于 小米路由器 4A 以及其千兆版
Attention: 本教程莽夫(博主我)专用,因为没刷不死breed,直接刚,建议其他使用者还是安排一下breed
缘由
作为一只攻城狮,开发的时候经常要下一堆lib,然而很多依赖都在国外,虽然也有国内的源,但是也常用例外情况,因此下载依赖时比较慢;(所以,懂我意思吧)
然后我并不想在挂客户端,并且要局域网都能用,因此就产生了这个想法
路由器固件切换
1.无法切换固件?
咳咳...我特地查询了下,我的路由器是 “小米路由器4A(R4AC)” 并不支持切换固件,而且也没用 USB 插槽,于是我产生了拆开直接刷的冲动;实际上也拆了,但是发现不大好操作。
2.那是不可能的!
经过我仔细地搜索伟大的互联网,发现了一位 github 的大佬给出了解决方案(非常感谢这位大佬)
该解决方案是通过小米路由器登录后产生的 stock 值来进入路由器进行操作
3.打通路由器命令行通道
具体的操作请前往 https://github.com/acecilia/OpenWRTInvasion 查看
需要注意的是,使用该工具请在先在操作的设备上准备好 Python3 环境、telnet 以及 git ,
Windows 10 系统的话,可以直接打开 WSL(ubuntu 18.04 以上) 操作,如下
# 克隆仓库
git clone https://github.com/acecilia/OpenWRTInvasion.git
# 进入目录
cd OpenWRTInvasion
# 安装依赖
pip3 install -r requirements.txt
然后再执行
python3 remote_command_execution_vulnerability.py
根据提示,输入路由器 IP 地址(小米路由器默认一般是 192.168.31.1
)和登录后产生的 stock 值
4.链接到路由器命令行
上述操作完成后,可尝试执行如下指令
telnet 路由器 IP 地址
如果连接被拒绝,可多尝试几次,或者重启路由器并重复第3步
5.固件切换
进入到路由器命令行通道以后,执行如下
# 进入到临时目录
cd /tmp
# 下载固件
curl https://raw.githubusercontent.com/yeliulee/openwrt-ramips-mt76x8-xiaomi_mir4a/main/mt76x8/openwrt-ramips-mt76x8-xiaomi_mir4a-100m-squashfs-sysupgrade.bin --output firmware.bin
# 校验固件完整性 (具体看下面仓库)
./busybox sha256sum firmware.bin
# 如校验和一致,则刷入硬件
mtd -e OS1 -r write firmware.bin OS1
刷写过程中请勿触碰路由器或断电,以免变砖,刷写完成以后会重启
等待重启以后即可进入 web 管理界面,路由器默认信息如下
192.168.1.1 # 路由器地址
root # 用户名
password # 密码(与 ssh 密码相同,自行更改)
进入 WEB 管理界面以后
我编译固件的时候,选择的 luci 的 material 主题(官方默认主题比较辣眼),有其他需求的可自行编译固件
固件仓库
lean 的 openwrt/lede 项目仓库 (感谢大佬)
仓库地址 https://github.com/coolsnowwolf/lede (可自行根据该源码为其他硬件定制并自行编译固件)
本文中的主角,为 小米路由器 4A (R4AC) 刷入 lean 的 openwrt/lede ,仓库中仅包含编译结果(已内置必需组件);
仓库地址 https://github.com/yeliulee/openwrt-ramips-mt76x8-xiaomi_mir4a
本固件同时适用于 小米路由器 4A 以及其千兆版
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
博主你好,我的路由器是小米4A千兆,今天采用上述流程操作,成功显示了rebooting的窗口界面,但是黄灯一直亮着,也没有网,想问下有什么补救的办法吗?
我想起来我在换固件的时候没把WAN和LAN用一根线连起来。。。
好吧,是我忘记更新Ubuntu了
害,其实除了更新,你自己安装也行
没找到pip3命令怎么回事
大佬,刷完这个固件之后,是不是就没有办法输入不死breed了啊?
有一说一,建议不要学我这么莽
有办法安装v2ray吗,空间太小了
还是酸酸乳凑合下吧
{"code":1629,"msg":"解压失败,可能文件已经损坏"}
解压失败,文件损坏.这个问题该怎么解决?
我这边测试了下是 OK,的,或许是下载出问题了
{"code":1629,"msg":"解压失败,可能文件已经损坏"}
解压失败,文件损坏.这个问题该怎么解决?
可能是下载出现了问题,可以hash一下看看是否一致
无法进行telnet怎么办?是可以ping的通的。
多尝试几次吧,我前几次也是无法telnet的
啊这,感觉大佬好厉害
我输入curl + 链接后就卡住不动了是怎么回事?
不是卡住了...而是如果你在国内的话,访问 github 挺慢的