Generic System Image(GSI)は、Android オープンソース プロジェクト(AOSP)の未変更のコードを使用した「純粋な Android」の実装です。各種の Android デバイスで実行できます。

図 1. GSI はさまざまなデバイスに対応しています。
Android 9(API レベル 28)以降では、Generic System Image(GSI)は Android リリース サイクルの全期間を通じてアプリ デベロッパーに提供されています。アプリ デベロッパーは、既存のさまざまな Android デバイスに最新の Android GSI をインストールして実行できます。また、プレビュー フェーズやベータフェーズなど、Android OS の各リリース ステージでアプリのテストを実施できます。 これによりアプリのテスト カバレッジが広がり、以前に比べてかなり早い段階でテストを開始できます。
- 実際のデバイスでのテスト カバレッジが広がる
- アプリの互換性に関する問題を修正する時間が増える
- アプリ デベロッパーから報告された Android OS の非互換性に関する問題を修正する機会が増える
注: GSI をインストールする際はデバイスに現在インストールされている Android のバージョンより新しいバージョンをインストールします。
GSI プロジェクトは、OS の次のリリースまでの間、アプリや OS の品質向上のためのさまざまな方法を提供することで、Android エコシステムの改善をサポートします。GSI プロジェクトもオープンソースとして公開されています。
GSI には、Android 9 以降が搭載されているすべてのデバイスの主要なシステム機能が含まれています。つまり、GSI にはデバイス メーカーによるカスタマイズは含まれていません。ただし、次のような状況では、動作の違いが生じる場合があります。
- UI を含む操作
- 新しいハードウェア機能をリクエストするワークフロー
デバイスのコンプライアンスを確認する
GSI は次の特性を持つデバイスでのみ動作します。
- ブートローダーがロックされていない
- Treble に完全に対応している
- Android 9(API レベル 28)以降を搭載してリリースされた(以前のバージョンから Android 9 にアップグレードされたデバイスには、GSI をサポートしていないものもあります)
お使いのデバイスで GSI を使用できるかどうか、どの GSI OS バージョンをインストールすべきかを判断するには、次の手順を行います。
-
次のコマンドを実行して、Treble をサポートしているかどうかを確認します。
adb shell getprop ro.treble.enabled
レスポンスが
false
の場合、デバイスは GSI に対応していないため、続行できません。レスポンスがtrue
の場合は、次の手順に進みます。 -
次のコマンドを実行して、クロスバージョンをサポートしているかどうかを確認します。
adb shell cat /system/etc/ld.config.version_identifier.txt \ | grep -A 20 "\[vendor\]"
出力で、
[vendor]
セクションのnamespace.default.isolated
を確認します。この属性の値が
true
の場合、デバイスは Vendor Native Development Kit(VNDK)を完全にサポートしており、GSI オペレーティング システム(OS)のバージョンがデバイスの OS バージョンより新しければ、どのバージョンでも使用できます。 利用できる最新の GSI OS バージョンを選択してください。属性の値が
false
の場合、デバイスは完全には VNDK に対応していません。デバイスに搭載されているのと同じ OS バージョンの GSI のみを使用できます。たとえば、VNDK に対応していない Android 9(API バージョン 28)デバイスでは Android 9 の GSI イメージのみを読み込むことができます。 -
GSI の CPU アーキテクチャ タイプがデバイスの CPU アーキテクチャと一致している必要があります。GSI イメージに適した CPU アーキテクチャを確認するには、次のコマンドを実行します。
adb shell getprop ro.product.cpu.abi
出力を利用して、デバイスに書き込む際にどの GSI イメージを使用するかを判断します。たとえば Pixel 3 では、CPU アーキテクチャが
arm64-v8a
であることが出力に示されるので、arm64
タイプの GSI を使用します。
GSI イメージをダウンロードする
下記のバージョンの GSI は、OEM がコンプライアンス テストの実施と送信のために使用することはできません。コンプライアンス テスト関連のアクティビティでは、OEM は引き続き既存のコミュニケーション チャネル(テクニカル アカウント マネージャーなど)に問い合わせる必要があります。
GSI の取得方法は開発のニーズによって異なります。
- Android プレビュー GSI と Android GSI(GMS あり): GSI リリースページからダウンロードします。
- 事前ビルド済み GSI イメージ(GMS アプリなし): AOSP CI サイトからダウンロードします。
- GMS なしで Android GSI をビルドするには、ソースコードを AOSP からダウンロードして GSI をビルドします。
GSI イメージをインストールする
注: デバイスに Android の確認付きブート(AVB)が導入されている場合は、GSI を書き込む前に vbmeta.img をダウンロードして書き込み、AVB を無効にします。
GSI のインストール方法はデバイスによって異なります。使用するツールや手順については、デバイスのメーカーにお問い合わせください。 Pixel 3 以降のデバイスでは、次のインストール方法を使用できます。
フィードバックをお寄せください
GSI イメージは Android 上でアプリを検証するのに役立ちます。イメージやツールについて、また、デバイスで GSI を有効にする手順についてフィードバックをお寄せください。
バグや機能リクエストをお送りいただくには、専用の Issue Tracker コンポーネントをご利用ください。