Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Generic System Image

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

さまざまなデバイスでの GSI のサポート

図 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 バージョンをインストールすべきかを判断するには、次の手順を行います。

  1. 次のコマンドを実行して、Treble をサポートしているかどうかを確認します。

    adb shell getprop ro.treble.enabled

    レスポンスが false の場合、デバイスは GSI に対応していないため、続行できません。レスポンスが true の場合は、次の手順に進みます。

  2. 次のコマンドを実行して、クロスバージョンをサポートしているかどうかを確認します。

    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 イメージのみを読み込むことができます。

  3. 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 11 プレビュー GSI と Android 10 GSI(GMS あり): GSI リリースページからダウンロードします。
  • 事前ビルド済み GSI イメージ(GMS アプリなし): AOSP CI サイトからダウンロードします。
  • GMS なしで Android 10 と Android 9 の GSI をビルドするには、ソースコードを AOSP からダウンロードして GSI をビルドします。

GSI イメージをインストールする

注: デバイスに Android の確認済みの起動(AVB)が導入されている場合は、GSI を書き込む前に vbmeta.img をダウンロードして書き込み、AVB を無効にします。

GSI のインストール方法はデバイスによって異なります。使用するツールや手順については、デバイスのメーカーにお問い合わせください。 Pixel 3 以降のデバイスでは、次のインストール方法を使用できます。

  • GSI イメージを手動で書き込む - GSI の書き込みの説明をご覧ください。
  • Dynamic System Updates(DSU)を使用する(Android 10 が搭載されているデバイスの場合)- DSU のサイトをご覧ください。
  • フィードバックをお寄せください

    GSI イメージは Android 上でアプリを検証するのに役立ちます。イメージやツールについて、また、デバイスで GSI を有効にする手順についてフィードバックをお寄せください。

    バグや機能リクエストをお送りいただくには、専用の Issue Tracker コンポーネントをご利用ください。

    参考情報