上个月极低的价格得到一台CR6606和一台CR6609, 一直没时间研究, 终于趁春节假期把这两个都刷成 OpenWRT

配置说明

  • CPU: MT7621AT,双核880MHz
  • 内存: NT5CC128M16JR-EKI 或 M15T2G16128A, 256MB
  • 闪存: F59L1G81MB, 128MB
  • 无线基带芯片(BB): T7905DAN
  • 无线射频芯片(RF): MT7975DN
  • 无外置FEM芯片,使用MT7975DN内置PA和LNA

配置和R3G相比是很像的, 区别就是升级了无线基带和射频芯片, 支持 WiFi6 支持 mesh. 但是去掉了USB口.

MT7905DAN + MT7975DN 组成了 MT7915D, 2.4G和5G均支持 2x2 MIMO, DBDC(双频并发), 2.4G最高速率574Mbps,5G最高速率1201Mbps. MT7975DN+MT7905DAN的发热量比 MT7603 + MT7612 要大一些, 因此功率也更大, 散热片比R3G更大.

相关连接

相关链接

OpenWRT 下载

https://firmware-selector.openwrt.org/

在上面搜对应的型号, 例如 Xiaomi Mi Router CR6609

Breed下载

https://breed.hackpascal.net/

拉到底下, 在 r1338 [2021-12-16]/ 目录下, 搜 r3g.

CR6606 CR6608 CR6609 用的都是和小米 R3G 一样的 breed, 这个版本可以用于刷入 OpenWRT 上下载的固件

最新的版本是 r1416 [2022-07-24] (git-46ae2a1), 但是这个版本不能直接支持从 OpenWRT 下载的固件, 原因可以看 这里, 所以只能用旧一点的 r1338 版本

带SSH的降级固件

6606 1.0.103 链接: https://pan.baidu.com/s/1kn68F2M019rHB7PWqRYnCA 提取码: 9c92

刷机过程

CR660x 这一系列的型号属于小米给运营商的定制版, 在小米路由的官网上是不存在的, 所以也就不可能通过官方下载"开发版ROM"开启SSH烧录第三方系统. 开启SSH的方式主要有 TTL 和 getToken 漏洞两种方式

通过TTL获取SSH权限

通过TTL开启SSH相对简单, 不需要复杂设置, 如果有TTL2USB模块优先用这种方法, 但是不是所有设备都能用

有一台CR6609 电信版的版本是"系统版本: 1.0.41 稳定版", 不需要降级直接用TTL方法就可以进SSH, root口令和admin密码一样, 在背面的标签上

而另一台 CR6606, 版本是"系统版本: 1.0.134 稳定版", 这个版本在TTL下没有命令行输入功能, 需要降级到 1.0.103, 通过

背面把靠近wan口天线位置, 用水口钳剪掉一两根塑料打开一个口子, 方便刷机探针伸进去连里面的TTL口, 从网口那一侧往外4个焊盘分别是 VCC, RX, GND, TX, 如果不确定可以用万用表测一下, VCC的电压是3.3, GND是0, 其它两个都是3.2左右.

用刷机针接到TTL上, 只需要接RX, GND, TX三根线, 分别对应TTL的 TX, GND, RX, 码率 115200, 要在上电之后再连, 否则路由器不启动. 在日志输出结束后, 回车可以看到命令行提示符.

在电脑的串口终端上顺序执行这4个命令

nvram set ssh_en=1
nvram commit
sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear
/etc/init.d/dropbear start

之后电脑和路由器之间连上网线, 就可以用ssh访问了.

通过小米路由的getToken漏洞开启SSH

这种方式相对复杂, 有一台 CR6606 通过 TTL 访问只有日志输入没法输入, 所以不得不用这种方式. 这种方式需要有电脑和另一台路由器配合

  1. 辅助路由器的LAN IP设置为 169.254.31.x 网段, 除了 169.254.31.1, 169.254.31.2 以外的任意一个IP, 因为31.1是电脑用的要提供链接地址, 31.2是待破解的CR660x用的默认地址
  2. 电脑的LAN IP设置为固定IP 169.254.31.1 用于启动http服务为目标CR660x路由器提供破解命令, 运行python脚本(内容附后), 命令sudo python server.py
  3. 如果电脑是Ubuntu 记得把80端口防火墙打开, 命令是 udo ufw allow 80/tcp, 查看实际的设置sudo ufw status,
  4. 电脑用网线连上辅助路由器的LAN口, 这时候从辅助路由器应该要能访问到 http://169.254.31.1 看到正确的输出, 如果没有输出则需要检查python服务是否启动, 端口是否生效, 防火墙是否打开
  5. 辅助路由器的2.4G WIFI 设置一个简单点的名称和密码, 方便下面输入

注意此时的连接状态是, 辅助路由器的LAN口连着电脑的LAN口, 其它没有任何连接, 后面也不需要动

下面是CR660x上的操作

  1. 首先要降级到一个可以开启SSH的版本, CR6606降级到 1.0.103
  2. 启动后, 从电脑用WIFI连接, 连接上进入管理后台后, 从链接地址中拿到 stok 字符串值
  3. 使用链接让CR660x连上辅助路由器的WIFI, 链接: http://[CR660x地址]/cgi-bin/luci/;stok=[刚才拿到的stok]/api/misystem/extendwifi_connect?ssid=[辅助路由器WIFI的SSID]&password=[辅助路由器的WIFI口令]

    如果操作正确, 这里会响应{"msg":"connect succces!","code":0}, 同时从电脑可以ping通 169.254.31.2 这时候说明可以从CR660x访问到你的电脑了, 如果ping不通说明前面操作有问题, 需要检查
  4. 使用链接让CR660x执行伪造的getToken指令打开, 链接: http://[CR660x地址]/cgi-bin/luci/;stok=[刚才拿到的stok]/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx 后面的三个xxx不需要动

    如果操作正确, 这里会响应{"token":"; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\u0022debug\u0022/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;","code":0}, 此时CR660X上的ssh就已经打开了

从电脑可以ssh连接CR660X, 口令在 http://mi.avue.cn/ 上通过序列号计算可以得到. 后续步骤跳到"写入breed"

附: python脚本, 因为请求可能是 GET 也可能是 POST, 所以两种method都要

from http.server import BaseHTTPRequestHandler, HTTPServer
import json class SimpleServer(BaseHTTPRequestHandler):
def do_GET(self):
print("It comes!")
data = {
"code": 0,
"token": "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"
}
self.send_response(200)
self.end_headers()
self.wfile.write(json.dumps(data).encode()) def do_POST(self):
print("It comes!")
data = {
"code": 0,
"token": "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"
}
self.send_response(200)
self.end_headers()
self.wfile.write(json.dumps(data).encode()) server_address = ('0.0.0.0', 80)
httpd = HTTPServer(server_address, SimpleServer)
httpd.serve_forever()

写入 breed

能ssh访问后, 从电脑上通过scp将 breed 上传到路由器

scp breed-mt7621-xiaomi-r3g.bin root@192.168.2.1:/tmp/

然后在路由器的ssh里面, 使用mtd命令写入

mtd write breed-mt7621-xiaomi-r3g.bin Bootloader

写入成功后, 关闭电源, 用针顶住reset孔, 然后上电, 待两个灯快速闪烁时就可以松开顶针. 连接任意LAN口到电脑, 电脑会获取到 192.168.1.x 网段的地址, 此时访问 http://192.168.1.1 就能访问 breed 界面

在"小米 R3G Bdata" 界面可以看到当前路由器的型号和配置信息.

之后如果已经刷入了 Breed, 可以在 Breed 界面上用写入 Bootloader 的方式写入新的 Breed.

写入 OpenWRT

  1. 进入 Breed, 在"固件更新"界面上, 选择闪存布局为"小米路由器 3G 固件 1", 在固件栏, 选择从 OpenWRT 下载的 kernel.bin 包写入. 待其重启
  2. 上一步写入后, 路由器上就有基础的OpenWRT系统, 但是文件系统还没初始化, 做任何设置都不会保存.
  3. 重启后在电脑获得IP后, 默认是192.168.1.1, 访问 http://192.168.1.1 可以进入 OpenWRT 界面(口令为空), 在 OpenWRT 界面上会提示仅有基本文件系统需要升级System running in recovery (initramfs) mode., 到升级界面, 选择结尾为 sysupgrade.bin 的固件升级, 重启后就升级完成了.

小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5的更多相关文章

  1. 极路由2(极贰)ROOT并刷了OpenWrt

    绕过官方的ROOT 查了一下root教程, 如果还需要保留保修, 则需要自己想办法回退版本, 下载搜狐插件到sd卡, 找个linux系统修改sd卡上程序的执行权限, 然后才能开启ssh, 具体的方法可 ...

  2. 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...

  3. wr720n v4 折腾笔记(二):刷入不死Uboot

    0x01 前言 接着上节刷入Openwrt开始说起,此次开始刷入不死Uboot,刷入之后就可以在Uboot里面随便刷机,再也不怕成砖了. 固件附件地址: 下载地址1(还是之前一的包) flash文件地 ...

  4. 小米路由器3G R3G 刷入Breed和OpenWrt 20.02.2 的记录

    小米 R3G 参数 Architecture: MIPS Vendor: Mediatek Bootloader: U-Boot System-On-Chip: MT7621 family CPU/S ...

  5. 如何在ubuntu中启用SSH服务

    如何在ubuntu14.04 中启用SSH服务 开篇科普:  SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为 ...

  6. 斐讯K2 V22.X.X.X 新版固件 刷机教程 (开telnet,安装SSH,adbyby,刷breed,华硕Padavan)

    源:http://www.right.com.cn/forum/thread-191833-1-1.html 属于我的上一个帖子的升级版,基本属于无脑操作,点击恢复就可以自动刷好breed,浏览上传新 ...

  7. 关于小米4电信4g刷入第三方ROM无信号解决办法

    from: http://www.yuwantb.com/xiaomi4-lineage-os.html   关于小米4电信4g刷入第三方ROM无信号解决办法 下载这个电信4g补丁包. 链接:http ...

  8. MIUI7系统如何刷入开发版启用root超级权限

    小米的手机或平板不同手机型号通常情况MIUI官方论坛都提供两个不同系统,大概可分为稳定版和开发版,稳定版没有提供root权限管理,开发版中就开启了root权限,很多情况我们需要使用的一些功能强大的AP ...

  9. 小米5安装Xposed框架——需要解锁刷机

    Xposed官网 https://forum.xda-developers.com/xposed 官方模块厂库 https://repo.xposed.info/ 中文站点 https://xpose ...

  10. 树莓派4B无屏幕连接Wi-Fi/启用ssh/创建用户

    前边总得说点什么 最近每次在Win10上写代码需要启动Redis,残血Redis For Windows有卡死系统的bug.由于主机内存不大够用(已经扩到顶了),开虚拟机运行Redis更别提了..想起 ...

随机推荐

  1. Java中的Servlet基本概述

    1 Servlet基本生命周期 一个Servlet是HttpServlet的子类,由支持Servlet的服务器完成该子类的对象初始化的工作.当有多个客户端请求同一个Servlet时候,servlet引 ...

  2. golang之设计模式

    [选项模式] package main import "fmt" type OptionFunc func(*DoSomethingOption) type DoSomething ...

  3. k8s之集群部署(kubeadm)

    [master&node] 1.修改主机名 hostnamectl set-hostname master-01 cat >> /etc/hosts << EOF 17 ...

  4. 【项目学习】Pendle 项目的简单调研

    项目介绍 将 1 ETH 质押成 1 stETH,年利率为 5%,那么到期后 1 stETH 就能收回 1 ETH(本金)+ 0.05 ETH(收益).而 Pendle 所做的就是把 1 stETH ...

  5. HTML5 进度条

    1. <progress>标签 进度条 value属性:规定进程的当前值.默认为0 max属性:规定需要完成的值. PS:这里没有最小值设置,或者说最小值一律为0 <progress ...

  6. 德承工控机DA-1000 RS-485串口设置

    由于一般情况下调试串口常使用RS-485转USB接口来进行调试,但是USB接口在长时间的调试下,接口容易松动,通讯也比较不稳定容易中断,所以改为DB9接口的RS-485来调试,稳固不松脱.抗干扰能力强 ...

  7. 开启生态新姿势 | 使用 WordPress 远程附件存储到 COS

    在看到这篇文章前,你大概已经听说过 WordPress 了,它是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以把 WordPres ...

  8. 6.MySQL性能优化

    参数 作用范围 全局:对实例的所有会话起作用 会话级:只对当前会话起作用 set session binlog_rows_query_log_events = on; set global binlo ...

  9. 在docker中使用主机串口通讯

    在进行软件docker化的过程时,很大的一个阻碍就是软件与各种外围硬件设备的交互,网口通信的设备能够很容易地接入容器,但是串口设备则要复杂一些.本文讨论在windows和linux下docker容器使 ...

  10. docker-compose安装mongo

    创建目录 [root@localhost tools]# mkdir -p /root/tools/mongo/{data,conf,init} 创建初始化用户脚本 [root@localhost m ...