So installieren Sie Android Q Beta GSI auf Ihrem Gerät, damit Sie Ihre Apps testen können

Je näher wir der endgültigen Android Q-Version kommen, desto kürzer wird die Zeit für Entwickler, ihre Anwendungen zu aktualisieren. Obwohl Android 9 Pie (API-Level 28) die meisten Geräte noch nicht erreicht hat, werden Sie aufgrund der API-Level-Anforderungen von Google Play, über die Sie sich bereits im Klaren sein sollten, gezwungen sein, das API-Level 29 im Jahr 2020 zu erreichen Sie haben Ihre App bereits auf Android 9 Pie aktualisiert. Sie haben dann bis August Zeit, um eine neue App zu starten, oder bis November, um eine vorhandene App zu aktualisieren. Wenn Sie mit der Entwicklung der nächsten Android-Version beginnen möchten, können Sie Ihre App bereits mit dem Android Studio-Emulator oder auf physischer Hardware testen, wenn Sie ein Google Pixel-Smartphone besitzen. In diesem Jahr bietet Google Entwicklern jedoch eine weitere Möglichkeit, ihre Apps gegen die neueste Android-Version zu testen: das Flashen einer Android Q-Beta-GSI auf ein Project Treble-kompatibles Gerät.

Project Treble ist eine wichtige Initiative zur Verbesserung der Geschwindigkeit, mit der Smartphone-Gerätehersteller Software- und Sicherheitsupdates veröffentlichen können. Kurz gesagt, Treble verlangt, dass Gerätehersteller die Software, mit der die Hardware funktioniert, von der Software hinter dem Betriebssystem trennen. Dies ermöglicht Geräteherstellern, neue Android-Versionen auf ihren vorhandenen Geräten zu starten, sodass sie die mühsame Aufgabe starten können, ihre vorhandene Codebasis auf die neue Android-Quellcode-Version zu portieren. Ergänzend zu CTS ist VTS oder Vendor Test Suite eine Reihe von Tests, mit denen Gerätehersteller überprüfen, ob ihr Gerät die Anforderungen von Project Treble erfüllt. Eine der wichtigsten Prüfungen, die Gerätehersteller durchführen müssen, ist die Fähigkeit eines Treble-kompatiblen Smartphones, ein sogenanntes GSI- oder generisches System-Image zu starten. Eine GSI ist eine nicht modifizierte Version von AOSP, mit der Gerätehersteller überprüfen können, ob sie Treble ordnungsgemäß implementiert haben. Abgesehen von OEMs ist Google jedoch der Ansicht, dass GSIs von Entwicklern für Android-App-Kompatibilitätstests verwendet werden können.

Wenn Sie beispielsweise kein Google Pixel besitzen, können Sie das Verhalten Ihrer App unter den Bedingungen testen, die am besten mit der Dokumentation von Google übereinstimmen, indem Sie entweder ein eigenes Pixel-Gerät erwerben und den Android Studio-Emulator starten oder sehen Sie sich einen Cloud-Testdienst an. Jedes hat seine Vor- und Nachteile. Wenn Sie jedoch ein vorhandenes Treble-kompatibles Gerät haben und kein Geld ausgeben oder sich mit den Einschränkungen eines Emulators auseinandersetzen möchten, sollten Sie eine GSI darauf aufsetzen. Wenn Ihre App auf einem GSI-System funktioniert, sollte sie auf fast allen Geräten funktionieren, auf denen diese Android-Version ausgeführt wird.

Das ist der Denkprozess hinter Googles Entscheidung, Android Q GSIs zu veröffentlichen, oder zumindest denken wir, dass dies so ist. Der Quellcode für Android Q wird erst im August verfügbar sein, daher sind die offiziellen GSI-Binärdateien von Google derzeit die einzige Möglichkeit, Android Q auf echter Hardware ohne Pixel zu testen. So können Sie beginnen.

Bedarf

Bevor Sie überhaupt die Installation von Android Q Beta in Betracht ziehen, sollten Sie prüfen, ob Ihr Gerät Project Treble-kompatibel ist und blinkende Systemabbilder vom Bootloader akzeptiert.

Bedarf:

  • Ihr Gerät MUSS einen freischaltbaren Bootloader haben . Snapdragon Samsung-Smartphones, die in den USA verkauft werden, Geräte der Marke Huawei, Geräte der Marke Honor sowie Geräte der Marke Nokia von HMD Global (mit Ausnahme des Nokia 8) sind hiervon nicht betroffen.
  • Sie haben die neuesten ADB- und Fastboot-Binärdateien auf Ihrem PC installiert, die Sie hier finden. Veraltete Versionen von Fastboot können zu falschen Blitzen führen.
  • Ihr Gerät MUSS eines der folgenden Kriterien erfüllen, um Project Treble-kompatibel zu sein:
    • Das Gerät mit Android 9 Pie gestartet. In diesem Fall können Sie die Bestätigung der Treble-Kompatibilität überspringen, nachdem Sie das Ende dieses Abschnitts erreicht haben.
    • Das Gerät wurde mit Android 8.0 Oreo oder Android 8.1 Oreo gestartet, aber mit VNDK-Isolierung und System-as-Root auf Android 9 Pie aktualisiert. Wie Sie das herausfinden, erfahren Sie im folgenden Abschnitt.

Bevor wir fortfahren, sollten Sie erwähnen, dass Sie zum Flashen einer GSI ein vollständiges Löschen der Benutzerdatenpartition durchführen müssen. Dies bedeutet, dass Sie alle Fotos, Videos, Musik, Dokumente oder andere Daten auf dem internen und externen Speicher des Geräts (/ Daten / Medien) verlieren. Es wird daher dringend empfohlen, ein Backup außerhalb des Geräts zu erstellen, bevor Sie fortfahren.

Beachten Sie als Nächstes, dass diese GSIs CTS nicht bestanden haben. Wenn Ihre App die SafetyNet Attestation-API verwendet, um die Geräteintegrität mit einer CTS-Profilübereinstimmung zu überprüfen, funktioniert dies nicht. Außerdem sind diese Builds nicht für den täglichen Gebrauch vorgesehen. Seien Sie also nicht überrascht, wenn eine oder mehrere grundlegende Hardwarefunktionen nicht zusätzlich zu den bereits dokumentierten Fehlern in Android Q ausgeführt werden. Google hat bereits einige bekannte Probleme mit dem aufgeführt GSI, die Sie hier finden. Alle neuen Fehler, die Sie finden, sollten hier abgelegt werden.

Bestätigung der Treble-Kompatibilität

Führen Sie den folgenden Befehl aus:

 adb shell getprop ro.treble.enabled 

Wenn die Antwort falsch ist, ist Ihr Gerät nicht mit Project Treble kompatibel und Sie sollten nicht fortfahren. Wenn die Antwort wahr ist, können Sie weitermachen.

Überprüfen Sie als Nächstes die versionsübergreifende Unterstützung, indem Sie die folgenden Befehle ausführen:

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

Suchen Sie in der Ausgabe nach dem Abschnitt [Hersteller] und suchen Sie dann in diesem Abschnitt nach namespace.default.isolated . Wenn der Wert für dieses Attribut wahr ist, sollte Ihr Gerät das Starten der Android Q GSI über einem Android 9 Pie-Anbieter-Image unterstützen. Wenn der Wert false ist, kann Ihr Gerät die GSI nur für dieselbe Geräteversion des Betriebssystems verwenden.

Beispielausgabe eines OnePlus 6T.

Zuletzt müssen Sie überprüfen, ob Ihr Gerät als Root-System konfiguriert ist, in dem die Ramdisk mit dem System-Image zusammengeführt wird. System-as-Root ist für Geräte, die ein Upgrade auf Android 9 Pie durchführen, nicht obligatorisch, wird jedoch zur Unterstützung eines systemspezifischen OTA benötigt, z. B. für den Fall, dass eine neue Betriebssystemversion über GSI geflasht wird. Führen Sie die folgenden Befehle aus und stellen Sie sicher, dass die Ausgabe mit "system-as-root" übereinstimmt:

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

Jetzt, da Sie wissen, dass Ihr Gerät Treble-kompatibel ist, müssen Sie herausfinden, welche Version der GSI-Binärdatei heruntergeladen werden soll, da für verschiedene Architekturen unterschiedliche Images vorhanden sind. Führen Sie den folgenden Befehl aus, um festzustellen, über welche Architektur Ihr Gerät verfügt:

 adb shell getprop ro.product.cpu.abi 

Notieren Sie sich hier die Ausgabe, die Sie zum Herunterladen der GSI benötigen.

GSI herunterladen

Download-Links für offizielle Builds der Android-Q-Beta-GSI finden Sie hier bei Google. Sie sollten die entsprechende Version herunterladen, die auf der Architektur Ihres Geräts basiert, die Sie im vorherigen Schritt ermittelt haben. Der Download ist ziemlich umfangreich, wenn Sie das Build mit GMS oder Google Mobile Services herunterladen. Dies wird dringend empfohlen, damit Sie Ihre App auf einem Build mit Google Play Services testen können.

Sobald die Datei heruntergeladen wurde, können Sie sie entpacken. Darin enthalten sind zwei Dateien, system.img und vbmeta.img .

GSI blinken lassen

  1. Starten Sie den Bootloader Ihres Geräts entweder über eine Tastenkombination oder mit dem folgenden Befehl neu:
     adb reboot bootloader 
  2. Als nächstes müssen wir den Android Verified Boot (AVB) deaktivieren. Sie können dies tun, indem Sie den folgenden Befehl eingeben:
     fastboot flash vbmeta vbmeta.img 
  3. Lassen Sie uns als nächstes die Systempartition löschen:
     fastboot erase system 
  4. Wir können endlich das Android Q GSI flashen mit:
     fastboot flash system system.img 
  5. Sobald dies erledigt ist, wischen Sie die Benutzerdatenpartition mit:
     fastboot -w 
  6. Starten Sie Ihr Gerät neu, indem Sie entweder den Netzschalter drücken oder Folgendes eingeben:
     fastboot reboot 

Hoffentlich sollte es nach ein paar Minuten booten. Diese Schritte wurden auf einem Pixel 3 XL validiert, sollten jedoch universell funktionieren. Wir können überprüfen, ob die Android Q beta 2 GSI nicht auf dem OnePlus 6T, sondern auf dem Xiaomi Mi 9 bootet. Es funktioniert möglicherweise auf dem Sony Xperia XZ3, aber es wird uns mitgeteilt, dass es auf dem nicht bootet Moto G7. Ihr Kilometerstand kann variieren, da die Anforderungen von Google nur die GSI-Kompatibilität derselben Betriebssystemversion bestätigen.