Libostree, previous known as OSTree, is both a shared library and suite of command line tools that combines a “git-like” model for committing, downloading and downloading bootable filesystem trees.
Yocto/OpenEmbedded layer meta-updater provides libostree and Aktualizr in Automotive Grade Linux (AGL). Aktualizr is a C++ reference implementation of SOTA OTA update client integrated with libostree.
Although the straight-forward way for doing Software OTA updates in AGL is through ATS Garage, it is also possible to use directly OSTree built with the agl-sota feature and meta-updater.
Required hardware for setting up a demo Raspberry Pi 3:
For example, the following procedure performs an update of AGL image on Raspberry Pi and adds the simple text editor nano:
IMAGE_INSTALL_append = " nano "
cd tmp/deploy/images/raspberrypi3/ostree_repo
python -m SimpleHTTPServer 8000
ostree remote add --no-gpg-verify agl http://<host_ip>:8000
ostree pull agl raspberrypi3
ostree admin deploy agl:raspberrypi3
systemctl reboot