zycast: new tool for ZyXEL bootloader flashing
authorBjørn Mork <bjorn@mork.no>
Sat, 5 Aug 2023 15:09:35 +0000 (17:09 +0200)
committerSander Vanheule <sander@svanheule.net>
Tue, 9 Jan 2024 20:28:33 +0000 (21:28 +0100)
commite87f23849790a7c77b4cd0e8ef0384da188174e5
tree70420597aaf8c2bf314757f6a56cf6863be1c6c4
parent9067281d17dab45f88f0b87dc762e6314cdfb275
zycast: new tool for ZyXEL bootloader flashing

The bootloader of many ZyXEL routers support a proprietary
feature allowing the devices to be flashed over the network
using a multicast stream.

This tool is an attempt to document and implement the client
side of this protocol

The set of possibly supported ZyXEL devices include NR7101,
NR5101, WAP6805, P8702N, P2812HNU, VMG8825, EX5401 and many
more.  Implementation details are known to vary among devices.
Quirks are to be expected on any untested device.

This code is ONLY tested on the NR7101.

Supported devices will listen for magic packets a few seconds
on every boot. This is indicated by a console message like

  Multiboot Listening...

or

  wait multiboot...

or

  Multiboot clinent(sic) version: 1.2

Typically followed by a countdown indicating when the listen
window closes.

Synchronizing the client with the listening window is not
required.  The protocol is designed to allow the client to
continuously repeat its image stream. Just start the
client before rebooting the router and let it run till the
download is finished.

This means that it is possible to do blind upgrades too. But
any error will be hard to catch without console.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
CMakeLists.txt
src/zycast.c [new file with mode: 0644]