依然是网友求助的 4G 工业路由
拆解
硬件版本号 v20a
硬件信息
- SoC: MediaTek MT7628DAN
- Flash: 16 MB
- RAM: 64 MB
- 电源: DC 5V-36V 1.5A
- 以太网: 1x WAN/LAN, 3x LAN [10/100 Mbps]
- 无线: 802.11n 2.4g-only
- LED:
System/Power (RUN): Always Off
Modem (NET): GPIO/3 active-low
LAN: Always On
RF (Modem Signal): GPIO/2 active-low
WIFI: GPIO/44 active-low - 按钮:
WPS / RESET: GPIO/11 active-low - UART: 1x UART on PCB - 115200 8N1
- GPIO 看门狗: GPIO/0 mode=toggle timeout=1s
- Modem: 1x 内置板载模块 (Power: GPIO/4 active-high)
- SIM Slots: 1x SIM Slots
固件分析
原厂 Web UI
颇有 DD-wrt 风味
部分设备控制台可能是 192.168.1.1
原厂 Uboot Web UI
无 DHCP
静态IP 192.168.1.1
根据 H8922 的经验, 铁定有校验, 根据提取的 uboot 来看, 算法还是一模一样...
OS 版本
内核版本 4.9.87
还挺新
root@(none):/# cat /etc/openwrt_release
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='SNAPSHOT'
DISTRIB_REVISION='r0-4b5123ccb'
DISTRIB_TARGET='ramips/mt76x8'
DISTRIB_ARCH='mipsel_24kc'
DISTRIB_DESCRIPTION='OpenWrt SNAPSHOT r0-4b5123ccb'
DISTRIB_TAINTS='no-all busybox'
root@(none):/# cat /etc/openwrt_version
r0-4b5123ccb
内核命令行
root@(none):/# cat /proc/cmdline
console=ttyS0,115200 rootfstype=squashfs,jffs2 bootversion=H8850_V2.0.0 mem=64M
分区布局
root@(none):/# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "factory"
mtd3: 00a80000 00010000 "firmware"
mtd4: 001cf99d 00010000 "kernel"
mtd5: 008b0663 00010000 "rootfs"
mtd6: 000b0000 00010000 "rootfs_data"
mtd7: 00080000 00010000 "config_partition"
mtd8: 00400000 00010000 "patch_partition"
虽然有 eeprom 的 factory 分区, 但是并没有使用, 网卡MAC 存储在 /etc/hdconfig/systeminfo/system.info
或 /etc/system.info
文件内
GPIO
root@(none):/# mount -t debugfs none /sys/kernel/debug/
root@(none):/# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-31, parent: platform/10000600.gpio, 10000600.gpio:
gpio-0 ( |wdt_rst ) out hi
gpio-1 ( |hub_rst ) out hi
gpio-2 ( |modem_signal1 ) out hi
gpio-3 ( |modem ) out hi
gpio-4 ( |3g_pwr ) out hi
gpio-5 ( |simcard_select ) out lo
gpio-6 ( |serial_select ) out hi
gpio-11 ( |rst_key ) in hi
gpiochip1: GPIOs 32-63, parent: platform/10000600.gpio, 10000600.gpio:
gpio-36 ( |gps_oe ) out hi
gpio-37 ( |simcard1_check ) in hi
gpio-38 ( |led_lan_data ) out hi
gpio-39 ( |simcard2_check ) in hi
gpio-44 ( |led_wifi ) out hi
gpiochip2: GPIOs 64-95, parent: platform/10000600.gpio, 10000600.gpio:
LED GPIO 为 ?
, 上述结果已经过 dts 修正
使用 GPIO 看门狗而不是 MT7628 内置的看门狗
LAN LED 无效, 板子 DTS 是 公版 evb/eval 修改的
固件加密
同其他型号
刷写固件
刷写 Breed
刷了就死循环重启, 必砖!
应该是 GPIO 看门狗没喂狗导致的
通过 UART 进入 UBoot 刷写
无法进入 UBoot 控制台
通过 UART 进入 Failsafe 刷写
把固件拉到设备的 /tmp
目录下
- 使用
python -m http.server
起个 http 服务器, 搭配 wget
mtd -r write openwrt-ramips-mt76x8-hongdian_h8850-v20-squashfs-sysupgrade.bin firmware
等待设备重启, 第一次比较慢
由于分区布局不一样, 建议刷完以后通过 LuCI 不保存设置再刷一次