Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2747|回复: 0

小米/红米AC2100刷Openwrt方法

[复制链接]

151

主题

419

帖子

1669

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1669
发表于 2021-12-13 13:24:50 | 显示全部楼层 |阅读模式
https://zhuanlan.zhihu.com/p/363895917

Openwrt官方已经从21.02.0版正式支持小米/红米AC2100。官网下载地址:https://downloads.openwrt.org/releases/
更新说明:因为采用了DAS构架,从19升级要强制,而且以前的设置备份无法用。我没有那么升级,我再写了一遍,需要再设置。注意从openwrt写盘,盘名不一样了。
从openwrt写盘命令:
        mtd write /tmp/xxx-kernel1.bin kernel        mtd -r write /tmp/xxx-rootfs0.bin ubi
从小米厂家rom写盘命令:
        mtd write /tmp/xxx-kernel1.bin kernel1        mtd -r write /tmp/xxx-rootfs0.bin rootfs0
注意上面根据你自己的文件名做相应更改。
----------------------------------------------------------------------
这也是我之前刷机的记录,参考了恩山论坛a76yyyy等归纳的方法而实践。
1. 基本思路:利用官方固件的漏洞,通过Web注入漏洞开启SSH实现刷机。
2. 材料准备:有两方面的内容准备,带漏洞的rom和Openwrt rom。
第一方面:带漏洞的官方固件,只有一个版本的固件有漏洞,版本号为AC2100 2.0.7*版本。之后的版本漏洞已经修复,要刷机需要降级到带漏洞的版本(有人说是小米有意无意放出的那么一个版本,反正国际上一大堆玩小米路由的玩家)。降级只需用官方更新方法手动刷入即可。带漏洞的版本在官方网站上下载:红米RM2100http://cdn.cnbj1.fds.api.mi-img. ... are_d6234_2.0.7.bin小米R2100:http://cdn.cnbj1.fds.api.mi-img. ... e_4b519_2.0.722.bin
第二方面:需要刷入的Openwrt rom。有各种各样的版本,我用了一个半官方的由Philipp Schuster等适配编译的版本,目前还在适配开发阶段,据他说估计要到下一个版本号才会签升为Openwrt官方版。(已经签升为官方版,从21.02.0版起支持,如下早期版本无更新了。)
下载地址:https://drive.google.com/drive/u ... CDpuo_hf2JKAaUwmZFG
开发讨论的论坛地址:
https://forum.openwrt.org/t/new-xiaomi-router-ac2100/48101
有一大帮国际玩家云集,Schuster版本地址也在那里。
只需三个文件如:
openwrt-ramips-mt7621-xiaomi_mi-router-ac2100-squashfs-kernel1.bin
openwrt-ramips-mt7621-xiaomi_mi-router-ac2100-squashfs-rootfs0.bin
openwrt-ramips-mt7621-xiaomi_mi-router-ac2100-squashfs-sysupgrade.bin
先刷入前面两个文件,之后用sysupgrade.bin更新一下即可。
3. 漏洞注入:降级到漏洞版本后,通过下面web命令开启SSH。
3.1 使用管理密码登录管理页面,登录后地址栏链接应为:
http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/web/home#router
这里的关键是<STOK>号,每台机器不同,甚至每次登录都不同,拷贝下来备用。
3.2 在浏览器地址栏中输入以下链接代码,注意替换掉<STOK>部分:
http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B
返回{"code":0}即代表成功,如果返回401错误,原因可能是版本不正确或者<STOK>值错误或者链接输入不完整等。
root密码请自行根据SN计算;不想计算的或不知道怎么计算的,可以更改管理员root密码的方式得到(此法更方便)。
3.3 更改管理员root密码的方法:通过如下命令更改root密码为admin,在浏览器地址栏中输入以下链接代码,注意替换掉<STOK>部分(有时stok值会发生改变,建议重新返回登录页面复制最新的stok值):
http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B
重启即可开启SSH,建议一键注入后需等待一些时间,保证路由器后台能正确处理注入信息后再重启。
4. 登录SSH进行刷机:
4.1 重启后,通过winscp登录192.168.31.1用户为root密码为刚才改过的admin。先把openwrt的两个rom文件(xxx-kernel1.bin和xxx-rootfs0.bin)上传到路由器tmp目录。
4.2 再用putty登录192.168.31.1进行刷机操作,输入如下命令进行刷机:
        nvram set uart_en=1&&nvram set bootdelay=5&&nvram set flag_try_sys1_failed=1&&nvram commit        mtd write /tmp/xxx-kernel1.bin kernel1        mtd -r write /tmp/xxx-rootfs0.bin rootfs0
注意上面rom文件的文件名,把xxx替换成你自己用的rom文件名。
刷完后将重启,刷机大功告成,之后便是openwrt路由的设置了。

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|六六七八八八

GMT+8, 2025-1-23 11:19 , Processed in 0.027452 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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