TL;DR: TP-Link's stock 3.14.3 firmware (Build 151104, Nov 2015) added an MD5 checksum verification that rejects all custom firmware with Error code: 18005. Same firmware also has a broken/locked TFTP recovery on some hardware variants. This writeup shows how to bypass the check by patching the MD5 in a hybrid firmware image, allowing the standard web GUI upload to flash OpenWrt successfully.
- Router: TP-Link TL-WDR3600 v1 (any sub-revision — confirmed working on v1.2)
- Stock firmware:
3.14.3 Build 151104 Rel.44824nor similar from Nov 2015 onward - Web GUI rejects all firmware uploads (including legitimate older TP-Link firmware) with: