Terminology
- Update Controller
This controls the update process and can be started on demand or run as a daemon.
- Update Handler
The handler performs the actual update installation. A default implementation is provided with the update controller and can be overridden in the update manifest.
- Update Bundle
The bundle is a single file containing an update. It consists of a squashfs with an appended cryptographic signature. It contains the update manifest, one or more images and optionally an update handler.
- Update Manifest
This contains information about update compatibility, image hashes and references the optional handler. It is either contained in a bundle or downloaded individually over the network.
- Slot
Slots are possible targets for (parts of) updates. Usually they are partitions on a SD/eMMC, UBI volumes on NAND/NOR flash or raw block devices. For filesystem slots, the controller stores status information in a file in that filesystem.
- Slot Class
All slots with the same purpose (such as rootfs, appfs) belong to the same slot class. Only one slot per class can be active at runtime.
- Install Group
If a system consists of more than only the root file system, additional slots are bound to one of the root file system slots. They form an install group. An update can be applied only to members of the same group.
- System Configuration
This configures the controller and contains compatibility information and slot definitions. For now, this file is shipped as part of the root filesystem.
- Boot Chooser
The bootloader component that determines which slot to boot from.
- Recovery System
A non-updatable initial (factory default) system, capable of running the update service to recover the system if all other slots are damaged.