Google ga ut GSI-er for den andre betaversjonen av Android Q. Disse systembildene kan installeres på Project Treble-kompatible enheter for app-testing. Dette er hvordan.
Etter hvert som vi kommer nærmere og nærmere den endelige Android Q-utgivelsen, blir tiden for utviklere til å oppdatere applikasjonene sine kortere. Selv om Android 9 Pie (API-nivå 28) ennå ikke har nådd det store flertallet av enheter, er Google Plays API-nivåkrav, som du bør allerede være godt klar over, vil tvinge deg til å målrette API-nivå 29 i 2020. Hvis du ikke allerede har oppdatert appen din for å målrette mot Android 9 Pie, deretter du har frist til august hvis du planlegger å lansere en ny app eller til november hvis du planlegger å oppdatere en eksisterende app. For de av dere som ønsker å komme i gang med å utvikle for neste Android-versjon, kan du allerede teste appen din på Android Studio-emulator eller på fysisk maskinvare hvis du eier hvilken som helst Google Pixel-smarttelefon. I år gir Google imidlertid utviklere en annen måte å teste appene sine mot den nyeste Android-versjonen: blinkende en
Android Q beta GSI på en Project Treble-kompatibel enhet.Prosjekt diskant er et stort initiativ for å forbedre hastigheten som produsenter av smarttelefonenheter kan presse ut programvare og sikkerhetsoppdateringer. I et nøtteskall krever Treble at enhetsprodusenter skiller programvaren som får maskinvaren til å fungere fra programvaren bak OS. Dette lar enhetsprodusenter starte opp nye Android-utgivelser på sine eksisterende enheter, slik at de kan starte den vanskelige oppgaven med å portere sin eksisterende kodebase på toppen av den nye Android-kildekodeutgivelsen. Komplementært til CTS er VTS, eller Vendor Test Suite, et sett med tester som enhetsprodusenter bruker for å bekrefte at enheten deres oppfyller Project Trebles krav. En av de viktigste kontrollene for enhetsprodusenter å teste er muligheten for en diskantkompatibel smarttelefon til å starte opp det som kalles en GSI, eller generisk systembilde. En GSI er en umodifisert versjon av AOSP som er ment for enhetsprodusenter for å se om de har implementert Treble på riktig måte. Utover OEM-er, derimot, Google mener at GSI-er kan brukes av utviklere for kompatibilitetstesting av Android-apper.
Hvis du for eksempel ikke eier en Google Pixel, er den eneste måten for deg å teste appens oppførsel under forholdene som best samsvarer med Googles dokumentasjonen er for deg å enten anskaffe en egen Pixel-enhet, starte opp Android Studio-emulatoren eller se på en skytesting service. Hver av disse har sine fordeler og ulemper, men hvis du har en eksisterende diskantkompatibel enhet og ikke ønsker å bruke penger eller håndtere begrensningene til en emulator, hvorfor ikke legge en GSI på den? Hvis appen din fungerer på en GSI, bør den fungere på nesten alle enheter som kjører den Android-versjonen.
Det er tankeprosessen bak Googles beslutning om å gi ut Android Q GSI-er, eller det er i det minste det vi tror. Kildekoden for Android Q vil ikke være tilgjengelig før i august, så Googles offisielle GSI-binærfiler er den eneste måten akkurat nå å teste Android Q på ekte, ikke-Pixel-maskinvare. Slik kan du komme i gang.
Krav
Før du i det hele tatt vurderer å installere Android Q beta, bør du sjekke om enheten din er Project Treble-kompatibel og kan akseptere blinkende systembilder fra oppstartslasteren.
Krav:
- Din enhet MÅ ha en opplåsbar bootloader. Snapdragon Samsung-smarttelefoner selges i USA, Huawei-merkede enheter, Honor-merkede enheter og HMD Globals Nokia-merkede enheter (unntatt Nokia 8) kvalifiserer ikke her.
- Du har de siste ADB- og Fastboot-binærfilene installert på din PC, som du kan finne her. Utdaterte versjoner av Fastboot kan føre til feilaktige blink.
- Din enhet MÅ møte en av følgende kriterier for å anses som Project Treble-kompatible:
- Enheten LANSERT med Android 9 Pie. Hvis dette er tilfelle, kan du hoppe over å bekrefte diskantkompatibilitet etter å ha nådd slutten av denne delen.
- Enheten ble lansert med Android 8.0 Oreo eller Android 8.1 Oreo, men ble oppdatert til Android 9 Pie med VNDK-isolasjon og system-as-root. Vi beskriver hvordan du finner det ut i avsnittet nedenfor.
Før vi går videre, er det verdt å nevne at å blinke en GSI vil kreve at du utfører en fullstendig sletting av brukerdatapartisjonen. Dette betyr at du vil miste alle bilder, videoer, musikk, dokumenter eller noe annet på enhetens interne og eksterne (/data/media) lagring. Derfor anbefales det sterkt å ta en sikkerhetskopi utenfor enheten før du går videre.
Deretter må du huske på at disse GSI-ene ikke har bestått CTS, så hvis appen din bruker SafetyNet Attestation API for å sjekke enhetens integritet med en CTS-profilmatch, vil det ikke fungere. Disse byggene er heller ikke ment for daglig bruk, så ikke bli overrasket om en eller flere grunnleggende maskinvarefunksjoner ikke fungerer på toppen av de allerede dokumenterte feilene i Android Q. Google har allerede listet opp noen kjente problemer med GSI, som du kan finne her. Eventuelle nye feil du finner bør arkiveres her.
Bekrefter diskantkompatibilitet
Kjør følgende kommando:
adbshellgetpropro.treble.enabled
Hvis svaret er falsk, så er ikke enheten din Project Treble-kompatibel, og du bør ikke fortsette. Hvis svaret er ekte, så er du fri til å gå videre.
Se deretter etter støtte for flere versjoner ved å kjøre disse kommandoene:
adb shell
cat /system/etc/ld.config.28.txt | grep -A 20"\[vendor\]"
Se etter delen i utgangen [Leverandør], og se etter i den delen navneområde.standard.isolert. Hvis verdien for det attributtet er ekte, bør enheten din støtte oppstart av Android Q GSI på toppen av et Android 9 Pie-leverandørbilde. Hvis verdien er falsk, så kan enheten din bare bruke GSI for den samme versjonen av operativsystemet på enheten.
Til slutt må du bekrefte om enheten din er system-as-root, der ramdisken er slått sammen med systembildet. System-as-root er ikke obligatorisk for enheter som oppgraderer til Android 9 Pie, men er nødvendig for å støtte en OTA som kun er for system, for eksempel ved flashing av en ny OS-versjon via GSI. Kjør følgende kommandoer og kontroller at utdataene samsvarer med "system-as-root":
adb shell
cat /proc/mounts | grep -q /dev/root && echo"system-as-root" || echo"non-system-as-root"
Nå som du vet at enheten din er diskantkompatibel, må du finne ut hvilken versjon av GSI-binæren du skal laste ned, siden det er forskjellige bilder for forskjellige arkitekturer. For å se hvilken arkitektur enheten din har, kjør følgende kommando:
adbshellgetpropro.product.cpu.abi
Noter utdataene her, siden du trenger det når du laster ned GSI.
Laster ned GSI
Nedlastingslenker for offisielle versjoner av Android Q beta GSI er tilgjengelige fra Google her. Du bør laste ned riktig versjon basert på enhetens arkitektur, som du fant ut i forrige trinn. Nedlastingen vil være ganske stor hvis du laster ned bygget med GMS, eller Google Mobile Services, noe vi anbefaler på det sterkeste slik at du kan teste appen din på en build med Google Play Services.
Når filen er ferdig nedlastet, kan du pakke den ut. Inne i er to filer, system.img, og vbmeta.img.
GSI blinker
- Start på nytt til enhetens bootloader ved å bruke enten en knappekombinasjon eller ved å gi kommandoen:
adb reboot bootloader
- Deretter må vi deaktivere Android Verified Boot (AVB). Du kan gjøre dette ved å skrive inn følgende kommando:
fastbootflashvbmetavbmeta.img
- Deretter, la oss tørke systempartisjonen:
fastboot erase system
- Vi kan endelig flashe Android Q GSI med:
fastbootflashsystemsystem.img
- Når det er gjort, tørk brukerdatapartisjonen med:
fastboot -w
- Start enheten på nytt med enten strømknappen eller ved å skrive inn:
fastboot reboot
Forhåpentligvis bør den starte opp etter noen minutter. Disse trinnene ble validert på en Pixel 3 XL, men skal fungere universelt. Vi kan bekrefte at Android Q beta 2 GSI ikke starter opp på OnePlus 6T, men den starter opp på Xiaomi Mi 9. Det kan fungere på Sony Xperia XZ3, men vi blir fortalt at det ikke starter opp på Moto G7. Kilometerstanden din kan variere ettersom Googles krav bare bekrefter GSI-kompatibilitet med samme OS-versjon.