执行刷机操作需要的设备:一台电脑、一根连接电脑和路由器的网线、AX6000。
一、登录路由器后台,确认官方固件版本
打开浏览器,输入192.168.31.1,登录路由器后台,现在我这里默认你的是一个已经配置好网络的路由器,你可以来到如下图所示的地方
检查版本是为了查看当前路由器是否能够通过漏洞开启ssh来进行固件的刷入,若当前路由器版本为1.0.60、1.0.48、1.0.28,则可以直接进行下面的步骤。若不是,则要手动将固件版本进行降级,我知道的办法有两个,第一个是OpenWrt官方提供的降级方法:当你上传完固件,提示升级注意的时候,将浏览器地址栏的url最后的0改为1然后回车,就可以降级了。如果最后是1可以改为0再回车。第二个则是使用官方的小米救砖工具刷你需要的版本,不过这样太过于麻烦,没有必要。
二、在地址栏的url里获取stok
当你登录进路由器的后台,url中就会生成一段stok的token,你每次重启路由器,该token都会改变。
三、开启路由器的开发者模式来开启ssh
在浏览器地址栏里输入以下网址:
http://192.168.31.1/cgi-bin/luci/;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
将你前面获取的token替换掉网址中的token,回车,要是网页中出现了{“code”:0},那么你的操作成功了,要是出现了{“code”:401,”msg”:”Invalid token”},那么你的token是错误的,请重新获取token再次进行该操作。然后再往浏览器地址栏内输入下面的网址,也需要将你获取的token替换掉网址中的token,回车后,你的路由器将会重启,也就开启了开发者模式。
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20
重启完成后,你就可以设置路由器的Bdata参数,来永久开启telnet,这里你要重新获取路由器的stok,替换掉下面网址中的token。
http://192.168.31.1/cgi-bin/luci/;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
要是网页中出现了{“code”:0},那么你的操作成功了,要是出现了{“code”:401,”msg”:”Invalid token”},那么你的token是错误的,请重新获取token再次进行该操作。然后你就可以通过下面的网址来重启路由器了。
http://192.168.31.1/cgi-bin/luci/;stok=token/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20
四、开启ssh
现在我们可以使用mobaxterm来通过telnet开启ssh了,没有mobaxterm的可以去它的官网上下载。我们现在打开mobaxterm,如下图所示,点击左上角的Session,然后选中telnet,在下面输入192.168.31.1,然后点击OK。
登录完成后我们可以输入以下的命令
echo -e 'admin\nadmin' | passwd root
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
下面的操作你就要注意了,你这个时候要让路由器处于联网状态,然后输入以下命令
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
uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall
要是下载报错了,你可以尝试将命令中的https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh复制到浏览器上去,看能不能下载,如果可以下载,那么说明你的路由器不知道出现了什么问题导致无法下载auto_ssh.sh,那么你就可以通过mobaxterm的文件上传功能来解决,如下图所示。
你在左栏中点击来到/data/auto_ssh文件夹里,点击图中红框内的按钮,将你下载好的文件auto_ssh.sh传进去。再执行如下代码
cd /data/auto_ssh
chmod +x auto_ssh.sh
uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall
然后修改时区设置,输入以下命令
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
关闭开发者模式并重启
mtd erase crash
reboot
五、刷入官方分区版固件
在mobaxterm使用ssh连接路由器,如下图所示
登录进去后,先输入下面的命令
cat /proc/cmdline
查看firmware=1还是0
如果是0,执行如下命令
nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=1
nvram set flag_last_success=1
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit
cd /tmp
curl -L https://share.qust.me/d/%E8%B7%AF%E7%94%B1%E5%99%A8/redmi-ax6000/initramfs-factory.ubi -o initramfs-factory.ubi
ubiformat /dev/mtd9 -y -f /tmp/initramfs-factory.ubi
reboot -f
如果是1,则执行如下命令
nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=0
nvram set flag_last_success=0
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit
cd /tmp
curl -L https://share.qust.me/d/%E8%B7%AF%E7%94%B1%E5%99%A8/redmi-ax6000/initramfs-factory.ubi -o initramfs-factory.ubi
ubiformat /dev/mtd8 -y -f /tmp/initramfs-factory.ubi
reboot -f
如果你的路由器还是不能下载initramfs-factory.ubi,那么你还可以使用上面通过ssh上传文件的方法,先来到/tmp下,点击红框内的按钮,将文件上传,上传完成后,你再执行如下命令
cd /tmp
ubiformat /dev/mtd8 -y -f /tmp/initramfs-factory.ubi
reboot -f
然后路由器就开始刷入固件进行重启了。
刷入完成后,你可以在浏览器内输入192.168.15.1进入路由器后台,用户名:admin,密码:admin
下一步我们就可以将X-wrt的过渡固件到完整版,点击系统-备份与升级,选择刷写新的固件。
选择我在下面提供的开头为x-wrt的镜像,去掉保留当前配置,要是镜像检查失败了,请勾选强制升级,点击继续,升级完成后,我们就可以刷入OpenWrt镜像了。
六、刷入OpenWrt镜像
刷入镜像之前我们需要开通ssh服务,这个后台会默认关闭ssh服务,需要我们手动去开通,我们先点击系统-管理权-SSH访问,勾选密码验证和允许root用户凭密码登录,然后点击保存并应用,我们就可以通过ssh登录输入命令了。
打开mobaxterm,选择ssh,输入地址192.168.15.1,用户名是root,密码是admin,登录后输入以下命令运行
fw_setenv boot_wait on
fw_setenv uart_en 1
fw_setenv flag_boot_rootfs 0
fw_setenv flag_last_success 1
fw_setenv flag_boot_success 1
fw_setenv flag_try_sys1_failed 8
fw_setenv flag_try_sys2_failed 8
执行完命令后,和前面一样的操作,选择ax6000-full.bin,我个人推荐使用ax6000-full.bin,full相对于mini多了集成插件,在我后面的教程中,选择full也可以省下很多功夫。刷入完成后,我们就可以登录我们的OpenWrt了,在浏览器地址栏输入192.168.6.1,用户名为root,密码为password。
七、刷入新版的OpenWrt
我们现在刷入的OpenWrt版本为18.06,版本过于落后,而刷入该新版的OpenWrt不能以前面的方式进行刷入,所以我下面再次详细的讲一下刷入新版OpenWrt的方法。
点击左栏的系统,再点击文件传输,选择我给你ax6000-stock.bin文件,点击上传,然后再点击展开的最后一个(旧版和新版的名称有所不同,我忘记叫什么了),在终端里输入用户名和密码,登陆后,输入我给你的命令
cd /tmp/upload
sysupgrade -F -n /tmp/upload/ax6000-stock.bin
然后我们就可以等待系统升级了。
下面是这次教程所要用到的镜像
题外话
这里首先感谢恩山论坛的大佬237176253的辛勤付出,下面是他的帖子[1-6]红米ax6000闭源驱动op/GL.inet固件,有兴趣的可以去看一下。
最后就是我这个刷了三次机的冤种的一些经验教训的总结
- 你做完我的OpenWrt系列的教程后,请在系统的备份与升级里面备份文件,记住,要保存起来,别弄丢了。
- 我建议你下载软件请使用系统的软件包里下载,备份文件会把你在软件包里面下载的软件一起备份,在istore里下载的软件则不会进行备份,你要是认为你不怕麻烦,你就可以直接去istore里安装。
- 你要是乱下载软件把路由器的空间都用光了,使用恢复出厂设置是不会将空间清理出来的,只能通过刷写新的固件来将空间清理出来,要选择我给你的ax6000-stock.bin,不要勾选保留原来的配置,刷完后使用上面的备份文件恢复原样。原因是这个版本的OpenWrt使用的是sysupgrade,它只能写入文件,不能对文件进行删除。
- 你执行上面的刷写固件的操作有可能会遇到你输入正确的用户和密码都无法登录,解决办法是换一个浏览器进行登录。
- 这是最重要的一点,你要是小白,你没事干也不要在immortalwrt里面找关于你路由器型号的镜像,里面的是没有经过大佬修改的镜像,你拿来用就是白板一块,很多东西都需要你自己重新去弄,界面也远远不如上面的美观,你要是刷了不想要,想要改回去,我可以很确定的告诉你,你大概率改不回去,你要是用刷入新固件的话你就喜提一块塑料砖头,只能用小米救砖工具了。
- 这一部分也很重要,你如果觉得路由器空间太小,所以在网上搜到了关于修改镜像就能扩大路由器使用空间变大的教程。你要是小白,我劝你最好不要这样做,大佬除外,你要是把它搞成砖了,小米救砖工具也救不了它,你已经修改了它的分区大小,修改了分区大小的路由器是没办法使用小米救砖工具救砖的。
What do you think?
It is nice to know your opinion. Leave a comment.