rupdate is a modern open source update framework for embedded Linux systems. Developed in Rust, rupdate provides a secure, robust and lean solution for reliable system updates.

Elements of rupdate

rupdate is based on the concept of so-called pendulum updates. It uses redundant partition sets to enable atomic system updates, safe rollbacks and maximum system availability.

The framework comprises specifications and Rust implementations for the following core components:

Partition Description

The Partition Description defines the system-wide partition structure of an embedded Linux system. It describes:
■  the layout of the partitions
■  the redundant partition sets used
■  formats for making this information available to: Linux systems, user space applications, bootloaders, initramfs, hypervisors

This creates a consistent basis for secure A/B – or pendulum – updates.

Update Tool

The rupdate update tool is a Linux user space application for carrying out and managing system updates.

Its functions include:

■  installing update bundles
■  running system tests after updates
■  automatic rollback in the event of errors
■  synchronising the system status between bootloader and user space

The Rust implementation additionally ensures high stability, memory safety and maintainability.

Update Bundles (packages)

rupdate defines a flexible archive format for update bundles. These bundles contain:

■  partition images
■  metadata
■  update information
■  validation data

The package format has been optimised specifically for embedded Linux systems and enables efficient and reproducible updates.

Update Environment

The update environment provides a binary-encoded data area that can be read and written both by the bootloader and by user space tools or hypervisors.

This makes it possible to:

■  synchronise system states
■  store update status
■  manage rollback information
■  implement safe restart strategies

KISS principle: small, simple and flexible

rupdate has been developed consistently according to the KISS principle (Keep It Small and Simple).

This means:

■  no mandatory cloud services
■  minimal complexity
■  flexible integration options
■  freely definable security and integrity mechanisms
■  easy adaptability to existing systems

Open Source & Community

rupdate is fully available as open source and includes:

■  tools for creating update bundles
■  tools for installing and managing updates
■  utilities for initial system set-up
■  comprehensive documentation
■  integrated test suites

The open architecture allows developers and companies to actively use rupdate, extend it and contribute to its further development.

The software is published under the MIT licence.

Background & development

rupdate was designed by  Elektrobit in the course of developing a highly optimised Linux-based platform for automotive systems.

Further links and documents

 

Learn more about rupdate

Feel free to contact us. During an initial consultation, we’ll discuss how we can provide you with tailored support.

Your contact

Our experts from the emlix Solutions team
Tel. +49 551 304460
solutions@~@emlix.com