SWUpdate logo

SWUpdate

Free

Linux Update agent with the goal to provide an efficient and safe way to update (local, remote, multiple update strategies) an embedded system.

FreeFree tier
Type
Open Source

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

Update of all components (rootfs, kernel, bootloader, microcontroller firmware)
Install on various media: eMMC, SD, Raw NAND, UBIFS, NOR, SPI-NOR flashes
GPT and MBR partition table support
Single image delivery across multiple devices
Streaming mode without temporary copies of artifacts
Multiple interfaces: local storage, integrated web server, REST client, hawkBit connector
Delta updates based on librsync
Fail-safe and atomic updates
Lua interpreter to extend update rules
Cryptographic sign and verification with OpenSSL, mbedTLS, WolfSSL

Pros & Cons

Pros
  • 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
Cons
  • 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

Best For

OTA updates for IoT and edge devicesField updates of embedded Linux systemsFleet management with hawkBit integrationSafe firmware updates for industrial controllers and medical devicesCreating rescue and recovery systems for embedded devices

FAQ

What is SWUpdate?
SWUpdate is a Linux update agent for embedded systems that provides efficient and safe local and OTA updates, supporting multiple update strategies and built-in security.
What update strategies does SWUpdate support?
It supports full image updates, delta updates based on librsync, and allows custom handlers for firmware types like FPGA or microcontroller code.
Is SWUpdate secure?
Yes, it supports cryptographic signing and verification with OpenSSL, mbedTLS, or WolfSSL, and can encrypt artifacts with symmetric AES keys.
What build systems are SWUpdate integrated with?
SWUpdate is well integrated into the Yocto build system via the meta-swupdate layer, and also supported in Buildroot. A Debian package is available.
What license is SWUpdate released under?
SWUpdate is released under GPLv2. The accompanying control library is under LGPLv2.1, and Lua extensions are subject to the Lua license (MIT).