Magisk understøtter nu Google Pixel 3 og Pixel 3a på Android Q

click fraud protection

Magisk-udvikleren har lavet to store gennembrud: understøttelse af system-as-root og logiske partitioner til Google Pixel 3 og Pixel 3a på Android Q.

Google udgav den første Android Q beta tilbage i marts, og root-adgang via Magisk hurtigt blev tilgængelig til Google Pixel og Google Pixel 2. Google Pixel 3 kunne dog ikke rodfæstes på Android Q, fordi udvikleren af ​​Magisk, XDA Recognized Developer topjohnwu, nødvendig for at finde ud af, hvordan man arbejder med det nye logiske partitionslayout. Topjohnwu har med sit nye praktikophold hos Apple haft mindre tid til at arbejde på Magisk, men det har ikke afholdt ham fra at have to store gennembrud i udviklingen. I den seneste Canary-udgivelse understøtter Magisk nu system-as-root, hvilket gør det sværere for apps at opdage root adgang og understøtter også enheder med logiske partitioner så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 at hjælpe udviklere med at teste AOSP-versioner af Android på eksisterende enheder udgiver Google Generic System Images (GSI'er), der kan startes op på Project Treble-kompatible enheder (enhver enhed, der lanceret med Android 9 Pie eller nyere.) Installation af en GSI kræver oplåsning af bootloaderen, hvilket muligvis ikke er muligt på alle enheder, og flashing af et systembillede over fastboot efter sletning af brugeren data. I Android Q introducerer Google en ny funktion kaldet Dynamiske systemopdateringer som lader udviklere starte en GSI uden at låse bootloaderen op eller slette data. For at understøtte dynamiske systemopdateringer skal en enhed have logiske partitioner, der kan ændres dynamisk for at give plads til GSI-installationen. Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a og Google Pixel 3a XL har logiske partitioner på Android Q-betaerne, selvom kun Pixel 3 og Pixel 3 XL understøtter DSU. Ikke desto mindre er det på grund af denne radikale ændring i partitionsstrukturen, at Magisk ikke fungerede.

Når topjohnwu er bestemt, forhindrer intet ham i at opnå root-adgang. Forleden meddelte han, at han med succes havde rootet sin Pixel 3 XL på Android Q beta 4. Hans forpligtelsesbeskrivelse her forklarer de tekniske detaljer om, hvordan han opnåede understøttelse af logiske partitioner, men det vigtige er, at Magisk nu kan installeres på enheder med eller uden logiske partitioner.

System-as-Root Support

Til enheder med A/B dobbelte partitioner, er systempartitionen monteret som rodbiblioteket (/), men enheder uden A/B-dobbelte partitioner har systempartitionen monteret på /system. Dette gør OTA'er kun for system umulige på ikke-A/B-enheder, fordi filer på ramdisken, som skal opdateres, er placeret i boot-partitionen. Det er derfor, for at gøre OTA'er kun for system mulige i Android Pie og nyere, kræver Google, at alle enheder, der starter med Android Pie, understøtter partitionslayoutet system-som-rod. I system-as-root-layoutet flettes ramdisk-billedet ind i systembilledet, som er monteret som rootfs.

Siden Google introducerede system-as-root, har løsning til root-enheder var at vende system-as-root tilbage til den gamle partition "initramfs rootfs" layout. At arbejder fint til Android 7.1 til Android 9 Pie, da Android har ældre understøttelse af dette gamle layout, men Android Q helt fjerner support som system-as-root er nu obligatorisk for alle enheder, selv for de enheder, der opdaterer til Android Q. Tidligere versioner af Magisk fungerede stadig takket være nogle "virkelig grimme hacks", men topjohnwu var ikke tilfreds med den løsning, så for at understøtte system-as-root korrekt har han indført "MagiskInit."

En god bivirkning af korrekt understøttelse af system-as-root partitionslayoutet er det en potentiel vej roddetektion er blevet knust. Som topjohnwu elskværdigt forklarede mig, var den gamle "retur til initramfs rootfs" metode let for apps at opdage, fordi Magisk ville montere system til '/system_root' og bind mount '/system_root/system' til '/system.' Alt, hvad en app skal gøre for at opdage tilstedeværelsen af ​​rod er kontrollere, om '/system_root' eksisterer, eller om '/' er 'rootfs'. Det er dog ikke klart, at nogen apps faktisk udnyttede dette til at opdage rod. Alligevel er det bedre safe than sorry.

Diverse ændringer

Android Q introducerer understøttelse af noget, der kaldes "blastula pool" til Android-applikationens livscyklus. MagiskHide var ude af stand at opdage apps, der kan skjules root-adgang fra, hvis den nye "procespool"-funktion var aktiveret. Den seneste Canary-udgivelse understøtter nu denne funktion. Ifølge topjohnwu: "For korrekt at understøtte den nye blastula pool optimering introduceret i Q, havde jeg omskrevet en god del af ptracing logik til procesovervågning."


Hvis du har en Pixel 3, Pixel 3 XL, Pixel 3a eller Pixel 3a XL på Android Q beta, så prøv den seneste Magisk Canary-udgivelse og lad os vide, om det lykkes dig at roote din enhed.

Magisk Canary Channel