基本信息
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/mtdblock8
的 0x00000088 ~ 0x00000089
,直接存储 CN
,但也有些设备以 COUNTRY:CN
的形式存储于其他分区,但无论在哪个分区,该代码都应在分区头部位置,请务必自行判断
导出对应分区,修改后刷回原分区,并修改其中 CN
为 US
注意:确认分区修改后设备正常前请妥善备份原始分区数据
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