EnChip Microelectronics

又一个WordPress站点

EnChip Microelectronics

又一个WordPress站点

Gl-inet路由器更改区域

转区

那第一件事肯定是转区。GLiNET的路由器固件无论哪个区域都是一样的,不存在像MIUI那种的按固件区分区域,也不存在刷固件转区。区域代码和其他配置信息(如SN码、设备ID等)一同被写在闪存的某个分区内。根据机型不同,分区位置也不一样。

MT3000的基础信息在/dev/mtdblock3,MT2500在/dev/mmcblk0boot1,AX1800/AXT1800在/dev/mtdblock8。在OpenWRT上可以使用lsblk或fdisk -l查看分区信息,并可以使用dd命令将分区dump到文件复制用于分析。

示例代码

注意,转区是直接写入闪存的,误操作可能导致设备无法启动。操作前请三思,操作时请谨慎。(注意系统编码格式的影响,可能会写入不正确的数据)。
比较保险的方法是用dd命令将/dev/mtdblock3导出到文件,然后用scp传到PC上进行修改,改好后传回去用dd写入。

  • MT3000
1
2
echo “US” | dd of=/dev/mtdblock3 bs=1 seek=136
sync
  • MT2500
1
2
3
echo 0 > /sys/block/mmcblk0boot1/force_ro
echo “US” | dd of=/dev/mmcblk0boot1 bs=1 seek=136
sync
  • AX1800
1
2
3
echo “US” | dd of=/dev/mtdblock8 bs=1 seek=152
sync
reboot

成功转区之后建议重置一下固件,并且(即便是重置了固件)此时也并不能在主页看到神秘的功能,因为简体中文下不考虑区域设置,直接就是隐藏的,切换到其他语言即可。

语言切换

在/www/i18n中,将后面带zh-cn的文件替换为zh-tw即可。


SSH login this router as per this guide: https://docs.gl-inet.com/en/3/tutorials/ssh/
Type in the following commands one by one.
​Only for AXT1800
echo “US” |dd of=/dev/mtdblock8 bs=1 seek=152
sync
reboot

方案一

用代码修改 mtdblock8 里面的一个参数

echo "US" |dd of=/dev/mtdblock8 bs=1 seek=152
sync
reboot

亲测可用,也很方便。但不知道是不是每次升级后都需要重新操作一下。

方案二

看到了个帖子「官方 GUI 辅助脚本」,应该是往里面加了一些菜单项,让被隐藏的按钮显示出来。

由于 js 代码做了一点点点点点点点点混淆……(就是个凯撒密码)我懒得去解了,所以也不清楚他到底干了啥。

方案三

还可以直接改固件。感觉和方案一其实是一样的原理。

方案一和三,修改完后,会去掉左上角的「CN」标志,去掉后切换语言到英语,就可以看到 AdGuard 等功能了


root@GL-AXT1800:~# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00180000 00020000 "0:SBL1"
mtd1: 00100000 00020000 "0:MIBIB"
mtd2: 00380000 00020000 "0:QSEE"
mtd3: 00080000 00020000 "0:DEVCFG"
mtd4: 00080000 00020000 "0:RPM"
mtd5: 00080000 00020000 "0:CDT"
mtd6: 00080000 00020000 "0:APPSBLENV"
mtd7: 00180000 00020000 "0:APPSBL"
mtd8: 00080000 00020000 "0:ART"
mtd9: 07280000 00020000 "rootfs"
mtd10: 00080000 00020000 "log"
mtd11: 00080000 00020000 "0:ETHPHYFW"
mtd12: 0041e000 0001f000 "kernel"
mtd13: 034ad000 0001f000 "ubi_rootfs"
mtd14: 03339000 0001f000 "rootfs_data"

暴力搜索,查到在 mtd8

root@GL-AXT1800:/dev# hexdump -C /dev/mtdblock8 
*
00000090  43 4f 55 4e 54 52 59 3a  43 4e ff ff ff ff ff ff  |COUNTRY:CN......|

导出

dd if=/dev/mtdblock8 of=mtdblock8
cp mtdblock8 mtdblock.orig

修改,opkg里没有 hexedit,但是有个 jupp

opkg update
opkg install jupp
jupp mtdblock8

比较难用,ctrl + o + g 进入16进制模式,把 COUNTRY:CN 改成 COUNTRY:US ,再使用 ctrl + k + x 保存。可以看 ctrl + j 的帮助。

回写,重启

dd if=mtdblock8 of=/dev/mtdblock8
reboot
Gl-inet路由器更改区域
Scroll to top