Hardly any industrial system can do without software updates – be it that new features need to be added, bugs be fixed or patches for security exploits need to be installed. The usually package manager based update tools of the classic Linux distributions don’t fit this purpose: for example, in case of errors they cannot guarantee neither a recovery nor a fall-back to the previous version, so that for example “Over-the-Air” updates would present unacceptable risks.
SWUpdate is based on the experience of 18 years of Embedded Linux development and accumulates the knowledge of a very large number of projects for different customers and use cases. In the meantime, a constantly growing community has been using SWUpdate in many projects outside DENX. Putting the focus on robustness, reliability, security and flexibility, SWUpdate has become a de facto industry standard.
- SWUpdate supports multiple update strategies, especially Recovery System and Double Copy.
- All popular storage media can be used, e. g. NOR/SPI-NOR flash, NAND flash, eMMC, SDCard, …
- The design is focused on robustness so that in all cases (like or example power loss during an update) it is guaranteed to recover into an operational state.
- Using features like hardware watchdog, boot counter etc. guarantee that even if for example the newly installed software does not work properly.
- All updates are strictly atomic and lead to strictly reproducible results.
- SWUpdate can check for hardware compatibility, so a common SWUpdate image can be used for whole product families.
- Security is one of the key features of SWUpdate: images can be cryptographically signed (authentication) and/or encrypted using symmetric keys.
- SWUpdate supports a streaming mode so you can install updates on the target without need for intermediate storage.
- Both pull and push modes are supported, i. e. the embedded system either actively searches for updates, or a remote server distributes these to the target systems.
- SWUpdate is fully integrated into common build systems like Yocto and Buildroot.
- It is scriptable (LUA, Shell) and supports pre- and post-install scripts so that it is easy to adjust to specific requirements.
- SWUpdate provides an open, well documented interface to back ends. It has been successfully integrated into industrial provisioning systems like hawkBit.
- SWUpdate is fully Open Source (GPLv2).