Restoring TL-MR3020 v3 to stock - how to trim vendor f/w?

TL-MR3020 v3 is similar to the original 3020, except it seems the firmware has a different layout.

I've tried trimming both the first 256 and also the first 257 bytes from the stock firmware, which allows it to be flashed, but then it gets stuck in a boot loop and is unreachable (I can re-flash wrt and it works fine).

How should I modify the stock firmware to trim off the offending bootloader code?

TIA

Not sure how you cut the first 257 bytes, but this wiki article shows how it should be done -

I would strongly recommend against this. You should download the firmware that is designed for the hardware you have (v3). You can find that here:

I suspect that TFTP recovery will be the most straightforward approach. With TFTP, you probably don't need to modify the vendor firmware to install it. Information about TFTP recovery for your device is in your device info page for the v3:

Prepare image:

  • to restore from bootloader:
dd if=stock.bin of=tp_recovery.bin bs=512 skip=1
  • to restore from openwrt:
dd if=stock.bin of=sysupgrade.bin bs=512 skip=257

Pay attention that sysupgrade.bin don't have openwrt metadata so you have to force upgrade

1 Like
dd if=stock.bin of=tp_recovery.bin bs=512 skip=1

That has done it, thanks. Please add this to the v3 wiki, as I couldn't log in.

===== Restoring Original Firmware =====
-> [[docs:guide-user:installation:generic.uninstall]]

{{page>meta:infobox:dangerous&noheader&nofooter&noeditbtn}}

With the TL-MR3020 v3 router, there is a catch: the stock firmware is obtained from the OEM: http://www.tplink.com/en/support/download/?model=TL-MR3020

Using the method with tftp described in "Installation". (you still need the firmware images without the boot part). Only cut off 512 bytes. Tested working with V3.20_210428. 

<code>
dd if=stock.bin of=tp_recovery.bin bs=512 skip=1
</code>

It is also possible to revert to the stock firmware from within OpenWRT (this method is untested):

Cut the first 0x20200 (that is 131,584 = 257*512) Bytes from original firmware:


<code>
dd if=stock.bin of=sysupgrade.bin bs=512 skip=257
</code>

You can flash the firmware over the web interface.

Otherwise should transfer the firmware image to the /tmp folder and run sysupgrade over ssh:
<code>
sysupgrade /tmp/sysupgrade.bin
</code>

1 Like

I couldn't log in too :slight_smile:

You need a wiki account (login will not work with your forum account).

I've tried it, perhaps somebody who can log in can just paste the article I already wrote and put in code tags

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.