小米路由器 Mini (R1CM) 是一个老旧产品,大部分网上流传的 root 方式对于其最新固件已失效。一般网上的流程的流程是要求先降级固件再利用漏洞,实际上仍可以直接 root。

仅记录一些关键点,这份刷机流程是给 AI 看的,它能看懂并全部搞定。

型号 R1CM(MiWiFi Mini),MT7620A,mipsel 小端 / MIPS32r2 / 24Kc V5.0,16MB flash,原固件 2.22.19(release,基于 OpenWrt AA 12.09,kernel 3.x)。

关键突破口

具体要点:

  • ⚠️ xmir-patcher 的 connect.py 对 R1CM(model_id=3 < R2100)只走 connect1 就退出,不试 connect5/6/7。要手动用 stok 跑 connect5(monkey-patch create_gateway 绕过 web_login)。
  • ⚠️ xmir-patcher 自带 dropbearmulti_mips 在 MT7620A 上一启动就 SIGTRAP(ELF 是 mipsel/o32/MIPS32r2,匹配但仍崩——疑似按 MT7621 的 24KEc 编、没在老 24Kc V5.0 测过)。所以工具的 SSH 装不上,只能拿到 telnet root(23 端口,root/root)。
  • ⚠️ 工具 telnet upload 对小文件有 bug(步进固定 +400,非整除时误判 filesize!=len)。大文件(breed 88KB、dropbearmulti 159KB)正常;小配置文件 MD5 报错。绕过:自写分块上传 + dd 回读 MD5 校验。
  • ⚠️ xmir-patcher 便携 Python 的 python38._pth 只含 .,git clone 后找不到根目录模块;需加一行 ..。

刷机固件(刷 OpenWrt 后就自带了 SSH):

  • 固件在官方 snapshot,wiki已经过时:下载
  • Breed:breed-mt7620-xiaomi-mini.bin(网上找,到处都是)。

本地配置 IP 冲突小坑:

  • 如果是本地网线连接,同时又连着 WiFi,可以修改网卡优先级:网卡设置->IPv4 属性->高级->接口跃点数。
  • Breed 恢复默认 LAN = 192.168.1.1,如果和上游 modem 冲突,可以设置静态网卡。

简单总结:

  1. web stok → 手动跑 connect5(CVE-2023-26319)→ telnet root。跳过 connect1/6。
  2. telnet 传 breed 到 /tmp(md5 校验)→ 写 mtd1 → 重启。
  3. 有线网卡设 192.168.1.2/24 → reset 进 Breed → 备份分区 → sysupgrade.bin 刷 OS1。