The deepsy application framework is designed to solve many difficult problems surrounding updating software on devices operating in the field:
- Atomic update of libraries, executables, resource files, and configuration settings.
- Autonomous recovery from failed update attempts (i.e., due to power loss or connection loss).
- Autonomous roll-back when newly updated software fails.
Software update is primarily carried out by the Software Manager Service. This service accepts update packages that contain software/firmware update instrucions and associate data (i.e., libraries, executables, resources files, etc). The update packages fed to the Software Manager Service through:
- Command-line Update Tool.
- The Software Manager API.
- Automatically by the service.
System partitions
The system consist of several partitions that provides flexibility to swap between Kernels and RFSs:
Secure storage partition
This partition is mounted in read only mode and it is destined for configuration files that must persist between system updates. Changes in this partition requires privileges for avoiding accidental changes. This partition is mounted in /mntSFS/.
Kernel partitions
There are two partitions for holding kernel and dtb files. These two physical partitions are hidden to the final user. The user only see the running kernel and a hidden /.altkernel/ folder. This folder is managed by OTA updater for updating the kernel.
Root File System partitions
There are two partition for holding RFS. Same as kernel partitions, the final user only see the active RFS folder and a hidden /.altrfs/ folder. This folder is managed by OTA updater for updating the RFS.
User space partition
The final partition is a partition destined for holding final user files. This partition files also persist between system updates.