红米 AC2100 刷入 Padavan/OpenWRT

参考 jinglei207 的教程,感谢前人的工作

准备工作

请先看完一遍教程,将工具和需要下载的文件准备好,会大大简化之后的操作

降级固件

和早期的小米路由器不同,官方不再提供 ssh 解锁包,下载 2.0.7 版本固件,通过浏览器管理界面“升级”固件

获取 SSH 权限

  1. 登录路由器管理界面,在地址栏找到 stok​ 字符串

  2. 将地址栏 stok=example/​ 字符串后的内容删除,替换成以下内容

    1
    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
  3. 以下是修改示例

    1
    2
    3
    4
    # 原始 url
    http://192.168.*.*/cgi-bin/luci/;stok=example/
    # 修改后的 url
    http://192.168.*.*/cgi-bin/luci/;stok=example/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
  4. 在浏览器地址栏执行修改后的 url

  5. 如果显示以下内容说明注入成功,ssh 权限已开启

    1
    {"code":0}

获取 root 密码

通过路由器 S/N 计算

参考方案来自 xiaooloong,S/N 可以在管理界面或路由器底部找到

请在上方输入 S/N

通过漏洞直接修改

  1. 参考漏洞注入部分的方法,将你的 stok=example/​ 字符串后的内容删除,替换成以下内容

    1
    api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B
  2. 密码将被修改为 admin

  3. 在浏览器地址栏执行修改后的 url

备份固件

  1. 可以使用 Breed 备份,但还是建议尽早备份固件,就算编程器可以恢复,固件也不好找

  2. 查看闪存中的所有分区,其中 Bdata 中存放了路由器的 S/N 信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    cat /proc/mtd

    dev: size erasesize name
    mtd0: 07f80000 00020000 "ALL"
    mtd1: 00080000 00020000 "Bootloader"
    mtd2: 00040000 00020000 "Config"
    mtd3: 00040000 00020000 "Bdata"
    ... ...
    mtd15: 021e8000 0001f000 "data"
  3. 使用 SSH 客户端连接路由器,备份原有的 BootLoder(uboot)到路由器的 /tmp​ 目录

    1
    dd if=/dev/mtd1 of=/tmp/xiaomi_Bootloader.bin
  4. 建议备份一下 Bdata 和 ALL 分区

    1
    2
    dd if=/dev/mtd3 of=/tmp/xiaomi_Bdata.bin
    dd if=/dev/mtd0 of=/tmp/xiaomi_All.bin
  5. 使用 WinSCP 将备份的固件下载到本地

关于坏块

红米 AC2100 的坏块问题严重,但是最新的 Breed 刷入固件时可以跳过坏块,这个问题也咨询过 Padavan 的开发者 HiBoy,放心使用 Padavan、OpenWRT 等第三方固件

  1. 查询坏块

    1
    dmesg | grep eraseblock
  2. 大部分都是 14、15、768

    1
    2
    3
    [    2.990000] Bad eraseblock 14 at 0x0000001c0000
    [ 3.000000] Bad eraseblock 15 at 0x0000001e0000
    [ 3.310000] Bad eraseblock 768 at 0x000006000000

连接校园网

请参考 Padavan 校园网 的替换和配置 mentohust 部分

写入 Breed

  1. 下载:breed-mt7621-xiaomi-r3g.bin

  2. 将固件上传到路由器的 /tmp​ 目录,有命令行恐惧症的朋友可以使用 WinSCP

  3. 如果路由器能联网也可以使用以下命令下载

    1
    2
    cd /tmp
    wget https://breed.hackpascal.net/breed-mt7621-xiaomi-r3g.bin
  4. 刷入 Breed,瞬间就能完成

    1
    mtd -r write /tmp/breed-mt7621-xiaomi-r3g.bin Bootloader
  5. 等待路由器重启成功后再进行后续操作,不要断电

写入固件

  1. 下载 Padavan 固件:https://opt.cn2qq.com/padavan/,找到 RM2100_3.4.3.9-099.trx

  2. 也可以选择 OpenWRT 固件,推荐到 https://openwrt.ai/ 在线定制

  3. 在断电情况下,按住路由器的 reset​ 键并接通电源,使用 WAN 口连接电脑,浏览器访问 192.168.1.1​,此时应该能进入 Breed 后台,选择固件更新,上传刚才下载好的固件,建议顺便备份一下编程器固件

  4. 重启应该较久,可以先重新连接 LAN 口,等指示灯变蓝后,进入 Padavan 管理界面

    • Padavan 的默认管理地址为 192.168.123.1​,第一次启动请耐心等待
    • Padavan 后台的默认用户名 admin​,密码 admin
    • Padavan 的默认无线名称 PDCN​ ,密码 1234567890

image


红米 AC2100 刷入 Padavan/OpenWRT
https://1doublehelix.github.io/rm-ac2100-padavan
作者
Feizhong
发布于
2023年9月22日
许可协议