Sådan installeres Android Q Beta GSI på din enhed, så du kan teste dine apps

Google udgav GSI'er af den anden Android Q beta. Disse systembilleder kan installeres på Project Treble-kompatible enheder til app-testning. Sådan gør du.

Efterhånden som vi kommer tættere og tættere på den endelige Android Q-udgivelse, bliver tiden for udviklere til at opdatere deres applikationer kortere. Selvom Android 9 Pie (API-niveau 28) endnu ikke har nået langt de fleste enheder, er Google Plays API-niveaukrav, som du bør allerede være godt klar over, vil tvinge dig til at målrette API-niveau 29 i 2020. Hvis du ikke allerede har opdateret din app til at målrette mod Android 9 Pie, derefter du har indtil august, hvis du planlægger at lancere en ny app eller indtil november, hvis du planlægger at opdatere en eksisterende app. For de af jer, der vil i gang med at udvikle til den næste Android-version, kan du allerede nu teste din app på Android Studio emulator eller på fysisk hardware, hvis du ejer enhver Google Pixel-smartphone. I år giver Google dog udviklere en anden måde at teste deres apps mod den nyeste Android-version: blinkende en

Android Q beta GSI på en Project Treble-kompatibel enhed.

Projekt diskant er et stort initiativ til at forbedre den hastighed, hvormed smartphone-enhedsproducenter kan skubbe software- og sikkerhedsopdateringer ud. I en nøddeskal kræver Treble, at enhedsproducenter adskiller den software, der får hardwaren til at fungere, fra softwaren bag OS. Dette giver enhedsproducenter mulighed for at starte nye Android-udgivelser på deres eksisterende enheder, så de kan starte den besværlige opgave med at portere deres eksisterende kodebase oven på den nye Android-kildekodeudgivelse. Supplerende til CTS er VTS eller Vendor Test Suite, et sæt tests, som enhedsproducenter bruger til at verificere, at deres enhed opfylder Project Trebles krav. En af de vigtigste kontroller for enhedsproducenter at teste er evnen for en diskant-kompatibel smartphone til at starte det, der kaldes en GSI eller generisk systembillede. En GSI er en umodificeret build af AOSP, der er beregnet til enhedsproducenter for at se, om de har implementeret Treble korrekt. Ud over OEM'er, dog Google mener at GSI'er kan bruges af udviklere til Android app kompatibilitetstest.

For eksempel, hvis du ikke ejer en Google Pixel, er den eneste måde for dig at teste din apps adfærd under de forhold, der bedst matcher Googles Dokumentationen giver dig mulighed for enten at anskaffe din egen Pixel-enhed, starte Android Studio-emulatoren op eller se på en cloud-test service. Hver af disse har deres fordele og ulemper, men hvis du har en eksisterende diskant-kompatibel enhed og ikke ønsker at bruge penge eller håndtere begrænsningerne ved en emulator, hvorfor så ikke smække en GSI på den? Hvis din app fungerer på en GSI, burde den fungere på næsten alle enheder, der kører den Android-version.

Det er tankeprocessen bag Googles beslutning om at frigive Android Q GSI'er, eller det er i hvert fald, hvad vi tror. Kildekoden til Android Q vil først være tilgængelig i august, så Googles officielle GSI-binære filer er den eneste måde lige nu at teste Android Q på ægte, ikke-Pixel-hardware. Sådan kommer du i gang.

Krav

Før du overhovedet overvejer at installere Android Q beta, bør du tjekke, om din enhed er Project Treble-kompatibel og kan acceptere blinkende systembilleder fra bootloaderen.

Krav:

  • Din enhed SKAL har en oplåselig bootloader. Snapdragon Samsung-smartphones, der sælges i USA, Huawei-mærkede enheder, Honor-mærkede enheder og HMD Globals Nokia-mærkede enheder (undtagen Nokia 8) kvalificerer sig ikke her.
  • Du har de seneste ADB- og Fastboot-binære filer installeret på din pc, som du kan finde her. Forældede versioner af Fastboot kan resultere i ukorrekte blink.
  • Din enhed SKAL møde en af følgende kriterier for at blive betragtet som Project Treble-kompatible:
    • Enheden LANCERET med Android 9 Pie. Hvis dette er tilfældet, kan du springe over at bekræfte diskantkompatibilitet efter at have nået slutningen af ​​dette afsnit.
    • Enheden blev lanceret med Android 8.0 Oreo eller Android 8.1 Oreo, men blev opdateret til Android 9 Pie med VNDK-isolering og system-as-root. Vi detaljerer, hvordan du finder ud af det i afsnittet nedenfor.

Før vi går videre, er det værd at nævne, at flashing af en GSI kræver, at du udfører en fuld sletning af brugerdatapartitionen. Det betyder, at du mister alle billeder, videoer, musik, dokumenter eller andet på enhedens interne og eksterne (/data/medie) lager. Derfor anbefales det stærkt at lave en sikkerhedskopiering uden for enheden, før du går videre.

Dernæst skal du huske på, at disse GSI'er ikke har bestået CTS, så hvis din app bruger SafetyNet Attestation API til at kontrollere enhedens integritet med en CTS-profilmatch, så virker det ikke. Disse builds er heller ikke beregnet til daglig brug, så bliv ikke overrasket, hvis en eller flere grundlæggende hardwarefunktioner ikke fungerer oven i de allerede dokumenterede fejl i Android Q. Google har allerede listet et par kendte problemer med GSI, som du kan finde her. Alle nye fejl, som du finder, skal arkiveres her.

Bekræfter diskant-kompatibilitet

Kør følgende kommando:

adbshellgetpropro.treble.enabled

Hvis svaret er falsk, så er din enhed ikke Project Treble-kompatibel, og du bør ikke fortsætte. Hvis svaret er rigtigt, så er du fri til at komme videre.

Derefter skal du kontrollere, om der er support på tværs af versioner ved at køre disse kommandoer:

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

Se efter afsnittet i outputtet [sælger], og derefter i den sektion, se efter navneområde.standard.isoleret. Hvis værdien for den attribut er rigtigt, så skal din enhed understøtte opstart af Android Q GSI oven på et Android 9 Pie-leverandørbillede. Hvis værdien er falsk, så kan din enhed kun bruge GSI til den samme version af operativsystemet på enheden.

Eksempeludgang fra en OnePlus 6T.

Til sidst skal du bekræfte, om din enhed er system-as-root, hvor ramdisken er flettet med systembilledet. System-as-root er ikke obligatorisk for enheder, der opgraderer til Android 9 Pie, men er nødvendigt for at understøtte en system-only OTA, såsom i tilfælde af flashing af en ny OS-version via GSI. Kør følgende kommandoer og kontroller, at outputtet matcher "system-as-root":

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

Nu hvor du ved, at din enhed er diskantkompatibel, skal du finde ud af, hvilken version af GSI-binæren du skal downloade, da der er forskellige billeder til forskellige arkitekturer. For at se, hvilken arkitektur din enhed har, skal du køre følgende kommando:

adbshellgetpropro.product.cpu.abi

Noter outputtet her, da du skal bruge det, når du downloader GSI.

Downloader GSI

Downloadlinks til officielle builds af Android Q beta GSI er tilgængelige fra Google her. Du bør downloade den passende version baseret på din enheds arkitektur, som du fandt ud af i det forrige trin. Downloaden vil være ret stor, hvis du downloader buildet med GMS eller Google Mobile Services, noget vi stærkt anbefaler, så du kan teste din app på en build med Google Play Services.

Når filen er færdig med at downloade, kan du udpakke den. Indeholdt i er to filer, system.img, og vbmeta.img.

GSI blinker

  1. Genstart til din enheds bootloader ved at bruge enten en knapkombination eller ved at udstede kommandoen:
    adb reboot bootloader
  2. Dernæst skal vi deaktivere Android Verified Boot (AVB). Du kan gøre dette ved at indtaste følgende kommando:
    fastbootflashvbmetavbmeta.img
  3. Lad os derefter slette systempartitionen:
    fastboot erase system
  4. Vi kan endelig flashe Android Q GSI med:
    fastbootflashsystemsystem.img
  5. Når det er gjort, skal du tørre brugerdatapartitionen med:
    fastboot -w
  6. Genstart din enhed med enten tænd/sluk-knappen eller ved at indtaste:
    fastboot reboot

Forhåbentlig bør den starte efter et par minutter. Disse trin blev valideret på en Pixel 3 XL, men burde fungere universelt. Vi kan bekræfte, at Android Q beta 2 GSI ikke starter på OnePlus 6T, men den starter på Xiaomi Mi 9. Det virker muligvis på Sony Xperia XZ3, men vi får at vide, at det ikke starter på Moto G7. Dit kilometertal kan variere, da Googles krav kun bekræfter GSI-kompatibilitet med samme OS-version.