If you’re a device manufacturer, regular updates are necessary to keep your product competitive and up-to-date. Remote OTA updates provide end users with the latest features of your product, implement security patches, and secure customers against cyberattacks without requiring physical access to the software/device.
Keep reading to find out more about OTA updates and learn what is Mender, Memfault, and RAUC.
What are over-the-air updates?
OTA (over-the-air) updates enable remote device software updates without physical access. In the context of Linux, you can update the OS and any installed apps or firmware of a device using OTA updates.
OTA software updates are typically used for regular updates for portable devices like smartphones, tablets, PCs, and versatile IoT devices. This way, software providers deliver fixes to the current OS version and introduce new features without physical access to the device.
Besides software OTA updates, there are also firmware and IoT OTA updates. Firmware over-the-air updates (FOTA) is a technology that enables wireless upgrades of firmware directly from the service provider, while IoT OTA updates are wireless updates used by device manufacturers to provide them with new features.
You can create a custom OTA solution or choose a ready-to-go-one like Mender, Memfault, or RAUC. To develop a custom OTA solution, you’ll first need to create the protocol of the update. Then, build the back-end part and device part, which involves bootloader and integrity check. After that, test your solution and create a web interface for users. After you completed all the steps, you can launch the solution. Creating a custom OTA solution will take much more time than using a ready-to-go solution, thus, it would be only efficient if you have highly specific requirements.
What is the problem with manual or traditional software updates?
Manual (traditional) updates take more time and effort, while also exposing your OS to security risks and limiting your access to new features and software.
Besides, you won’t be able to use the traditional software updates when there’s no wired connection to your device. In this case, OTA updates are the only option available.
In general, all modern devices have wireless connection. Yet, outdates appliances may still lack this type of connection, in that case, you can use manual updates.
How does an over-the-air update work? 6 steps explained
There are six core steps to carrying out an OTA update. Сheck them below:
1. Update detection and notification
The device that supports OTA updates automatically checks for software updates regularly. The device user can also manage this process manually.
Each time a software update is available, the user receives a notification specifying the updated software version and improvements it provides.
2. Downloading the updates
Most frequently, the admin controls the update download, however, in some cases, a user needs to provide permission for the update. When the update permission is accepted, the device launches the process by downloading the update package from a server or designated repository.
Usually, the update package includes new code as well as config files, patches, and other components.
3. Update verification
After downloading the update, the device verifies the operability of the update package. This way, the device ensures the update hasn't been impaired or forged during transit.
To confirm the authenticity of the software, the device can use cryptographic hashes or digital signatures.
4. Update installation
The device will proceed to update installation only after the update is verified.
To prevent data and settings losses, the device will back up all necessary information during installation.
5. Reboot and activation
It’s typical for the device to reboot after the software update is activated.
The device may perform post-installation tasks during this process, such as migrating data or updating configurations.
6. Clean-up and finalization
The device will automatically remove the old software version and clean up unnecessary temporary files introduced during the update process.
Now, the device runs the updated software with new features, bug fixes, and security patches.
Types of OTA updates: Automatic and Manual
OTA updates can be categorized into two core types — automatic and manual updates. Learn the difference between these two types of software updates below.
Automatic OTA updates
Automatic OTA updates are controlled by the software/device manufacturer. This type of over-the-air software is scheduled automatically. A fleet manager determines schedule of the automatic updates while an admin controls it.
Installation of the automatic OTA update depends on the device’s configuration settings.
Examples: Android/Linux critical security patches, etc.
Manual OTA updates
In contrast to automatic OTA updates, manual OTA updates require an action from the end user to confirm the update. This is the most widespread type of OTA update used for smartphones.
There are two ways to run manual OTA updates on a device:
1. Initial configuration on the device to automatically check for updates
2. Manual monitoring of potential updates by the end user.
Usually, device manufacturers use manual software updates for updates that aren’t mandatory, like OS or UI feature updates. This type of update is configured as soon as it’s available.
Examples: Linux kernel upgrades, UI updates, feature updates, etc.
Popular OTA update solutions: Memfault, Mender, and RAUC
There are three main platforms for the management of OTA updates — Memfault, Mender, and RAUC. Let’s review each of them in more detail to help you define which one fits you best.
Memfault is an IoT reliability platform that focuses on diagnostics and monitoring of embedded systems, as a part of its broad offering, it also enables smooth OTA updates management. Using this platform, you can control over-the-air updates and provide new releases for any platform like MCU, Linux, Android/AOSP.
Memfault: features and capabilities
- Rollout of new releases for a specific group of devices
- Functionality enabling the gradual release of updates — you don’t have to deploy an update to all devices at a time; you can start with any number of devices to test the updates
- Detection of malfunctions in your updates — you can reverse the update in one click before it’s impacted 100% of devices.
You can benefit from using Memfault for OTA update management; however, this platform doesn’t primarily specialize in OTA updates.
Mender is an open-source software for managing OTA updates on embedded Linux-based devices. This platform facilitates safe IoT device OTA updates and cuts the engagement of engineers in the update management process.
Mender: features and capabilities
- Comprehensive OTA management functionality, including the opportunity to rollback updates
- Ability to deploy OTA updates for separate cohorts of devices
- Integration with Linux-based boards and distributions.
RAUC (robust auto-update controller)
Similarly to Mender, the RAUC updates management platform is an open-source system with a primary focus on managing OTA updates on Linux-based systems.
RAUC: features and capabilities
- Custom frameworks for specific device needs
- Opportunity to use various update formats and methods
- Can be combined with other solutions to extend the lacking functionality.
After reviewing Memfault, Mender, and RAUC platforms for OTA update management, it becomes clear that each option can fit specific project needs:
- Memfault is a wide-ranging platform that covers overall diagnostics and control of embedded systems
- Mender is a user-friendly OTA update management platform for Linux-based systems
- RAUC is a solution for custom OTA update management, providing enhanced control of the update process.
How Lemberg Solutions helps to implement OTA updates for IoT devices
Review two examples of introducing OTA updates for our clients below:
Let’s take a look at an example reviewing a smart simulator that consists of many components, including motor controllers with a third-party FW.
We integrated Mender into Yocto image, which allowed us not only to update the central system, but also upgrade components with specific update procedures.
Additionally, it became possible to remotely manage the device with direct access to the system, which provides greater opportunities for troubleshooting.
Another example is integration of Memfault into a smart flow meter. We implemented remote monitoring, control, and updating of devices. This made it possible not to implement a custom IoT server.
Whether you’re an IoT device producer, a firmware development agency, or a software provider, OTA updates will help you keep your product up-to-date. Choosing the right type of OTA updates and selecting an OTA update management platform may be complicated, especially when managing this process for the first time.
If you have any questions concerning the management and configuration of software updates for your tech product, contact us, and our experts will get back to you shortly with all the answers.