We flashed a few EWS377AP v3 into the Fit version. No issues at all.
Support provided us with "ews377apv3-5.2.1-2.zip" for the update, I just checked the email from back then.
Unfortunately the link isn't active anymore so I can't send you that version.
Thanks — good to know the official zip worked. That bridge image is gone and the vendor will not share a link due to EOL.
So here's a workaround I've been able to get working: flash the plain
ews377-fit-1.1.30-13.bin with no special zip.
It's a one-field patch. The EWS377AP v3, EWS377-FIT, and ECW230v3 are the same board (IPQ807x / ap-hk07, vendor_id 257). The v3's upload check (/lib/upgrade/check_senao_image_header.sh) only gates on vendor_id + product_id; not the model string, md5, or checksum. Stock FIT is rejected purely because product_id is 300 (FIT) vs 282 (v3). Patch that one field:
Code:
import struct
d = bytearray(open("ews377-fit-1.1.30-13.bin","rb").read())
assert struct.unpack(">I", d[8:12])[0] == 300 # FIT
d[8:12] = (282).to_bytes(4,"big") # -> passes the v3 gate
open("ews377-fit-282.bin","wb").write(d)
The header md5sum only covers the (untouched) payload, so it stays valid; the vendor chksum is never read, and the obfuscation key is universal, the FIT payload de-wraps fine on v3 hardware.
Flash it: LuCI (System Manager > Firmware, two-step confirm) or
sysupgrade -n /tmp/ews377-fit-282.bin. It writes to the inactive A/B slot, so holding the factory reset button reverts you to the original EWS firmware—keep the stock .bin off-box.
Getting root to do it: telnet/SSH land in a restricted CLI. Use the SSH exec channel (runs uid=0):
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa root@<ap> '<cmd>'. User is root, password = the web admin password.
Now to adoption. Flashing is easy; a cross-flashed board reports a blank serial (sn=0000) to the controller, which keys devices by serial, so it never adopts. Fix: on the EWS firmware, write a valid serial to config field 19 before re-flashing —
setconfig -s 19 <SERIAL>, verify with
setconfig -g 19. The serial's model code has to match the target firmware (X45 for FIT, X42 for cloud/ECW). (I'm testing this part now)