ダイナミック Android により、開発者は任意の Android Q デバイスで AOSP をテストできるようになります

Dynamic Android と呼ばれる新しいプロジェクトにより、開発者は Android Q 以降を実行する任意のデバイスで AOSP Android Q GSI をテストできるようになります。

おかげで プロジェクト・トレブル, スマートフォン デバイス メーカーは、少なくとも主力スマートフォンでは、Android Oreo アップデートよりも早く Android Pie ソフトウェア アップデートを配信してきました。 ただし Google は、OEM だけが Project Treble の恩恵を受けることを望んでいません。 同社は以前、 関心を示した 開発者がエミュレータに依存する必要がないように Android Q の汎用システム イメージ (GSI) をリリースするには、 クラウドサービスまたは、自分のデバイスのアップデートを待って、最新の API レベルに対してアプリをテストします。 理論的には、GSI をリリースすると、Project Treble 互換デバイス (元々は Android) を使用する開発者は誰でも使用できるようになります。 8.0 Oreo 以降。ただし、最新の Android をテストするには Android 9 Pie で起動するデバイスのみとみなされます) バージョン。 開発者が行う必要があるのは、既存のソフトウェア インストールの上にシステム イメージをフラッシュすることだけです。カスタム リカバリ、ブート、ベンダー イメージは必要ありません。

ただし、現在の GSI インストール プロセスにはいくつかの問題があります。 まず、ロックされていないブートローダーが必要です。 不可能です Huawei または Honor デバイスで (料金を支払わずに) 料金)、HMD Global の Nokia デバイス ( ノキア8)、または米国の通信事業者ブランドのデバイス。 次に、 プロセス fastboot によるイメージのフラッシュに慣れていない人にとっては難しいでしょう。 最後に、今 GSI をフラッシュするには、内部ストレージを完全に消去する必要があります。つまり、テスト用に予備のデバイスが必要になる可能性があります。 現時点では、GSI のフラッシュは、OEM が自社のデバイスで Project Treble との互換性をテストするために使用するものにすぎず、それ以上に魅力的なのは熱心なユーザーのみです。

カスタムROM愛好家. Googleの新しい「Dynamic Android」プロジェクトは、この状況を変えようとするかもしれない。

動的 Android - あらゆる Android Q デバイスで AOSP GSI を簡単にテスト

過去数か月間、Google はブートローダーのロックを解除せずに GSI を安全に起動する方法に取り組んできました。 つまり、Google は、GSI をダウンロードし、そのストレージ スペースを予約し、GSI を起動可能としてマークできる特別な権限を持つアプリを開発しています。 このプロジェクトにはいくつかのコンポーネントがあるため、1 つずつ説明します。

ダイナミック Android と Android On Tap

Android Q には、Dynamic Android サービスと Android On Tap サービスという 2 つの新しいサービスが追加されています。 Dynamic Android が GSI のインストールを処理する一方で、Android On Tap はシステム アプリにコールバックとブロードキャスト インテントを通知します。 たとえば、Android On Tap は、デバイスが PIN、パスワード、またはパターンで保護されている場合、KeyguardManager に警告して、ユーザーにインストール要求を確認するよう求めます。 AOT は、ユーザーが GSI で起動するときにも警告します。

「DynamicAndroidManager」の説明によると、このサービスは「新しい Android を使用するメカニズムを提供します」 イメージを一時的に作成します。」 インストール後、デバイスは、新しく作成されたイメージを使用して新しくインストールされたイメージで再起動できます。 /data. GSI 内で再起動すると、ユーザーは元のシステム イメージに戻りますが、新しくインストールされたイメージとそのデータは無効になるだけで、削除されません。 ただし、ユーザーがそうすることを選択した場合、GSI とそのデータは完全に削除できます。

出典: [1], [2], [3], [4]

GSID

GSI デーモンは、GSI イメージとそのデータを保存し、イメージを起動可能にするために、/data パーティションにスペースを割り当てます。 地理院のメタデータは /metadata に格納され、地理院自体とそのデータは /data/gsi に格納されます。 デフォルトでは、GSID は新しくインストールされた GSI に 8GB のユーザーデータを割り当てます。 一般に、GSID はインストールを開始する前に少なくとも 40% の空き領域を探します。 最後に、デーモンは、明らかな理由により、ユーザーが GSI 内に GSI をインストールすることを妨げます。

出典: [1], [2], [3], [4]

安全

新しくインストールされた EXT4 システム イメージ (/system にマウントされた system_gsi) に対して Android 検証ブート (AVB) が有効になります。 Google は、新しいサービスに対して SELinux ポリシーも実装しました。 最後に、GSI をインストールするには、アプリに新しい MANAGE_DYNAMIC_ANDROID 権限が必要です。 これは署名レベルの権限であり、アプリが OEM によって署名されている必要があることを意味します。

出典: [1], [2]

ADB および Fastboot コマンド

GSI は、新しい ADB コマンドを使用してインストールすることもできます。 新しい ADB gsi_tool シェル コマンドを使用すると、ユーザーは無効化、再有効化、インストール、保存を行うことができます。 ユーザーデータ、ユーザーデータのインストールと作成、ユーザーデータのインストールと消去、またはステータスの確認 インストール。

gsi_tool - command-line tool for installing GSI images.

Usage:
gsi_tool <disable|install|wipe|status> [options]

disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus

GSI を管理するために 2 つの新しい fastboot コマンドが追加されますが、fastboot はユーザーデータをマウントできないため、fastboot のインストールはサポートされていません。

fastboot gsi wipe
fastboot gsi disable

出典: [1], [2]

これは誰に利益をもたらしますか?

アプリ開発者は Dynamic Android と Android On Tap を活用できるようになると言いたいのですが、完全に確信があるわけではありません。 Google はまさにこれに関心を示していますが、この機能が今後のすべての Android Q リリースで利用可能になるという保証はありません。 Google 以外の OEM。 デバイス上でこれを利用するには、ソフトウェアには、同じ証明書によって署名された GSI ピッカー アプリが必要です。 ロム。 また、SELinux ポリシーのため、ADB ルートなしで ADB から GSI をインストールできるかどうかもわかりません。アップデート: 新しい 専念 GSI_tool を使用するには ADB ルートが必要であることを確認します。 これが、アプリ開発者が Android のクリーン ビルドでアプリをテストすることを目的としていない場合、おそらく、 互換性テスト スイート (CTS) とベンダー テスト スイート (VTS) をテストしたいと考えている OEM のエンジニアに役立ちます。 デバイス。

XDA 認定開発者に感謝します ルカ020400 この記事に対する彼の協力に感謝します。