# Over-the-air updates

Devices need software updates after they ship, and a failed update must not break the device. A/B slots and rollback handle both.

Page: https://dharanova.com/learn/ota-updates · Track: Secure · Level: Core · Facts last checked 7 October 2026

Read first: [Secure boot and the root of trust](https://dharanova.com/learn/secure-boot.md)

Diagram: A row of steps: a new image is downloaded, its signature is checked to show it is genuine and unchanged, it is written to the inactive slot, and the device boots it on trial. A health check follows: if it passes, the new image is made permanent; if it fails, the device falls back to the old slot. The device keeps two copies, an active slot with the current image and an inactive slot that receives the new one. Notes name Mender, RAUC and SWUpdate for embedded Linux and MCUboot for microcontrollers, and say encryption alone does not prove who built an update.

## Key points

1. A/B (dual-copy) updates write the new image to the inactive slot, boot it on trial, and make it permanent only after it passes a health check, falling back to the old slot if it does not. [1][2]
2. Open-source update frameworks for embedded Linux include Mender, RAUC and SWUpdate; on microcontrollers, MCUboot is a widely used secure bootloader that supports image swapping and rollback. [1][2][3][4]
3. A device must check that an update is genuine and unchanged before installing it, usually by verifying a digital signature on the image. Encrypting the download alone does not prove who built it. [5][4]

## Where to go next

- [Security baselines and the law](https://dharanova.com/learn/iot-security-rules.md): Several countries now have security rules for connected products. The basic requirements are short and specific.

## Sources

1. [Mender documentation: Introduction](https://docs.mender.io/overview/introduction), Northern.tech (Mender)
2. [RAUC: Basic concepts](https://rauc.readthedocs.io/en/latest/basic.html), RAUC project
3. [SWUpdate: Update strategy examples](https://sbabic.github.io/swupdate/overview.html), SWUpdate project
4. [MCUboot: Bootloader design](https://docs.mcuboot.com/design.html), MCUboot project (Linaro)
5. [ETSI EN 303 645 V3.1.3 (2024-09): Cyber Security for Consumer Internet of Things: Baseline Requirements](https://www.etsi.org/deliver/etsi_en/303600_303699/303645/03.01.03_60/en_303645v030103p.pdf), ETSI
