准备#
-
电脑,能正常上网,装好下面需要的软件,下载所需的文件
-
一台 OpenWrt 系统的无线路由器(我的是斐讯 K2,固件地址),无线功能要能正常使用 ,没有 OpenWrt 系统路由器的可以用虚拟机安装 OpenWrt。
-
Redmi AX6*N,我有 2 台,所以这教程试了 2 次,确定能用
-
一条网线
-
PowerShell,最好是以 Windows Terminal 界面启动,复制粘贴毕竟方便
-
Xshell,执行 SSH 命令用
-
Unlock Redmi AX3000 完整源代码
-
MiWiFI 1.0.18 官方固件:miwifi_ra69_firmware_45a77_1.0.18.bin
- 确保 AX6 固件是 1.0.18 及以下
连接 AX6,网线或 WiFi 都行,我是网线,为了保证上传固件的稳定性。
浏览器打开 192.168.31.1,登录,在常用设置的系统信息里查看小米官方固件版本号
选择手动升级,选择固件,上传固件,不保留配置进行降级。
降级成功后连上 AX6,设置一下管理页面的登录密码,简单 12345678 就行。
这一步可能会有两个问题:
1、上传固件成功,AX6 在降级重启过程中卡在橙灯常亮,十几分钟没动静。你搜索可能会有人说是变砖,其实不是,耐心多放几分钟,直接断电再通电重启即可进入降级后的 AX6 管理页面。
2、上传失败,提示 XXX 空间已满这类的。检查电脑系统的网络连接,确保以太网和 WiFi 没有同时连接多个路由器或光猫,再重新上传固件降级。
- 网线连接 K2,准备解锁 AX6 的环境
K2 接上网线,打开控制面板 \ 所有控制面板项 \ 网络连接,查看以太网的连接状态。
等识别出网络名称后,在 PowerShell 执行 ipconfig,查看以太网的具体 IPv4 的 IP
我这里是 192.168.5.1,用户名:admin,密码:password
解压下载的 Unlock Redmi AX3000 完整源代码,在文件夹右键用 Windows Terminal 打开,输入以下命令:
scp wireless.sh root@192.168.5.1:/root/wireless.sh
第一个提示是提示你密钥有变化,输入 “yes” 忽略它
第二个提示是要你连接密码,这里我输入密码:password
这两次输入都不会有显示,输入完直接回车即可。
使用 Xshell 连接上 K2 的 SSH,用户名:root,忘记是否需要密码了,如果提示密码,则用:password
直接执行命令:
sh /root/wireless.sh
这里忘记截图,用的网图。
当你看到图上最后一行 Restarting networking,就说明脚本执行完毕
把网线从 K2 上取下来,保持 K2 通电放置一边即可。
- 再次连接 AX6
网线插上 AX6,等待以太网识别成功,打开 192.168.31.1,登录管理页面首页
复制浏览器地址栏的链接:
http://192.168.31.1/cgi-bin/luci/;stok=316a516d2835ce8cd6713e9bc324bfea/web/home#router
链接里标红部分即是 STOK,每一次登录都会变化,复制完这个标签页就放着不动。
只取链接标红部分,替换掉下面链接的 ,<> 不要忽略了:
http://192.168.31.1/cgi-bin/luci/;stok=/api/misystem/extendwifi_connect?ssid=MEDIATEK-ARM-IS-GREAT&password=ARE-YOU-OK
ssid=MEDIATEK-ARM-IS-GREAT,这个是 wireless.sh 自动替 K2 改的 WiFi 名字
password=ARE-YOU-OK,这个就是对应的密码,都不要改动
(如果你用虚拟机设置,可能会在这步出问题)
替换完 STOK,复制整体链接到浏览器打开,等待差不多一分钟,浏览器会出现如下显示,代表成功:
这表示 AX6 已经连接上 K2 的 WiFi:MEDIATEK-ARM-IS-GREAT
再用 STOK 替换下面链接的 ,其它不用修改
http://192.168.31.1/cgi-bin/luci/;stok=/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx
浏览器显示下图表示 SSH 开启成功:
现在刷新 AX6 的管理页面:192.168.31.1
点击 5GHz 密码的眼睛,复制下这个 WiFi 密码,保存好,下面有用。
K2 的任务结束。
回到 Windows Terminal,确认一下当前位置还在 Unlock Redmi AX3000 的文件夹里
把文件夹里的 ax3000.sh 和 fuckax3000 传到 AX6 里,分两次传输
scp ax3000.sh root@192.168.31.1:/etc/ax3000.sh
scp fuckax3000 root@192.168.31.1:/etc/fuckax3000
回到 Xshell,新建 SSH 连接,连接信息是:192.168.31.1,root,刚才复制的 5GHz 密码就是 SSH 密码
登录后执行以下命令:
sh /etc/ax3000.sh dump
看图最后,会提示你下载备份
打开链接:http://192.168.31.1/backup/log/bdata_mtd9.img
下载后标注清楚(如果多台 AX6 的话)留存,以防万一。具体作用我还没弄懂。
- 保留 SSH 的权限
如果越狱过 iOS 的可以用不完美越狱和完美越狱的区别来看待这步。
默认情况下,当路由器恢复出厂设置或者升级后,SSH 权限将会丢失,因此我们需要额外的操作以保留它们
继续在 Xshell 里执行命令:
sh /etc/ax3000.sh unlock
之后 AX6 会自动重启,System 灯变蓝后,重新连接 SSH,再执行:
sh /etc/ax3000.sh hack
设备会自动重启
- 挂载 overlay 空间,方便安装各种软件包和你想要的一些功能
重新 SSH 连接上 AX6,执行:
sh /etc/ax3000.sh mount
AX6 会自动重启,再连 SSH,执行命令:
sh /etc/ax3000.sh keep
到此,解锁 SSH 并保留权限就完成了。下面开始刷你喜欢的 OpenWrt 固件。
========
下载必备的两个文件 xiaomimtd12.bin,a6minbib.bin
- 先扩容分区(这部分原理暂时还没弄清)
默认情况下,AX6 的分区大致在 30MB 左右
如果想多装插件,再算上各种插件需要的相应空间,可用空间就很有限了
虽然不是必须扩容,但是推荐扩容。
先设置系统环境 env 的 nvram,不熟悉的请一行一行的执行命令:
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
回到 Windows Terminal,传输 xiaomimtd12.bin 到 AX6,刷 QSDK 过度固件
再到 Xshell,连上 AX6,执行命令:
mtd write /tmp/xiaomimtd12.bin rootfs
然后断电几秒再通电重启 AX6
重启后的 AX6 不会亮灯,没有坏,可以打开 192.168.1.1 确认是否成功启动
用户名:root,没有密码,然后不用管这个管理页面。
在 WT 传输 a6minbib.bin 到 AX6 的 /tmp 目录下:
scp a6minbib.bin root@192.168.1.1:/tmp
注意 IP 变化了,是 1.1
回到 Xshell 重新连接 SSH,执行命令:
. /lib/upgrade/platform.sh
switch_layout boot; do_flash_failsafe_partition a6minbib "0"
还是断电几秒再通电重启 AX6
第五步没重启等于没扩容,会有这种文件太大的错误
这就完成扩容了,开始刷固件
- 刷入 OpenWrt 固件
下载固件,注意固件里 2 个文件的不同区别:
openwrt-ipq807x-generic-redmi_ax6-squashfs-nand-factory.ubi
openwrt-ipq807x-generic-redmi_ax6-squashfs-nand-sysupgrade.bin
factory.ubi 这个是命令刷固件使用的
sysupgrade.bin 这个是在 OpenWrt 设置里使用,路径是:系统→备份 / 升级
保不保留配置看个人
在 Windows Terminal 传入固件包:
scp openwrt-ipq807x-generic-redmi_ax6-squashfs-nand-factory.ubi root@192.168.1.1:/tmp
到 Xshell 执行命令刷入系统:
ubiformat /dev/mtd13 -y -f /tmp/openwrt-ipq807x-generic-redmi_ax6-squashfs-nand-factory.ubi
fw_setenv flag_last_success 1
fw_setenv flag_boot_rootfs 1
reboot
最后打开 192.168.10.1 设置路由器,用户:root,密码是:admin
整个过程结束!
参考链接,部分步骤忘记截图,图源↓:
红米 AX6 可组网 OpenWrt 固件(稳定不重启)和刷机经验
网上部分固件会不定时的重启,原因