Armadillo Base OS のソフトウェアアップデート機能の特徴

Armadillo TwinArmadillo Base OS 搭載デバイスと連携することで、OTA、有線を経由したリモートアップデートを実現することができます。

SWUpdate

Armadillo Base OS は SWUpdate を利用してソフトウェアアップデート機能を実現しています。SWUpdate はデバイス上で実行されるプログラムで、ネットワーク/ストレージ経由でデバイスのソフトウェアをアップデートすることができます。 Stefano Babic, DENX software engineering, Germany によってオープンソースで開発が進められています。

SWUpdate Documentation
https://sbabic.github.io/swupdate/

A/Bアップデート (アップデートの2面化)

Armadillo Base OS のアーキテクチャでは、OSやブートローダー、アプリケーションなどフラッシュメモリのコンテンツを二重化して2つのバンクに配置します。アップデートを行うときには、動作中のバンクには変更を加えず、通常動作しながらスタンバイバンクをアップデートします。そのため、たとえ電源断、ネットワーク切断、ソフトウェアの問題による中断があっても動作中のバンクには影響ありません。アップデートが完了するとスタンバイしているバンクへと切り替えます。つまり、アップデートを繰り返すと交互にバンクを切り替えることになります。

リカバリー (ロールバック)動作

動作が不安定なソフトウェアを書いてしまい、システムが起動できなくなった際に自動的にアップデート前のシステムにロールバックする機能を提供します。ブートに必要なファイルが存在しない場合、もしくは、3回起動に失敗した場合に、スタンバイバンクからの起動を試みます。主に動作が不安定な開発フェーズを想定しており、セキュリティ上の懸念があれば市場運用で無効にすることができます。

アップデートファイルの圧縮、暗号化、署名付与

アップデート内容は swu 形式ファイルにまとめられてアップデート処理で利用されます。swu 形式ファイルは圧縮、暗号化、署名付与に対応しています。

ダウングレードの防止

ユーザー定義のバージョンを利用してソフトウェアがダウングレードするのを防ぐことができます。開発フェーズ向けにダウングレード防止機能を無効にすることも可能です。