Mit Dynamic Android können Entwickler AOSP auf jedem Android Q-Gerät testen

Ein neues Projekt namens Dynamic Android ermöglicht es Entwicklern, AOSP Android Q GSIs auf jedem Gerät mit Android Q oder höher zu testen.

Dank an Projekt Treblehaben Hersteller von Smartphone-Geräten Software-Updates für Android Pie schneller bereitgestellt, als sie dies für das Android Oreo-Update tun konnten, zumindest für Flaggschiff-Smartphones. Google möchte jedoch nicht, dass nur OEMs von Project Treble profitieren. Das Unternehmen hat zuvor Interesse bekundet Wenn Sie ein Generic System Image (GSI) von Android Q für Entwickler veröffentlichen möchten, damit diese nicht auf Emulatoren angewiesen sind, verwenden Sie a Cloud-Dienst, oder auf ein Update auf dem eigenen Gerät warten, um eine App mit der neuesten API-Ebene zu testen. Theoretisch sollte die Veröffentlichung eines GSI jedem Entwickler mit einem Project Treble-kompatiblen Gerät (ursprünglich Android) ermöglichen 8.0 Oreo und höher, aber jetzt werden nur Geräte berücksichtigt, die mit Android 9 Pie starten), um das neueste Android zu testen Ausführung. Der Entwickler muss lediglich ein Systemabbild zusätzlich zu seiner vorhandenen Softwareinstallation flashen – es ist kein benutzerdefiniertes Wiederherstellungs-, Start- oder Anbieter-Image erforderlich.

Allerdings gibt es beim aktuellen GSI-Installationsprozess mehrere Probleme. Zunächst benötigen Sie einen entsperrten Bootloader ist nicht möglich auf Huawei- oder Honor-Geräten (ohne Bezahlung). eine Gebühr), Nokia-Geräte von HMD Global (ausgenommen Nokia 8) oder Geräte der US-amerikanischen Mobilfunkanbietermarke. Als nächstes die Verfahren wird für jeden schwierig sein, der mit dem Flashen von Bildern per Fastboot nicht vertraut ist. Wenn Sie jetzt ein GSI flashen möchten, müssen Sie schließlich den internen Speicher vollständig löschen, was bedeutet, dass Sie wahrscheinlich ein Ersatzgerät zum Testen benötigen. Derzeit ist das Flashen eines GSI nur etwas, das OEMs verwenden, um die Project Treble-Kompatibilität auf ihren Geräten zu testen, und darüber hinaus ist es nur für eingefleischte Menschen attraktiv Custom-ROM-Enthusiasten. Das neue „Dynamic Android“-Projekt von Google könnte das ändern.

Dynamisches Android – Testen Sie AOSP-GSIs ganz einfach auf jedem Android Q-Gerät

In den letzten Monaten hat Google an einer Möglichkeit gearbeitet, ein GSI sicher zu starten, ohne den Bootloader entsperren zu müssen. Kurz gesagt, Google entwickelt eine App mit speziellen Berechtigungen, die es ihm ermöglichen, ein GSI herunterzuladen, Speicherplatz dafür zu reservieren und das GSI als bootfähig zu markieren. Dieses Projekt besteht aus mehreren Komponenten, also lassen Sie uns diese einzeln besprechen.

Dynamisches Android und Android On Tap

Zwei neue Dienste werden zu Android Q hinzugefügt: die Dienste Dynamic Android und Android On Tap. Während Dynamic Android die Installation eines GSI übernimmt, informiert Android On Tap System-Apps mit Rückrufen und Broadcast-Intents. Beispielsweise weist Android On Tap den KeyguardManager darauf hin, den Benutzer aufzufordern, eine Installationsanfrage zu bestätigen, wenn das Gerät durch eine PIN, ein Passwort oder ein Muster geschützt ist. AOT warnt den Benutzer auch, wenn er in ein GSI gebootet wird.

Laut der Beschreibung für „DynamicAndroidManager“ bietet der Dienst „einen Mechanismus zur Nutzung eines neuen Android.“ Image temporär.“ Nach der Installation kann das Gerät mit einem neu erstellten Image neu gestartet werden /data. Durch einen Neustart im GSI kehrt der Benutzer zum ursprünglichen Systemabbild zurück, das neu installierte Abbild und seine Daten werden jedoch lediglich deaktiviert und nicht gelöscht. Wenn der Benutzer dies wünscht, können das GSI und seine Daten jedoch vollständig entfernt werden.

Quellen: [1], [2], [3], [4]

GSID

Der GSI-Daemon weist Speicherplatz in der /data-Partition zu, um das GSI-Image und seine Daten zu speichern und das Image bootfähig zu machen. Die Metadaten des GSI werden in /metadata gespeichert, während das GSI selbst und seine Daten in /data/gsi gespeichert werden. Standardmäßig weist GSID 8 GB Benutzerdaten für das neu installierte GSI zu. Im Allgemeinen sucht GSID vor Beginn einer Installation nach mindestens 40 % freiem Speicherplatz. Schließlich verhindert der Daemon aus offensichtlichen Gründen, dass der Benutzer eine GSI innerhalb einer GSI installiert.

Quellen: [1], [2], [3], [4]

Sicherheit

Android Verified Boot (AVB) ist für das neu installierte EXT4-Systemabbild aktiviert (system_gsi in /system gemountet). Google hat auch SELinux-Richtlinien für die neuen Dienste implementiert. Schließlich erfordert die Installation eines GSI, dass eine App über die neue MANAGE_DYNAMIC_ANDROID-Berechtigung verfügt. Dies ist eine Berechtigung auf Signaturebene, was bedeutet, dass die App vom OEM signiert werden muss.

Quellen: [1], [2]

ADB- und Fastboot-Befehle

GSIs können auch über neue ADB-Befehle installiert werden. Mit dem neuen ADB-Shell-Befehl gsi_tool können Benutzer deaktivieren, erneut aktivieren, installieren und beibehalten Benutzerdaten, Benutzerdaten installieren und erstellen, Benutzerdaten installieren und löschen oder den Status überprüfen Installation.

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

Zur Verwaltung des GSI werden zwei neue Fastboot-Befehle hinzugefügt. Die Fastboot-Installation wird jedoch nicht unterstützt, da Fastboot keine Benutzerdaten bereitstellen kann.

fastboot gsi wipe
fastboot gsi disable

Quellen: [1], [2]

Wem wird das nützen?

Ich möchte sagen, dass App-Entwickler die Vorteile von Dynamic Android und Android On Tap nutzen können, bin mir aber nicht ganz sicher. Obwohl Google Interesse daran bekundet hat, gibt es keine Garantie dafür, dass diese Funktion in jeder Android Q-Version verfügbar sein wird Nicht-Google-OEMs. Um dies auf dem Gerät nutzen zu können, benötigt die Software eine GSI-Auswahl-App, die mit demselben Zertifikat signiert ist wie das ROM. Ich bin mir auch nicht sicher, ob die Installation von GSIs von ADB aufgrund der SELinux-Richtlinien ohne ADB-Root möglich sein wird.Aktualisieren: Ein neuer begehen bestätigt, dass für die Verwendung von GSI_tool ein ADB-Root erforderlich ist. Wenn dies nicht dazu gedacht ist, dass App-Entwickler ihre Apps auf einem sauberen Android-Build testen, dann wahrscheinlich nur Davon profitieren Ingenieure von OEMs, die die Compatibility Test Suite (CTS) und die Vendor Test Suite (VTS) auf ihren Geräten testen möchten Geräte.

Besonderer Dank geht an den anerkannten XDA-Entwickler luca020400 für seine Unterstützung bei diesem Artikel.