アプリをテストできるように Android Q Beta GSI をデバイスにインストールする方法

Google は、Android Q の 2 番目のベータ版の GSI をリリースしました。 これらのシステム イメージは、アプリのテストのために Project Treble 互換デバイスにインストールできます。 その方法は次のとおりです。

Android Q の最終リリースが近づくにつれ、開発者がアプリケーションを更新する時間が短縮されます。 Android 9 Pie (API レベル 28) はまだ大部分のデバイスに到達していませんが、Google Play の API レベル要件は満たしている必要があります。 すでによく知っている、2020 年には API レベル 29 をターゲットにする必要があります。 Android 9 Pie をターゲットにするようにアプリをまだ更新していない場合は、 それから 新しいアプリをリリースする予定がある場合は 8 月まで、既存のアプリを更新する予定がある場合は 11 月まで期限があります。 次の Android バージョンの開発を始めたい方は、すでにアプリをテストできます。 Android Studio エミュレータ または物理ハードウェアを所有している場合は、 Google Pixel スマートフォン. しかし今年、Google は開発者に最新の Android バージョンに対してアプリをテストする別の方法を提供します。 Android Q ベータ GSI Project Treble 互換デバイスに接続します。

プロジェクト・トレブル これは、スマートフォン デバイス メーカーがソフトウェアとセキュリティのアップデートを配信する速度を向上させるための主要な取り組みです。 簡単に言うと、Treble ではデバイス メーカーに対し、ハードウェアを動作させるソフトウェアと OS の背後にあるソフトウェアを分離することが求められます。 これにより、デバイス メーカーは既存のデバイス上で新しい Android リリースを起動できるため、新しい Android ソース コード リリースの上に既存のコード ベースを移植するという困難な作業を開始できるようになります。 CTS を補完するのは、デバイス メーカーが自社のデバイスが Project Treble の要件を満たしていることを確認するために使用する一連のテストである VTS (Vendor Test Suite) です。 デバイス メーカーがテストする最も重要なチェックの 1 つは、Treble 互換スマートフォンがいわゆる GSI (汎用システム イメージ) を起動できるかどうかです。 GSI は AOSP の未修正ビルドであり、デバイス メーカーが Treble を適切に実装しているかどうかを確認することを目的としています。 ただし、OEM を超えて、Google

信じています 開発者は GSI を Android アプリの互換性テストに使用できます。

たとえば、Google Pixel を所有していない場合、Google の条件に最も一致する条件下でアプリの動作をテストする唯一の方法があります。 ドキュメントは、自分の Pixel デバイスを入手するか、Android Studio エミュレータを起動するか、クラウド テストを調べるためのものです。 サービス。 これらにはそれぞれ長所と短所がありますが、既存の Treble 互換デバイスをお持ちで、お金をかけたくない、エミュレータの制限に対処したくないのであれば、それに GSI を導入してみてはいかがでしょうか。 アプリが GSI で動作する場合、その Android バージョンを実行しているほぼすべてのデバイスで動作するはずです。

これが、Android Q GSI をリリースするという Google の決定の背後にある思考プロセスであり、少なくともそれが私たちの考えです。 Android Q のソース コードは 8 月まで入手できないため、Google の公式 GSI バイナリが、現時点では実際の非 Pixel ハードウェアで Android Q をテストする唯一の方法です。 始める方法は次のとおりです。

要件

Android Q ベータ版のインストールを検討する前に、お使いのデバイスが Project Treble と互換性があり、ブートローダーからのシステム イメージのフラッシュを受け入れることができるかどうかを確認する必要があります。

要件:

  • お使いのデバイス しなければならない 一つ持っている ロック解除可能なブートローダー. 米国で販売されている Snapdragon Samsung スマートフォン、Huawei ブランドのデバイス、Honor ブランドのデバイス、および HMD Global の Nokia ブランドのデバイス ( ノキア8)ここでは資格がありません。
  • 最新の ADB および Fastboot バイナリが PC にインストールされています。 ここ. Fastboot の古いバージョンでは、不適切なフラッシュが発生する可能性があります。
  • お使いのデバイス しなければならない 会う 1つ Project Treble と互換性があるとみなされる以下の基準:
    • デバイスは Android 9 Pie で起動されました。 この場合は、このセクションの最後まで到達した後、高音域の互換性の確認をスキップできます。
    • デバイスは Android 8.0 Oreo または Android 8.1 Oreo で起動されましたが、VNDK 分離と system-as-root を備えた Android 9 Pie に更新されました。 それを見つける方法については、以下のセクションで詳しく説明します。

先に進む前に、GSI をフラッシュするには、ユーザーデータ パーティションの完全なワイプを実行する必要があることに言及する価値があります。 これは、デバイスの内部および外部 (/data/media) ストレージ上のすべての写真、ビデオ、音楽、ドキュメント、またはその他のものが失われることを意味します。 したがって、先に進む前にオフデバイスのバックアップを作成することを強くお勧めします。

次に、これらの GSI は CTS に合格していないことに注意してください。そのため、アプリが SafetyNet Attestation API を使用して、CTS プロファイルの一致によるデバイスの整合性をチェックする場合、それは機能しません。 また、これらのビルドは日常的な使用を目的としていないため、Android Q ですでに文書化されているバグに加えて、1 つ以上の基本的なハードウェア機能が動作しなくても驚かないでください。 Google はすでに GSI に関する既知の問題をいくつかリストアップしています。 ここ. 新たに発見したバグはすべて報告する必要があります ここ.

高音域の互換性を確認する

次のコマンドを実行します。

adbshellgetpropro.treble.enabled

応答が 間違いの場合、お使いのデバイスは Project Treble と互換性がないため、続行しないでください。 応答が 真実, その後は自由に先に進んでください。

次に、次のコマンドを実行して、クロスバージョンのサポートを確認します。

adb shell
cat /system/etc/ld.config.28.txt | grep -A 20"\[vendor\]"

出力内で次のセクションを探します。 [ベンダー]を選択し、そのセクション内で次の項目を探します。 名前空間.default.isoted. その属性の値が 真実の場合、デバイスは Android 9 Pie ベンダー イメージ上での Android Q GSI の起動をサポートする必要があります。 値が 間違いの場合、デバイスは同じデバイス上の OS バージョンの GSI のみを使用できます。

OnePlus 6T からのサンプル出力。

最後に、デバイスが root としてシステムになっているかどうかを確認する必要があります。この場合、RAM ディスクはシステム イメージとマージされます。 System-as-root は、Android 9 Pie にアップグレードするデバイスには必須ではありませんが、GSI 経由で新しい OS バージョンをフラッシュする場合など、システムのみの OTA をサポートするために必要です。 次のコマンドを実行し、出力が「system-as-root」と一致することを確認します。

adb shell
cat /proc/mounts | grep -q /dev/root && echo"system-as-root" || echo"non-system-as-root"

デバイスが Treble 互換であることがわかったので、アーキテクチャごとに異なるイメージがあるため、どのバージョンの GSI バイナリをダウンロードするかを判断する必要があります。 デバイスのアーキテクチャを確認するには、次のコマンドを実行します。

adbshellgetpropro.product.cpu.abi

GSI をダウンロードするときに必要になるため、ここの出力をメモしておきます。

GSI のダウンロード

Android Q ベータ GSI の公式ビルドのダウンロード リンクは Google から入手できます。 ここ. 前の手順で判明したデバイスのアーキテクチャに基づいて、適切なバージョンをダウンロードする必要があります。 GMS または Google モバイル サービスを使用してビルドをダウンロードする場合、ダウンロードはかなり大きくなります。Google Play サービスを使用してビルドでアプリをテストできるように、これを強くお勧めします。

ファイルのダウンロードが完了したら、解凍できます。 中には 2 つのファイルが含まれています。 システム.img、 そして vbmeta.img.

GSI のフラッシュ

  1. ボタンの組み合わせを使用するか、次のコマンドを発行して、デバイスのブートローダーを再起動します。
    adb reboot bootloader
  2. 次に、Android Verified Boot (AVB) を無効にする必要があります。 これを行うには、次のコマンドを入力します。
    fastbootflashvbmetavbmeta.img
  3. 次に、システム パーティションを消去しましょう。
    fastboot erase system
  4. 最後に、次のようにして Android Q GSI をフラッシュできます。
    fastbootflashsystemsystem.img
  5. それが完了したら、次のコマンドを使用して userdata パーティションを消去します。
    fastboot -w
  6. 電源ボタンを使用するか、次のコマンドを入力してデバイスを再起動します。
    fastboot reboot

うまくいけば、数分後に起動するはずです。 これらの手順は Pixel 3 XL で検証されましたが、普遍的に機能するはずです。 Android Q beta 2 GSI は OnePlus 6T では起動しませんが、Xiaomi Mi 9 では起動することを確認できます。 Sony Xperia XZ3 では動作する可能性がありますが、Moto G7 では起動しないと言われています。 Google の要件は同じ OS バージョンの GSI 互換性のみを確認するため、実際の走行距離は異なる場合があります。