<feed xmlns='http://www.w3.org/2005/Atom'>
<title>firmware-utils/src/mkbossimg.c, branch master</title>
<subtitle>OpenWrt firmware image utilities</subtitle>
<id>https://git.openwrt.org/project/firmware-utils/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/firmware-utils/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firmware-utils/'/>
<updated>2026-10-20T22:56:17Z</updated>
<entry>
<title>mkbossimg: add tool for Bintec BOSS firmware images</title>
<updated>2026-10-20T22:56:17Z</updated>
<author>
<name>Simon Wunderlich</name>
</author>
<published>2026-09-17T13:17:27Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/firmware-utils/commit/?id=b2a93c6f77bac3a6525e93b383c987b073b4633b'/>
<id>urn:sha1:b2a93c6f77bac3a6525e93b383c987b073b4633b</id>
<content type='text'>
The bootmonitor of Bintec elmeg RS-series routers (RS123, RS230, RS353)
expects a 52-byte BOSS header in front of a gzip-compressed image: a
23-byte magic string identifying the board family, followed by
fw_version, image_type, image_version, image_length, a CRC32 over the
payload and two vendor fields, all big-endian.

No existing tool produces this. mkbrnimg, from which this is derived,
writes a 12-byte trailing footer plus a signature string instead.

The input is expected to carry a 52-byte placeholder header so the
payload stays aligned to the flash sector size; it is skipped, and length
and CRC are computed over the remainder. The CRC is the plain zlib CRC32.

Output was verified byte-for-byte against the original implementation
from armSeb/openwrt-RS353, and the header layout was cross-checked
against a genuine vendor firmware image.

Signed-off-by: Simon Wunderlich &lt;sw@simonwunderlich.de&gt;
Link: https://github.com/openwrt/firmware-utils/pull/78
Signed-off-by: Jonas Jelonek &lt;jonas@jonasjelonek.de&gt;
</content>
</entry>
</feed>
