😎 Daily

红米ax6 刷机记录

date
slug
ax6log
author
status
Public
tags
Blog
summary
type
Post
thumbnail
redmi_ax6_2.png
category
😎 Daily
updatedAt
Nov 18, 2024 12:59 PM
 
之前有朋友推荐了红米ax6,在家买了一个。后来到学校之后,也买了一个放在了实验室。一直用的都是官方固件,解锁ssh后使用shellclash。
然后,今年和朋友一起淘了一个阿里云的ap8220,然后使用了QWRT固件,然后真心感觉openclash会用的更舒服一点,并且延迟也会低很多。
因为,ax6和ap8220用的都是高通的IPQ8071A,所以就想着看能不能将红米ax6也刷成QWRT。之后看了下恩山有相关内容,又问朋友要了固件,所以就刷了一下。

1 解锁SSH

1.1 不保留配置降级红米AX6固件至1.0.18

1.2 准备另一台已刷openwrt的路由器B

我使用的第二台路由器是ap8220,用网线将A路由的wan口与B路由的Lan口相连接。
  • 首先,将`wireless.sh` 传入到路由器B
$ scp -oHostKeyAlgorithms=ssh-rsa wireless.sh root@192.168.1.1/root
  • 然后ssh连接到路由器B,
$ ssh -oHostKeyAlgorithms=ssh-rsh root@192.168.1.1
  • 然后在路由器B执行脚本:
# sh /root/wireless.sh

1.3 解锁AX6 ssh

  • 获取AX6后台 STOK
登陆小米路由器后台后,浏览器地址栏 stok= 后面的一段内容,准备好备用。
  • 第一次请求:
    • 将stok替换为刚刚复制的,并填写路由器B的无线ssid和密码
      http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/extendwifi_connect?ssid=路由器B的无线名称(最好是2.4G)&password=路由器B的无线密码
      出现code=0,代表成功
  • 第二次请求:
    • 只替换stok既可,其他不需要改
      http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx
      显示code 0,即为成功

1.4 验证ssh

  • ssh登录AX6,用户名:root,密码:AX6的无线密码(此时密码已改变,需要进后台查看)
  • 链接成功后进行备份
    • mkdir /tmp/syslogbackup/dd if=/dev/mtd9 of=/tmp/syslogbackup/mtd9
    • 在浏览器中请求该地址下载备份
      • http://192.168.31.1/backup/log/mtd9

2 不扩容刷入openwrt固件

首先,SCP连接到A路由,将openwrt固件上传到`/tmp`目录下
$ scp -oHostKeyAlgorithms=ssh-rsa openwrt-5.10.63-redmi_ax6-squashfs-nand-factory.ubi root@192.168.1.1/root
 
然后,SSH登录到A路由,
$ ssh -oHostKeyAlgorithms=ssh-rsh root@192.168.1.1
# 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
# ubiformat /dev/mtd12 -y -f /tmp/openwrt-5.10.63-redmi_ax6-squashfs-nand-factory.ubi
# nvram set flag_last_success=0
# nvram set flag_boot_rootfs=0
# nvram commit
# reboot

若在执行ubiformat命令时,出现 “please, first detach mtd12 (/dev/mtd12) from ubi0”,则将mtd12改成mtd13,后面命令里的0改为1 命令如下:
# ubiformat /dev/mtd13 -y -f /tmp/openwrt-5.10.63-redmi_ax6-squashfs-nand-factory.ubi
# nvram set flag_last_success=1
# nvram set flag_boot_rootfs=1
# nvram commit
# reboot
全程不要拔电源,等待一会儿 ,即可登录openwrt系统。

3 刷入U-Boot

SSH连接到AX6路由器,输入一下命令查看分区确认 mtd1 和 mtd7 的分区是否存在
cat /proc/mtd
会出现以下详细列表:
root@lede:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 000200000:sbl1”
mtd1: 00100000 000200000:mibib”
mtd2: 00300000 000200000:qsee”
mtd3: 00080000 000200000:devcfg”
mtd4: 00080000 000200000:rpm”
mtd5: 00080000 000200000:cdt”
mtd6: 00080000 000200000:appsblenv”
mtd7: 00100000 000200000:appsbl”
mtd8: 00080000 000200000:art”
mtd9: 00080000 00020000 “bdata”
mtd10: 00080000 00020000 “crash”
mtd11: 00080000 00020000 “crash_syslog”
mtd12: 023c0000 00020000 “rootfs”
mtd13: 023c0000 00020000 “rootfs_1”
mtd14: 01ec0000 00020000 “overlay”
mtd15: 00080000 00020000 “rsvd0”
root@lede:~#
首先将,`ax6-uboot-mibib.bin` 和 `ax6-uboot.bin` 传到 `/tmp`
确认无误后开始刷写,SSH连接路由器依次输入以下
cd /tmp
mtd erase /dev/mtd1
mtd write /tmp/ax6-uboot-mibib.bin /dev/mtd1
mtd erase /dev/mtd7
mtd write /tmp/ax6-uboot.bin /dev/mtd7
稍等一会儿,直到重新获取到IP地址。

如何进入U-Boot

使用卡针按住AX6路由器的Reset孔位,插入电源,等五秒钟松开。
然后即可刷入定制化固件。
 

参考