GL.iNet 修改区域代码

基本信息

GL.iNet 的配置信息(例如 S/N 码、设备 ID、区域代码等)位于设备 Flash 分区内,不随固件更新

注意:操作过程中请务必对分区原始数据进行备份

导出分区

注意:不同型号设备的区域代码所在分区位置有可能不同,数据存储的形式也可能不同,未经验证

此处以 GL-B3000 为例,正常途径无法直接判断区域代码位于哪个分区,通过暴力搜索可以在 /dev/mtdblock8 中发现 CN 字样的有效数据

注意:/dev/mtdblock4 中也出现了 CN 字样,但明显不是有效数据

root@GL-B3000:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "0:SBL1"
mtd1: 00080000 00020000 "0:MIBIB"
mtd2: 00040000 00020000 "0:BOOTCONFIG"
mtd3: 00100000 00020000 "0:QSEE"
mtd4: 00040000 00020000 "0:DEVCFG"
mtd5: 00040000 00020000 "0:CDT"
mtd6: 00080000 00020000 "0:APPSBLENV"
mtd7: 00140000 00020000 "0:APPSBL"
mtd8: 00100000 00020000 "0:ART"
mtd9: 00080000 00020000 "0:TRAINING"
mtd10: 00200000 00020000 "CFG"
mtd11: 07800000 00020000 "rootfs"
mtd12: 00360280 0001f000 "kernel"
mtd13: 003e9800 0001f000 "wifi_fw"
mtd14: 02e04000 0001f000 "ubi_rootfs"
mtd15: 03640000 0001f000 "rootfs_data"

root@GL-B3000:~# hexdump -C /dev/mtdblock4 | grep 'CN'
00003430  9f bf 43 4e 7c 35 af 95  6b d5 ce 0b 38 9d 8f 84  |..CN|5..k...8...|
00004430  9f bf 43 4e 7c 35 af 95  6b d5 ce 0b 38 9d 8f 84  |..CN|5..k...8...|

root@GL-B3000:~# hexdump -C /dev/mtdblock8 | grep 'CN'
00000080  ff ff ff ff ff ff ff ff  43 4e ff ff ff ff ff ff  |........CN......|
00013a10  4e 00 43 4e 00 28 a0 00  00 00 a2 00 75 00 00 43  |N.CN.(......u..C|
00039210  4e 00 43 4e 00 28 a0 00  00 00 a2 00 75 00 00 43  |N.CN.(......u..C|

该设备中区域代码位于 /dev/mtdblock80x00000088 ~ 0x00000089,直接存储 CN,但也有些设备以 COUNTRY:CN 的形式存储于其他分区,但无论在哪个分区,该代码都应在分区头部位置,请务必自行判断

导出对应分区,修改后刷回原分区,并修改其中 CNUS

注意:确认分区修改后设备正常前请妥善备份原始分区数据

root@GL-B3000:~# dd if=/dev/mtdblock8 of=/tmp/mtdblock8_edit
# 修改分区数据
root@GL-B3000:~# dd if=/tmp/mtdblock8_edit of=/dev/mtdblock8

root@GL-B3000:~# reboot

重启后即成功修改设备区域代码为 US

LICENSED UNDER CC BY-NC-SA 4.0
Comment