SWUpdate
FreeLinux Update agent with the goal to provide an efficient and safe way to update (local, remote, multiple update strategies) an embedded system.
About SWUpdate
SWUpdate is an open-source Linux update agent designed specifically for embedded systems. It provides an efficient, safe, and highly configurable way to perform local and over-the-air (OTA) updates on embedded Linux devices. The tool supports multiple update strategies, including full image updates and delta updates via librsync, and is built with security in mind — offering cryptographic signing and verification (OpenSSL, mbedTLS, WolfSSL) and symmetric AES encryption for artifacts. SWUpdate can update all device components: root filesystem, kernel, bootloader, and microcontroller firmware. It supports installation on various media such as eMMC, SD, Raw NAND, UBIFS, NOR, and SPI-NOR flashes, and includes a partitioner for GPT and MBR. The agent provides multiple interfaces for update delivery: local storage (USB, etc.), an integrated web server, a REST client, and a connector to hawkBit for fleet management. Features like streaming mode (without temporary copies), single image delivery across multiple devices, fail-safe atomic updates, Lua scripting for custom logic, pre/post update scripts, and a small footprint for rescue systems make it a comprehensive solution for embedded OTA.
Key Features
Pros & Cons
- Open source under GPLv2/LGPLv2.1 with no licensing costs
- Highly modular and configurable to fit various hardware and update scenarios
- Supports multiple storage media, update strategies, and delta updates
- Built-in security features: cryptographic signing, verification, and encryption
- Active community with mailing list and integration into Yocto, Buildroot, Debian
- Fail-safe atomic updates reduce risk of bricking devices
- Small footprint suitable for resource-constrained systems
- Requires integration effort and customization for specific hardware platforms
- Learning curve for configuration options and Kconfig-based build system
- Documentation may be dense for newcomers unfamiliar with embedded Linux
- Primarily focused on embedded Linux, not suitable for general-purpose desktop or server updates