サービス バンドルは、システム全体のアップデートとは別に、APEX パッケージとして更新できます。SDV では、この更新プロセスは SDV アップデート マネージャーによって管理されます。 更新を有効にするには、デバイスを再起動する必要があります。
サービス バンドルの更新では、次の 2 種類の APEX がサポートされています。
プリインストールされた APEX: APEX パッケージの以前のバージョンが、読み取り専用パーティション(
/system、/system_ext、/product、/vendor、/odm)のいずれかにすでに 存在します。新しい APEX: 読み取り専用パーティションに、同じ名前(
apex_manifest.jsonで宣言されている名前)の APEX パッケージが存在しません。
プリインストールされた APEX
これは、サービス バンドルを更新する最も一般的な方法であり、推奨される方法です。この更新を有効にするには、新しい APEX パッケージが次の要件を満たしている必要があります。
apex_manifest.jsonのパッケージ名が、プリインストールされた APEX と同じである。apex_manifest.jsonで、プリインストールされた APEX よりも高いバージョン コードを宣言する。プリインストールされた APEX と同じ鍵ペアで APEX に署名する。
新しい APEX
プリインストールされた APEX を使用することがセキュリティのベスト プラクティスですが、新しい APEX もサポートされています。このアプローチを使用する場合、パートナーは包括的なセキュリティ プロトコルを維持する責任を負います。これには次の責任が含まれます。
これらの APEX に使用される署名鍵を安全に管理する。
悪意のあるパッケージを特定してブロックする堅牢なプロセスを確立する。
可能な限り、以降のシステム アップデートで新しい APEX をプリインストールされた APEX に変換する。
新しい APEX をインストールまたは更新するには、次の構成が必要です。
信頼できる公開鍵をプリインストールする
新しい APEX をインストールするには、その公開署名鍵をターゲット パーティションにプリインストールする必要があります。公開鍵を /partition/etc/brand_new_apex/ に配置します。
ここで、/partition/ は、Treble ルールに基づいて APEX が関連付けられているパーティションを表します。
Treble ルールに基づいて APEX が関連付けられているパーティションを表します。たとえば、APEX の署名が /vendor/etc/brand_new_apex/ の公開鍵に対して検証される場合、ベンダー APEX として動作します。
プリインストールされた公開鍵に対応する鍵で署名されていない新しい APEX は、システムによって拒否されます。
悪意のある新しい APEX をブロックする
インストール後に新しい APEX が悪意のあるものとして識別された場合は、システム アップデートを使用してブロックする必要があります。これを行うには、APEX パッケージ名を /partition/etc/brand_new_apex/blocklist.json のブロックリスト ファイルに追加します。このブロックリストは、APEX のターゲット パーティション(公開鍵がプリインストールされたパーティションと同じ)に配置する必要があります。各パーティションには、専用のブロックリスト ファイルがあります。