依然是网友求助的 4G 工业路由

拆解

正面 - 带有 TTL 接线

硬件版本号 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

Factory Web UI

颇有 DD-wrt 风味

部分设备控制台可能是 192.168.1.1

原厂 Uboot Web UI

无 DHCP
静态IP 192.168.1.1

Uboot Web UI

根据 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 修改的

固件加密

同其他型号

刷写固件

OpenWRT PR地址
SNAPSHOT 固件

刷写 Breed

刷了就死循环重启, 必砖!
应该是 GPIO 看门狗没喂狗导致的

通过 UART 进入 UBoot 刷写

无法进入 UBoot 控制台

通过 UART 进入 Failsafe 刷写

Failsafe

把固件拉到设备的 /tmp 目录下

  • 使用 python -m http.server 起个 http 服务器, 搭配 wget
mtd -r write openwrt-ramips-mt76x8-hongdian_h8850-v20-squashfs-sysupgrade.bin firmware

等待设备重启, 第一次比较慢

由于分区布局不一样, 建议刷完以后通过 LuCI 不保存设置再刷一次

原厂固件下载

h8850-v20a.7z

最后修改:2025 年 10 月 01 日
如果觉得我的文章对你有用,请随意赞赏