Generic System Image(GSI)

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

アプリ デベロッパーは最新の Android GSI をインストールして実行し、さまざまな既存の Android デバイスでアプリテストを行うことが可能で、デベロッパー プレビュー ビルドやベータ版ビルドなど、さまざまな Android OS リリース ステージの GSI を使用できます。GSI を検証プロセスとテストプロセスに追加する利点は次のとおりです。

  • テストの範囲が広がり、実機デバイスの幅広いセットを対象にできる
  • アプリの互換性に関する問題の修正に時間を使うことができる
  • アプリ デベロッパーから報告された、Android の互換性の問題を修正する機会が増える

GSI プロジェクトはオープンソースであり、Android の次のリリースまでの間、アプリや OS の品質向上のためのさまざまな方法を提供することで、Android エコシステムの改善をサポートします。

さまざまなデバイスでの GSI のサポート
図 1: GSI は幅広いデバイスにインストール可能で、場合によっては、デバイスのメーカーが独自のシステム イメージを提供していないバージョンの Android にもインストールできます。

GSI に含まれるコアシステム機能は、インストールされるどのデバイスでも同じです。つまり、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 10(API バージョン 29)デバイスでは Android 10 の GSI イメージのみを読み込むことができます。

  3. GSI の CPU アーキテクチャ タイプがデバイスの CPU アーキテクチャと一致している必要があります。GSI イメージに適した CPU アーキテクチャを確認するには、次のコマンドを実行します。

    adb shell getprop ro.product.cpu.abi

    出力を利用して、デバイスに書き込む際にどの GSI イメージを使用するかを判断します。たとえば Google Pixel 5 では、CPU アーキテクチャが arm64-v8a であることが出力に示されるので、arm64 タイプの GSI を使用します。

GSI をダウンロードする

GSI の取得方法は開発のニーズによって異なります。

GSI をインストールする

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

  • GSI イメージを手動で書き込む: GSI の書き込みの要件をご覧ください。
  • Dynamic System Updates(DSU)を使用する(Android 10 以降が搭載されているデバイスの場合): Dynamic System Updates のページをご覧ください。

フィードバックする

GSI は、Android 上でアプリを検証できるようにすることを目的としています。イメージやツールについて、また、デバイスで GSI を使用する手順についてフィードバックをお寄せください。

バグの報告や機能リクエストには、GSI 向けの専用の Issue Tracker コンポーネントをご利用ください。

参考情報