Flash_openwrt_m95a: for €5 Aliexpress M-95A / TL-WR941ND v6 clone repeaters

I put together a small dependency-free Python script to flash OpenWrt onto a class of cheap M-95A repeaters/router clones (AliExpress link) that expose the stock UI on 192.168.11.1 but identify at runtime as TL-WR941ND v6.

Repo:

What it does:

  • downloads and caches the firmware while internet is available
  • verifies the image against the published SHA256
  • uses the vendor /protocol.csp API to launch a temporary shell
  • serves the cached firmware locally from the host to the router
  • runs sysupgrade without requiring internet once the host is on the router subnet

This was built around a device that reported:

  • fmversion: TP9343-4MB-v21-lcj-en-p2
  • hardversion: AR9341-V1.0
  • stock LAN IP 192.168.11.1

The board identified itself as:

  • tl-wr941nd-v6
  • TP-Link TL-WR941N/ND v6
  • LEDE 17.01-SNAPSHOT
  • 4 MiB flash

The script is currently pinned to:

  • openwrt-18.06.9-ar71xx-tiny-tl-wr941nd-v6-squashfs-sysupgrade.bin

Important scope note:

This is not a generic flasher for arbitrary cheap repeaters. It is only meant for this observed hardware/firmware family, and flashing the wrong target can brick the device.

Why I’m posting:

  • in case other people have the same hardware and want a repeatable path
  • to collect confirmations from anyone with matching or near-matching units
  • to compare vendor firmware strings and board IDs before broadening the docs

If anyone here has one of these units, I’d especially like to know:

  • the exact vendor firmware version string
  • whether it also exposes /protocol.csp
  • whether it identifies as TL-WR941ND v6
  • whether the same archived image boots cleanly

If there’s interest and enough confirmations, I’ll turn the repo notes into a cleaner device compatibility matrix and try to get the relevant details into the wiki/ToH flow.