Repository navigation
rpi-loader-ota 0.1.0
First release.
Added
-
The bundle container, version 2 of the format: a list of
(path, role, bytes) under an IEEE CRC-32, encoded on a host and
validated on a device by the same code. An update can therefore replace
anything on a boot partition — a settings file, a firmware blob, a
certificate,config.txt, the Raspberry Pi firmware itself — rather
than a kernel and one hardcoded directory of assets. -
Bundle::parse, which allocates nothing. It validates in place and
borrows, so a device holds one buffer — the upload as it arrived — and
nothing else.encode, behind the defaultallocfeature, is the
other direction. -
Roles. An entry is a
File, theKernel,FirmwareorConfig,
and the installer decides what that means. Naming the boot image by
role rather than by position or filename is what lets the device choose
its own destination, which matters to anything running two kernel
slots. -
Rules enforced identically in both directions, so a packer cannot
build what a device would reject: no absolute paths,..components,
empty components or backslashes; no duplicate destinations; at most one
kernel and oneconfig.txt; and astart*.elfonly alongside its
matchingfixup*.dat, since the two are released together and a
mismatched pair does not boot. -
checksum, so a device checksums a file already on its card the
same way the packer checksummed the entry, and can skip rewriting one
whose bytes have not changed.
Add it with cargo add rpi-loader-ota. The rpi-loader CLI
builds bundles in this format; a device installs one.