I can also confirm that the opposite (AnnexB to AnnexA) works too!
All you have to do is upload any AnnexA firmware to the AnnexB router.
The catch is that you have to make the router believe that the firmware is intended for it while it is not.
Every firmware has in its header a codepattern.
These are some examples for wag354g v1:
WA31 for AnnexA
WA32 for AnnexB
All you need to do (for AnnexB -> AnnexA) is change "WA31" to "WA32" in the firmware header by using your favorite hex editor.
Do it and save the file.
Then you need to calculate the corresponding checksum which is the last 4bytes of the firmware (after 23 DE 53 C4)
For this you need the attached checksum calculator. (I have compiled it for both windows and linux or you can compile it yourself)
Just run it giving it as a parameter the firmware file:
Code:
./tichksum upgrade_code.bin
File already contains the checksum, verifying
Calculated checksum is AAD202DC
Saved checksum is 839B1B0D
Checksum validation failed!
Checksum validation will of course fail since we have altered the file.
hexedit the firmware file again and change the saved checksum to the calculated checksum.
WARNING for some reason the tool reports the hex values in reverse order: i.e. "AA D2 02 DC" instead of DC 02 D2 AAThen run the calculator again to verify that you did it right:
Code:
[b]./tichksum upgrade_code.bin[/b]
File already contains the checksum, verifying
Calculated checksum is AAD202DC
Saved checksum is AAD202DC
Checksum validation successful!
You are good to go! Just upload upgrade_code.bin to the router by using tftp!