红米 AX6 刷 openwrt(虚拟机+普通路由+AX6)

准备

电脑 建议笔记本
旧路由
ssh远程终端软件

第一步|降级并恢复出厂设置

下载大佬的上传的红米固件
打开路由器后台选择 系统升级—手动升级—然后选择下载好的固件,等待重启。
然后最好再恢复下出厂设置。

第二步|准备 openwrt 服务

进入旧路由器后台关闭dhcp服务 改地址为169.254.31.100
回复恩山大佬帖子获得工具
加入群聊获得openwrt虚拟机镜像

创建 lua 文件

打开虚拟机镜像输入命令

ip a


ssh 连接上 虚拟机openwrt 的路由器,密码password然后使用 nano 创建 /usr/lib/lua/luci/controller/admin/xqsystem.lua 这样一个文件。

nano /usr/lib/lua/luci/controller/admin/xqsystem.lua

如果你的系统没有 nano 你可以使用 vi 或 vim

vim /usr/lib/lua/luci/controller/admin/xqsystem.lua

文件内容填写下面的保存即可。

module("luci.controller.admin.xqsystem", package.seeall)


function index()
    local page   = node("api")
    page.target  = firstchild()
    page.title   = ("")
    page.order   = 100
    page.index = true
    page   = node("api","xqsystem")
    page.target  = firstchild()
    page.title   = ("")
    page.order   = 100
    page.index = true
    entry({"api", "xqsystem", "token"}, call("getToken"), (""), 103, 0x08)
end

local LuciHttp = require("luci.http")

function getToken()
    local result = {}
    result["code"] = 0
    result["token"] = "; nvram set ssh_en=1; nvram commit; echo -e 'admin\nadmin' | passwd root; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"
    LuciHttp.write_json(result)
end

输入完成后你可以 cat /usr/lib/lua/luci/controller/admin/xqsystem.lua 检查一下。

修改 openwrt 路由器的 Lan 地址,并关闭 DHCP

进入虚拟机openwrt 192.168.1.1
用户root
密码password
改lan地址为169.254.31.1 关闭dhcp
修改pc地址为169.254.31.3
然后浏览器访问:http://169.254.31.1/cgi-bin/luci/api/xqsystem/token,如果得到下面的结果,则证明你设置成功。

第三步|红米 AX 6 破解 SSH

将电脑的网络设置回自动获取 DHCP,然后最好将电脑用网线和 红米 AX6 连接(因为红米 ax6 解锁 Wi-Fi 可能会掉线)。

获取后台 STOK

第一次请求

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/extendwifi_connect?ssid={SSID}&password={Wi-Fi密码}
  • 替换为上面的值

  • {SSID} 替换为 openwrt 路由器的 Wi-Fi 名

  • {Wi-Fi密码} 替换为 openwrt 路由器的 Wi-Fi 密码

<> 和 {} 均需要替换

将替换好的值复制到浏览器请求,如果显示 code 0 则成功。

第二次请求

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx

替换为小米路由器后台获得的值即可,其它均不用改变

将替换好的值复制到浏览器请求,如果显示 code 0 则成功

第四步|验证 SSH 并备份

ssh 连接小米路由器ssh root@192.168.31.1 密码是 admin,如果能 ssh 连接上则证明上述步骤均完成。

链接成功后进行备份

mkdir /tmp/syslogbackup/
dd if=/dev/mtd9 of=/tmp/syslogbackup/mtd9

浏览器请求该地址下载备份

http://192.168.31.1/backup/log/mtd9

第五步|刷入 openwrt 固件

下载固件备用
下载固件:https://pan.baidu.com/s/1NVDSw79g4V18JpucMsBMkw
提取码:fmaw

ssh 连接 红米 ax 设置env
ssh 连接上后复制👇下面执行

nvram set flag_last_success=0
nvram set flag_boot_rootfs=0
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram set boot_wait=on
nvram set uart_en=1
nvram set telnet_en=1
nvram set ssh_en=1
nvram commit

scp 固件 qsdk 固件并刷入

如果下载了这个xmoba就不需要ssh再搞一个winscp了。直接拖就完事了
scp 下载好的 xiaomimtd12.bin 到 红米 AX6 的 /tmp 下面

scp xiaomimtd12.bin root@192.168.31.1:/tmp

并在红米 AX6 上执行

mtd write /tmp/xiaomimtd12.bin rootfs

断电重启红米 AX6,此时红米 AX 6 的后台地址已经变为 192.168.1.1

重新分区

scp 下载好的 a6minbib.bin 到 红米 AX6 的 /tmp 下面

scp a6minbib.bin root@192.168.1.1:/tmp

并在 红米AX6 上执行

. /lib/upgrade/platform.sh
switch_layout boot; do_flash_failsafe_partition a6minbib "0:MIBIB"

拔电源重启路由器

openwrt刷入到rootfs_1分区
scp 下载好的 openwrt-ipq807x-generic-xiaomi_ax6-squashfs-nand-factory.bin 到 红米 AX6 的 /tmp

scp openwrt-ipq807x-generic-xiaomi_ax6-squashfs-nand-factory.bin root@192.168.1.1:/tmp

在红米 AX6 上执行刷入

ubiformat /dev/mtd13 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax6-squashfs-nand-factory.bin
fw_setenv flag_last_success 1
fw_setenv flag_boot_rootfs 1

红米 AX6 执行命令重启

reboot

重启后完成,系统应该已经是 openwrt 系统了。