Magisk støtter nå Google Pixel 3 og Pixel 3a på Android Q

click fraud protection

Magisk-utvikleren har gjort to store gjennombrudd: støtte for system-som-root og logiske partisjoner for Google Pixel 3 og Pixel 3a på Android Q.

Google ga ut den første Android Q-betaen tilbake i mars, og root-tilgang via Magisk raskt ble tilgjengelig for Google Pixel og Google Pixel 2. Google Pixel 3 kunne imidlertid ikke rotes på Android Q fordi utvikleren av Magisk, XDA Recognized Developer topjohnwu, nødvendig for å finne ut hvordan du arbeider med den nye logiske partisjonsoppsettet. Med sitt nye praksisopphold hos Apple har topjohnwu hatt mindre tid til å jobbe med Magisk, men det har ikke stoppet ham fra å ha to store gjennombrudd i utviklingen. I den siste Canary-utgivelsen støtter Magisk nå system-as-root, noe som gjør det vanskeligere for apper å oppdage root tilgang, og støtter også enheter med logiske partisjoner som Pixel 3 og Pixel 3a XL-serien på Android Q.

Google Pixel 3-foraGoogle Pixel 3 XL-fora

Google Pixel 3a-foraGoogle Pixel 3a XL-fora

Google Pixel 3 og Pixel 3a Logical Partition Support på Android Q

For å hjelpe utviklere med å teste AOSP-versjoner av Android på eksisterende enheter, lanserer Google Generic System Images (GSI-er) som kan startes opp på Project Treble-kompatible enheter (enhver enhet som lansert med Android 9 Pie eller nyere.) Installering av en GSI krever opplåsing av oppstartslasteren, noe som kanskje ikke er mulig på alle enheter, og blinking av et systembilde over fastboot etter å ha slettet brukeren data. I Android Q introduserer Google en ny funksjon kalt Dynamiske systemoppdateringer som lar utviklere starte opp en GSI uten å låse opp bootloader eller slette data. For å støtte dynamiske systemoppdateringer, må en enhet ha logiske partisjoner som kan endres dynamisk for å gi plass til GSI-installasjonen. Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a og Google Pixel 3a XL har logiske partisjoner på Android Q-betaene, selv om bare Pixel 3 og Pixel 3 XL støtter DSU. Ikke desto mindre er det på grunn av denne radikale endringen i partisjonsstrukturen at Magisk ikke fungerte.

Når topjohnwu er bestemt, stopper ingenting ham fra å oppnå root-tilgang. Forleden kunngjorde han at han hadde rootet sin Pixel 3 XL på Android Q beta 4. Hans forpliktelsesbeskrivelse her forklarer de tekniske detaljene om hvordan han oppnådde støtte for logiske partisjoner, men det som er viktig er at Magisk nå kan installeres på enheter med eller uten logiske partisjoner.

System-as-Root-støtte

For enheter med A/B doble partisjoner, systempartisjonen er montert som rotkatalogen (/), men enheter uten A/B doble partisjoner har systempartisjonen montert på /system. Dette gjør OTA-er kun for system umulig på ikke-A/B-enheter fordi filer i ramdisken, som trenger oppdatering, er plassert i oppstartspartisjonen. Det er derfor, for å gjøre OTA-er for kun system mulig i Android Pie og nyere, krever Google at alle enheter som lanseres med Android Pie støtter partisjonsoppsettet for system-som-rot. I system-as-root-oppsettet blir ramdisk-bildet slått sammen til systembildet, som er montert som rootfs.

Siden Google introduserte system-as-root, har løsning til rotenheter var å gå tilbake system-som-root til den gamle partisjonen "initramfs rootfs"-oppsettet. At virker greit for Android 7.1 til Android 9 Pie siden Android har eldre støtte for denne gamle layouten, men Android Q helt fjerner støtte som system-as-root er nå obligatorisk for alle enheter, selv for de enhetene som oppdateres til Android Q. Tidligere versjoner av Magisk fungerte fortsatt takket være noen "virkelig ekle hacks", men topjohnwu var ikke fornøyd med den løsningen, så for å støtte system-as-root på riktig måte har han introdusert "MagiskInit."

En fin bieffekt av riktig støtte for system-som-rot-partisjonsoppsettet er det en potensiell vei rotdeteksjon har blitt knust. Som topjohnwu vennlig forklarte for meg, var den gamle "revert to initramfs rootfs"-metoden lett for apper å oppdage fordi Magisk ville montere system til '/system_root' og bind mount '/system_root/system' til '/system.' Alt en app trenger å gjøre for å oppdage tilstedeværelsen av root er sjekk om '/system_root' eksisterer eller om '/' er 'rootfs'. Det er imidlertid ikke klart at noen apper faktisk benyttet seg av dette for å oppdage rot. Likevel er det bedre trygt enn beklager.

Diverse endringer

Android Q introduserer støtte for noe som kalles "blastula basseng" til Android-applikasjonens livssyklus. MagiskHide var ute av stand for å oppdage apper å skjule rottilgang fra hvis den nye "prosesspool"-funksjonen var aktivert. Den siste Canary-utgivelsen støtter nå denne funksjonen. I følge topjohnwu: "For å støtte den nye blastula-bassengoptimaliseringen som ble introdusert i Q, hadde jeg skrevet om en god del ptracing-logikk for prosessovervåking."


Hvis du har en Pixel 3, Pixel 3 XL, Pixel 3a eller Pixel 3a XL på Android Q beta, kan du prøve den nyeste Magisk Canary-utgivelsen og gi oss beskjed om du klarer å roote enheten din.

Magisk Canary Channel