京东云亚瑟 AX1800 Pro 刷机教程

jdcloud_ax1800pro.png

0.准备工作

0.1 刷机所需软件

U-Boot:亚瑟对应版
iStoreOS:亚瑟对应版
OpenWrt:亚瑟对应版
TFTPD64:用于传U-Boot
PuTTY:用于TTL刷机和SSH连接
WinSCP:用于传文件到路由

0.2 刷机所需硬件

网线2根
电脑1台
若要拆机,则需要螺丝刀,撬棒;
若要拆机,则需USB2TTL=>CH340G土豪金转接板
杜邦线5根,一头公一头母;或者杜邦线5根+TTL探针4个

0.3 刷机大致流程

  • 破解并开启SSH
  • 刷入u-boot
  • 刷入固件
  • 分区调整等其他补丁

1.破解并开启SSH(最讨厌的部分)

根据系统版本分成三种情况:

  • 固件版本 < 1.5.50 r2204 :向目标服务器发送一个 JSON-RPC 请求,启动dropbear的SSH服务端。
  • 1.5.50 r2204 < 固件版本 < 1.5.80 r2262 :利用外置存储设置的一个漏洞,利用WebDAV开启SSH。
  • 固件版本 >= 1.5.80 r2262 :暂时需要拆机并TLL。

三种情况我会逐一说明,本次实际机器版本已经升级至最新的R4XXX版本,只能使用拆机法。
任何版本都可以用拆机法

1.1 固件版本 < 1.5.50 r2204(2022-04-22)

可以参看这篇文章

1.2 固件版本在 1.5.50 r2204 和 1.5.80 r2262 之间

可以参看这篇文章

1.3 固件版本 >= 1.5.80 r2262

还是用拆机法最简单,拆机后直接用TTL连接,通过亚瑟自己的底层系统,刷入U-boot。

2.拆机刷入U-BOOT

2.1 拆机准备

  • CH340G USB 转 TTL 适配器
  • 三根公对母杜邦线
  • 拆机工具
  • U-BOOT上传软件:Tftpd64
  • ttl连接软件:PUTTY
  • U-Boot固件:u-boot.bin

2.2 拆机过程

不说了,自己百度

2.3 连接串口

  • 适配器跳线至3.3v模式
  • 插上电脑,记得装驱动,装好后,在设备管理器可以知道适配器为COM(X),我这为COM(3)口;
  • 连接的线序如下:
CH340路由TTL
GND(地线)G
TXD(发送)R
RXD(接收)T
  • 连接好后,打开putty,Connection Type 选择 Serial; Serial line 选择 COM3 ; Speed 输入115200;
  • 点击Open,一切正常的话,就是一个黑色的窗口,暂时没有任何内容。

2.4 上传并刷入U-BOOT

  • 将本机网口和路由器LAN口用网线连接,将本机IP设置为192.168.10.1,
  • 给路由器通电,此时上一步留下的黑色窗口里面就有内容出现,此时赶紧在黑色窗口中按回车键,这样就可以打断路由器的自动启动;
  • 此时已是路由器的6018#模式,可以使用 boot loader 的命令了。
  • 将Tftpd64和u-boot.bin,放在同个文件夹内;打开Tftpd64,设置服务器地址为:192.168.10.1;
  • 在6018#后面输入以下代码,完成U-BOOT的上传和写入;
tftpboot u-boot.bin && flash 0:APPSBL && flash 0:APPSBL_1
  • 看到命令输出里有几个 OK 就完成 u-boot 刷入了。暂时不用关机。

3.刷入路由器固件

3.1 首次刷入固件

  • 由于亚瑟的默认固件分区只有60MB大小,所以无法刷入大于60MB的固件。因此首次刷固件,只能刷小于60MB的固件;
  • 首次刷机固件:openwrt-qualcommax-ipq60xx-jdc_ax1800-pro-squashfs-factory-6.6.x.bin
  • 重启路由器,再次进入6018#模式,输入httpd 192.168.10.10,启动U-BOOT WEB刷机界面;
  • 在本机浏览器中访问192.168.10.10,选择openwrt-xxx-squashfs-factory-6.6.x.bin,刷入固件。
  • 到此为止,系统固件已经完成,一切顺利的话就刷好了。重启即可。

3.2 首次进路由

将本机IP改为自动获取,待路由灯变绿,就能获取IP了,可以登录网页设置,也可以登录后台SSH了。
其实到了这里,基本上可以用了(装不了大软件,不能DOCKER)。只是若要玩出些花样来,则需要打些补丁。

3.3 备份分区(可不做)

懒得写,自己看这里

4.高级操作

4.1 更改分区,刷入GPT

前面说过,因为亚瑟的原版分区结构问题,导致装不下大的系统,或者说系统默认留的软件安装空间太小了。
所以有高手备份了分区表并用DG调整了大小,重新刷入后,可以放心玩了。
亚瑟 AX1800 Pro 默认的分区信息如下:

Device    Label
/dev/mmcblk0p1    0:SBL1
/dev/mmcblk0p2    0:BOOTCONFIG
/dev/mmcblk0p3    0:BOOTCONFIG1
/dev/mmcblk0p4    0:QSEE
/dev/mmcblk0p5    0:QSEE_1
/dev/mmcblk0p6    0:DEVCFG
/dev/mmcblk0p7    0:DEVCFG_1
/dev/mmcblk0p8    0:RPM
/dev/mmcblk0p9    0:RPM_1
/dev/mmcblk0p10    0:CDT
/dev/mmcblk0p11    0:CDT_1
/dev/mmcblk0p12    0:APPSBLENV
/dev/mmcblk0p13    0:APPSBL
/dev/mmcblk0p14    0:APPSBL_1
/dev/mmcblk0p15    0:ART
/dev/mmcblk0p16    0:HLOS
/dev/mmcblk0p17    0:HLOS_1
/dev/mmcblk0p18    rootfs
/dev/mmcblk0p19    0:WIFIFW
/dev/mmcblk0p20    rootfs_1
/dev/mmcblk0p21    0:WIFIFW_1
/dev/mmcblk0p22    rootfs_data
/dev/mmcblk0p23    0:ETHPHYFW
/dev/mmcblk0p24    plugin
/dev/mmcblk0p25    log
/dev/mmcblk0p26    swap
/dev/mmcblk0p27    storage

其中mmcblk0p18mmcblk0p20默认的大小为 60MB,意味着最大只能刷入大小为 60MB 的固件。
如果你需要刷入大于 60MB 的固件或者扩容 overlay,那么需要刷入大分区的 GPT 分区表。

使用 Winscp 将GPT分区表文件GPT.binsgdisk.ipk上传到 /tmp 目录,然后执行以下命令,注意修改命令中的 GPT.bin 为实际的文件名称:

# 刷入GPT分区表
dd if=/tmp/GPT.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync

# 安装sgdisk分区工具
opkg install /tmp/sgdisk.ipk

# 新建 storage 分区
sgdisk -e -n 0:0:0 -c 0:storage -t 0:1B1720DA-A8BB-4B6F-92D2-0A93AB9609CA -p /dev/mmcblk0

提示 The operation has completed successfully 说明成功新建分区。
最后运行 reboot 重启路由器即可。

4.2 刷入CDT(路由器硬改为 1GB 内存时使用)

使用 Winscp 将 CDT 文件上传到 /tmp 目录,然后执行以下命令,注意修改命令中的 CDT.bin 为实际的文件名称:

dd if=/tmp/CDT.bin of=/dev/mmcblk0p10 conv=fsync

最后运行 reboot 重启路由器。

5.最后总结和下载

补丁打完后,可以再次刷系统,建议再OPENWRT下强刷iStoreOS
这个系统软件多,而且直接设置好了很多东西,不像OP还需要设置许多。
所有用到的东西,都会统一打包,放出下载。

6.参考资料:

https://www.yindan.me/tutorial/jdc-ax1800-pro.html
https://watermelonwater.tech/archives/%E4%BA%AC%E4%B8%9C%E4%BA%91AX1800%20Pro%E4%BA%9A%E7%91%9FopenWRT%2FiStoreOS%E5%88%B7%E6%9C%BA%E6%95%99%E7%A8%8B
https://phyng.com/2024/05/05/ax1800-openwrt.html
https://zhuanlan.zhihu.com/p/669394502

Edit with Markdown