Comparison of OTA update frameworks for Linux based IoT devices
Mäkipää, Milan (2022)
Mäkipää, Milan
2022
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-11-23
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202211118342
https://urn.fi/URN:NBN:fi:tuni-202211118342
Tiivistelmä
Remotely updating IoT devices introduces several issues concerning the device and the delivery of updates. The devices should be able to recover from failed updates to a functional state. Delivery of updates should scale with the size of the fleet in addition to the possibility of monitoring the state of the devices.
The complexity of the updates has an effect on how difficult these previous issues are to overcome. Only updating parts of the software is simpler and possible to implement in a way where the integrity of the operating system is not endangered. Updating the entire operating system makes it possible to deliver more overarching updates remotely, but failures in installation can endanger the integrity of the system.
This paper introduces an use case based on an existing IoT system and compares three update frameworks, SWUpdate, Mender and BalenaOS, for their suitability for providing remote updates. The comparison is first done based on relevant documentation and other literature and by further examining one with a proof of concept style prototype. This work only evaluates the frameworks in prototype use cases. In production use all of them would require additional work to integrate with the required security features.
Of the three frameworks, BalenaOS provides most of the required features while avoiding some of the shortcomings of the others. However some of the advantages it has over other solutions come with significant vendor lock-in. Additionally getting started with prototyping systems with BalenaOS is somewhat difficult, if additional libraries have to be added to the root operating system.
The complexity of the updates has an effect on how difficult these previous issues are to overcome. Only updating parts of the software is simpler and possible to implement in a way where the integrity of the operating system is not endangered. Updating the entire operating system makes it possible to deliver more overarching updates remotely, but failures in installation can endanger the integrity of the system.
This paper introduces an use case based on an existing IoT system and compares three update frameworks, SWUpdate, Mender and BalenaOS, for their suitability for providing remote updates. The comparison is first done based on relevant documentation and other literature and by further examining one with a proof of concept style prototype. This work only evaluates the frameworks in prototype use cases. In production use all of them would require additional work to integrate with the required security features.
Of the three frameworks, BalenaOS provides most of the required features while avoiding some of the shortcomings of the others. However some of the advantages it has over other solutions come with significant vendor lock-in. Additionally getting started with prototyping systems with BalenaOS is somewhat difficult, if additional libraries have to be added to the root operating system.