サービス バンドルの更新

サービス バンドルは、システム全体のアップデートとは別に、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 のターゲット パーティション(公開鍵がプリインストールされたパーティションと同じ)に配置する必要があります。各パーティションには、専用のブロックリスト ファイルがあります。