一、准备工作

硬件准备:

  • 一台电脑;

  • 一台 Redmi AX6000,电脑与路由器之间使用网线或者无线wifi连接;

软件准备:

注意事项:

  • 在刷机前备份当前路由器的配置文件,以防万一刷机失败,可以恢复到刷机前的状态。

  • 刷机过程中,保持电源稳定,避免突然断电导致刷机失败。

⚠️ 重要提醒:刷机有风险,刷机需谨慎,请在了解以及掌握一定的相关知识后再决定是否进行刷机。

二、解锁路由器SSH

主要步骤如下:

固件降级

当前固件版本为1.0.67,此版本无需刷固件即可解锁SSH。(如果不)

获取stok

路由器的stok:打开路由器的web端管理界面,输入管理员密码,从上方地址栏即可获得stok

管理界面地址为:

http://<ip>/cgi-bin/luci/;stok=<stok_token>/web/home#router
  • 默认的ip为:192.168.31.1(我这里是用做旁路由,对应的ip是192.168.31.15,需要根据实际情况判断;)

  • stok的值对应的就是stok_token每次路由器重启,stok值都会改变。

开启Redmi AX6000的开发者模式

1. 更改路由器的crash分区,使其进入到开发者模式

在浏览器地址栏输入:

http://<ip>/cgi-bin/luci/;stok=<stok_token>/api/misystem/set_sys_time?timezone=%20%27%20%3B%20zz%3D%24%28dd%20if%3D%2Fdev%2Fzero%20bs%3D1%20count%3D2%202%3E%2Fdev%2Fnull%29%20%3B%20printf%20%27%A5%5A%25c%25c%27%20%24zz%20%24zz%20%7C%20mtd%20write%20-%20crash%20%3B%20

2. 特殊方法重启路由器

在浏览器地址栏输入:

http://<ip>/cgi-bin/luci/;stok=<stok_token>/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

3.设置Redmi AX6000的Bdata参数

在浏览器地址栏输入:

http://<ip>/cgi-bin/luci/;stok=<stok_token>/api/misystem/set_sys_time?timezone=%20%27%20%3B%20bdata%20set%20telnet_en%3D1%20%3B%20bdata%20set%20ssh_en%3D1%20%3B%20bdata%20set%20uart_en%3D1%20%3B%20bdata%20commit%20%3B%20
  • 设置参数telnet_en、 ssh_en、uart_en;

  • token替换成路由器新的stok;

4.再次使用特殊方法重启路由器

在浏览器地址栏输入:

http://<ip>/cgi-bin/luci/;stok=<stok_token>/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

5.通过telnet开启ssh

在Windows Terminal中输入指令:

telnet 192.168.31.15

输入后会直接进入【ARE U OK】的界面,表示telnet成功。需要根据设备的SN码计算初始密码:https://miwifi.dev/ssh

进入telnet后,输入指令开启ssh并修改密码为admin:

bdata set boot_wait=on
bdata commit
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
echo -e 'admin\nadmin' | passwd root

6.永久开启 ssh

目前从telnet开启的ssh,路由器重启会失效,因此添加一个开启自动运行的脚本,来实现自动开启 ssh。缺点就是恢复出厂设置或重新刷机后需要重新添加。

mkdir /data/auto_ssh && cd /data/auto_ssh
curl -O https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh
./auto_ssh.sh install

7.关闭Redmi AX6000的开发者模式

新开一个Windows Terminal窗口,ssh连接进去,输入指令清除crash分区并重启:

mtd erase crash
reboot

8.修复时区异常

用上述方法开启ssh后,可能会导致路由器时区异常,在ssh中执行以下指令即可:

uci set system.@system[0].timezone='CST-8'
uci set system.@system[0].webtimezone='CST-8'
uci set system.@system[0].timezoneindex='2.84'
uci commit

三、刷入mt798x uboot

刷机方案介绍

使用官方固件

  • 通过SSH命令行安装所需插件。

  • 优点:可以方便地恢复到官方版本,适合对系统稳定性有要求的用户。

刷入第三方固件

第三方固件通常有两个版本:

  • 官方分区版:基于官方固件的分区大小,固件体积受限,仅能安装基本插件,但易于恢复到官方固件。

  • Uboot大分区版本:利用路由器的全部128M ROM空间,允许安装更大体积的固件和更多插件,提供更多自定义选项。

Uboot版本的优点是刷写第三方固件更为方便,且不易变砖,而且还可以直接通过uboot刷入官方固件(注意是修改版的官方固件,不是直接从官方下载的固件)。

  • 刷写过程存在一定风险,需要确保不断电。

mt798x uboot 项目地址:https://github.com/hanwckf/bl-mt798x

备份原厂分区

所需要准备的工具有hanwckf大神编译的红米AX6000 uboot大分区版的openWRT固件,并通过scp工具上传到路由器。

官方固件解锁后SSH软件登录路由器查看原厂分区,可以看到原厂的ubi和ubi1两个固件分区是30MB,ubinfo -a查看实际可用29MB

cat /mtd
cat /partitions

重要:刷机之前我们可以用命令行备份几个原厂的分区,这样以后还可以通过备份恢复到官方固件

# 运行dd命令备份分区到tmp文件夹
dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin
dd if=/dev/mtd2 of=/tmp/mtd2_Nvram.bin
dd if=/dev/mtd3 of=/tmp/mtd3_Bdata.bin
dd if=/dev/mtd4 of=/tmp/mtd4_Factory.bin
dd if=/dev/mtd5 of=/tmp/mtd5_FIP.bin
  • 通过WinSCP等SCP协议软件登录路由器,打开tmp文件夹,将上面的备份文件下载到电脑保存好。

刷入Uboot

所需要准备的工具有hanwckf大神编译的红米AX6000的mt798x uboot文件和237大佬的uboot大分区版的OpenWRT固件,并通过scp工具上传到路由器。

注意:此步骤这里上传的是mt798x uboot文件,非openwrt系统固件

我们需要先刷入uboot 再通过启动uboot来刷入OpenWRT系统

然后逐条输入以下命令,把uboot刷入到FIP分区:

# 验证md5
md5sum /mt7986_redmi_ax6000-fip-fixed-parts-multi-layout.bin
# 下面的操作就是擦出分区和写入uboot的命令了。
## 注意:擦除和写入FIP分区时不能断电、重启,不然路由器就会直接变砖。
mtd erase FIP
mtd write /mt7986_redmi_ax6000-fip-fixed-parts-multi-layout.bin FIP
mtd verify /mt7986_redmi_ax6000-fip-fixed-parts-multi-layout.bin FIP

对比检查最后输出 "Success" 说明刷入已成功

刷入OpenWRT固件

拔掉路由器电源,接着按住路由器的RESET按钮后通电开机,等待15秒后松开RESET。心里默念15秒

注意:红米AX6000官方系统支持WAN、LAN切换,可以随意插网线自动识别,但是刷op后WAN口固定是1口(靠近电源插头的那个口),2-4口是LAN口,网线插LAN口才能获取到IP,登录路由器。

修改静态IP

电脑通过网线连接到路由器LAN口(2-4),然后将电脑的IP手动更改为192.168.31.100/24网段的IP,用Chrome浏览器进入192.168.31.1,就会见到uboot的webui( Web failsafe UI ),在这个webui页面选择要刷入的大分区固件。

注意:图示中的二进制固件包名称可能与网盘中实际提供的不同。随着版本更新,包名会发生变化,请以网盘中的实际文件为准。

  • 选择支持immortalwrt-mt798x固件

  • 这里提示信息表示为:文件上传成功,更新正在进行中,等待设备自动复位!

  • 出现下面的界面说明固件安装完成,等待路由器初始化完成。路由器没有灯光显示,只有通过在无线里面找到以 ImmortalWrt开头的无线名称存在了,我们就可以进行下面的配置了,然后下面中的页面就可以直接关闭了

注意:如果手动修改过IP,那么刷入OP后需要改为DHCP,不然访问不了OP后台管理页面!

四、OpenWrt配置

1、访问后台

  • 默认访问地址是:192.168.6.1 账号密码:root/password

2、网络配置

配置无线密码

接下来就可以开启openwrt的使用之旅。

参考