Hoe u de Android Q Beta GSI op uw apparaat installeert, zodat u uw apps kunt testen

Google heeft GSI's van de tweede Android Q-bèta uitgebracht. Deze systeemimages kunnen worden geïnstalleerd op Project Treble-compatibele apparaten voor het testen van apps. Hier is hoe.

Naarmate we steeds dichter bij de definitieve Android Q-release komen, wordt de tijd voor ontwikkelaars om hun applicaties bij te werken korter. Hoewel Android 9 Pie (API-niveau 28) de overgrote meerderheid van de apparaten nog moet bereiken, gelden de API-niveauvereisten van Google Play, die u zou moeten al goed op de hoogte zijn, dwingt u om in 2020 API-niveau 29 te bereiken. Als u uw app nog niet heeft bijgewerkt om Android 9 Pie te targeten, Dan je hebt tot augustus als je van plan bent een nieuwe app te lanceren of tot november als je van plan bent een bestaande app te updaten. Voor degenen onder u die aan de slag willen met het ontwikkelen voor de volgende Android-versie: u kunt uw app al testen op de Android Studio-emulator of op fysieke hardware als u die bezit elke Google Pixel-smartphone. Dit jaar biedt Google ontwikkelaars echter een andere manier om hun apps te testen met de nieuwste Android-versie: het flashen van een

Android Q bèta GSI op een Project Treble-compatibel apparaat.

Project Treble is een belangrijk initiatief om de snelheid te verbeteren waarmee fabrikanten van smartphoneapparaten software- en beveiligingsupdates kunnen uitbrengen. Kort gezegd vereist Treble dat apparaatfabrikanten de software die de hardware laat werken scheiden van de software achter het besturingssysteem. Hierdoor kunnen apparaatfabrikanten nieuwe Android-releases op hun bestaande apparaten opstarten, zodat ze aan de zware taak kunnen beginnen om hun bestaande codebasis over te zetten bovenop de nieuwe Android-broncode-release. Complementair aan CTS is VTS, of Vendor Test Suite, een reeks tests die apparaatfabrikanten gebruiken om te verifiëren dat hun apparaat voldoet aan de vereisten van Project Treble. Een van de belangrijkste controles die apparaatfabrikanten moeten testen, is de mogelijkheid voor een Treble-compatibele smartphone om op te starten wat een GSI of Generic System Image wordt genoemd. Een GSI is een ongewijzigde versie van AOSP die bedoeld is voor apparaatfabrikanten om te zien of ze Treble correct hebben geïmplementeerd. Maar naast OEM's is Google er ook gelooft dat GSI's door ontwikkelaars kunnen worden gebruikt voor het testen van de compatibiliteit van Android-apps.

Als u bijvoorbeeld geen Google Pixel heeft, is de enige manier waarop u het gedrag van uw app kunt testen onder de omstandigheden die het beste aansluiten bij die van Google Met de documentatie kunt u zelf een Pixel-apparaat aanschaffen, de Android Studio-emulator opstarten of een cloudtest bekijken dienst. Elk van deze heeft zijn voor- en nadelen, maar als je een bestaand Treble-compatibel apparaat hebt en geen geld wilt uitgeven of te maken wilt hebben met de beperkingen van een emulator, waarom zou je er dan niet een GSI op zetten? Als uw app op een GSI werkt, zou deze op vrijwel alle apparaten met die Android-versie moeten werken.

Dat is het denkproces achter de beslissing van Google om Android Q GSI's uit te brengen, of dat is tenminste wat wij denken. De broncode voor Android Q zal pas in augustus beschikbaar zijn, dus de officiële GSI-binaire bestanden van Google zijn momenteel de enige manier om Android Q te testen op echte, niet-Pixel-hardware. Hier ziet u hoe u aan de slag kunt gaan.

Vereisten

Voordat u zelfs maar overweegt de Android Q-bèta te installeren, moet u controleren of uw apparaat Project Treble-compatibel is en knipperende systeemimages van de bootloader kan accepteren.

Vereisten:

  • Je toestel MOETEN Heb een ontgrendelbare bootloader. Snapdragon Samsung-smartphones die in de VS worden verkocht, apparaten van het merk Huawei, apparaten van het merk Honor en apparaten van het merk Nokia van HMD Global (behalve de Nokia-8) komen hier niet in aanmerking.
  • U hebt de nieuwste binaire bestanden van ADB en Fastboot op uw pc geïnstalleerd, die u kunt vinden hier. Verouderde versies van Fastboot kunnen resulteren in onjuiste flitsen.
  • Je toestel MOETEN ontmoeten een van de volgende criteria om als Project Treble-compatibel te worden beschouwd:
    • Het apparaat is gelanceerd met Android 9 Pie. Als dit het geval is, kunt u het bevestigen van de Treble-compatibiliteit overslaan nadat u het einde van dit gedeelte heeft bereikt.
    • Het apparaat werd gelanceerd met Android 8.0 Oreo of Android 8.1 Oreo, maar werd geüpdatet naar Android 9 Pie met VNDK-isolatie en systeem-als-root. In het onderstaande gedeelte leggen we uit hoe u dat kunt achterhalen.

Voordat we verder gaan, is het de moeite waard om te vermelden dat het flashen van een GSI vereist dat je de gebruikersgegevenspartitie volledig wist. Dit betekent dat u alle foto's, video's, muziek, documenten of iets anders op de interne en externe (/data/media) opslag van het apparaat kwijtraakt. Het wordt dus ten zeerste aanbevolen om een ​​back-up buiten het apparaat te maken voordat u verder gaat.

Houd er vervolgens rekening mee dat deze GSI's de CTS niet hebben doorstaan, dus als uw app de SafetyNet Attestation API gebruikt om de apparaatintegriteit te controleren met een CTS-profielmatch, werkt dat niet. Bovendien zijn deze builds niet bedoeld voor dagelijks gebruik, dus wees niet verbaasd als een of meer basishardwarefuncties niet werken bovenop de reeds gedocumenteerde bugs in Android Q. Google heeft al een aantal bekende problemen met de GSI op een rij gezet, die kun je terugvinden hier. Alle nieuwe bugs die u tegenkomt, moeten worden gearchiveerd hier.

Bevestiging van Treble-compatibiliteit

Voer de volgende opdracht uit:

adbshellgetpropro.treble.enabled

Als het antwoord is vals, dan is uw apparaat niet compatibel met Project Treble en moet u niet doorgaan. Als het antwoord is WAAR, dan ben je vrij om verder te gaan.

Controleer vervolgens op ondersteuning voor meerdere versies door deze opdrachten uit te voeren:

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

Zoek in de uitvoer naar de sectie [leverancier]en zoek vervolgens in die sectie naar naamruimte.default.isolated. Als de waarde voor dat attribuut is WAAR, dan zou uw apparaat het opstarten van de Android Q GSI bovenop een Android 9 Pie-leveranciersimage moeten ondersteunen. Als de waarde is vals, dan kan uw apparaat de GSI alleen gebruiken voor dezelfde versie van het besturingssysteem op het apparaat.

Voorbeelduitvoer van een OnePlus 6T.

Ten slotte moet u bevestigen of uw apparaat systeem-als-root is, waarbij de ramdisk is samengevoegd met de systeemimage. Systeem-als-root is niet verplicht voor apparaten die upgraden naar Android 9 Pie, maar is wel noodzakelijk om een ​​OTA voor alleen het systeem te ondersteunen, zoals in het geval van het flashen van een nieuwe OS-versie via GSI. Voer de volgende opdrachten uit en controleer of de uitvoer overeenkomt met 'system-as-root':

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

Nu u weet dat uw apparaat Treble-compatibel is, moet u uitzoeken welke versie van het GSI-binaire bestand u moet downloaden, aangezien er verschillende afbeeldingen zijn voor verschillende architecturen. Om te zien welke architectuur uw apparaat heeft, voert u de volgende opdracht uit:

adbshellgetpropro.product.cpu.abi

Noteer de uitvoer hier, want u heeft deze nodig bij het downloaden van de GSI.

GSI downloaden

Downloadlinks voor officiële versies van de Android Q bèta GSI zijn verkrijgbaar bij Google hier. U moet de juiste versie downloaden op basis van de architectuur van uw apparaat, die u in de vorige stap heeft ontdekt. De download zal vrij groot zijn als u de build downloadt met GMS of Google Mobile Services, iets wat we ten zeerste aanbevelen, zodat u uw app kunt testen op een build met Google Play Services.

Zodra het bestand is gedownload, kunt u het uitpakken. Hierin bevinden zich twee bestanden, systeem.img, En vbmeta.img.

De GSI knipperen

  1. Start opnieuw op naar de bootloader van uw apparaat met behulp van een knoppencombinatie of door de opdracht te geven:
    adb reboot bootloader
  2. Vervolgens moeten we Android Verified Boot (AVB) uitschakelen. U kunt dit doen door het volgende commando in te voeren:
    fastbootflashvbmetavbmeta.img
  3. Laten we vervolgens de systeempartitie wissen:
    fastboot erase system
  4. We kunnen eindelijk de Android Q GSI flashen met:
    fastbootflashsystemsystem.img
  5. Zodra dat is gebeurd, veegt u de gebruikersgegevenspartitie af met:
    fastboot -w
  6. Start uw apparaat opnieuw op met de aan/uit-knop of voer het volgende in:
    fastboot reboot

Hopelijk zou het na een paar minuten moeten opstarten. Deze stappen zijn gevalideerd op een Pixel 3 XL, maar zouden universeel moeten werken. We kunnen verifiëren dat de Android Q beta 2 GSI niet opstart op de OnePlus 6T, maar wel op de Xiaomi Mi 9. Het werkt mogelijk op de Sony Xperia XZ3, maar er wordt ons verteld dat het niet opstart op de Moto G7. Uw kilometerstand kan variëren omdat de vereisten van Google alleen GSI-compatibiliteit met dezelfde besturingssysteemversie bevestigen.