Vývojár Magisk urobil dva veľké prielomy: podporu pre systém ako root a logické oddiely pre Google Pixel 3 a Pixel 3a na Android Q.
Spoločnosť Google vydala prvú beta verziu systému Android Q už v marci a rýchly prístup root cez Magisk sa stal dostupným pre Google Pixel a Google Pixel 2. Google Pixel 3 však nemohol byť zakorenený na Android Q, pretože vývojár Magisk, XDA Recognized Developer topjohnwu, potrebovali zistiť, ako pracovať s novým rozložením logických oddielov. Vďaka svojej novej stáži v Apple mal topjohnwu menej času na prácu na Magisku, ale to mu nezabránilo v dvoch veľkých prielomoch vo vývoji. V najnovšom vydaní Canary Magisk teraz podporuje systém ako root, čo sťažuje aplikáciám zistiť root prístup a tiež podporuje zariadenia so zapnutými logickými oddielmi, ako sú série Pixel 3 a Pixel 3a XL Android Q.
Fóra Google Pixel 3Fóra Google Pixel 3 XL
Fóra Google Pixel 3aFórum Google Pixel 3a XL
Podpora logických oddielov Google Pixel 3 a Pixel 3a v systéme Android Q
S cieľom pomôcť vývojárom testovať verzie AOSP Androidu na existujúcich zariadeniach Google vydáva Generic System Images (GSI), ktoré možno spustiť na zariadeniach kompatibilných s Project Treble (akékoľvek zariadenie, ktoré spustený s Androidom 9 Pie alebo novším.) Inštalácia GSI vyžaduje odomknutie bootloadera, čo nemusí byť možné na všetkých zariadeniach, a flashovanie obrazu systému cez rýchle spustenie po vymazaní používateľa údajov. V systéme Android Q Google predstavuje novú funkciu tzv
Dynamické aktualizácie systému čo umožňuje vývojárom spustiť GSI bez odomknutia bootloadera alebo vymazania údajov. Aby bolo možné podporovať dynamické aktualizácie systému, zariadenie musí mať logické oddiely, ktorých veľkosť možno dynamicky meniť, aby sa vytvoril priestor pre inštaláciu GSI. Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a a Google Pixel 3a XL majú logické oddiely v beta verziách systému Android Q, hoci iba Pixel 3 a Pixel 3 XL podporujú DSU. Avšak práve kvôli tejto radikálnej zmene v štruktúre oddielov Magisk nefungoval.Keď je topjohnwu rozhodnutý, nič mu nebráni v dosiahnutí koreňového prístupu. Len druhý deň oznámil, že úspešne zakorenil svoj Pixel 3 XL na Android Q beta 4. Popis jeho záväzku tu vysvetľuje technické podrobnosti o tom, ako dosiahol podporu logických oddielov, ale dôležité je, že Magisk je teraz možné nainštalovať na zariadenia s logickými oddielmi alebo bez nich.
Podpora systému ako root
Pre zariadenia s A/B duálne oddiely, systémový oddiel je pripojený ako koreňový adresár (/), ale zariadenia bez duálnych oddielov A/B majú systémový oddiel pripojený na /system. Toto znemožňuje iba systémové OTA na zariadeniach, ktoré nie sú A/B, pretože súbory na ramdisku, ktoré je potrebné aktualizovať, sú umiestnené v zavádzacej oblasti. Preto, aby bolo možné iba systémové OTA v systéme Android Pie a novšom, spoločnosť Google nariaďuje, aby všetky zariadenia spustené so systémom Android Pie podporovali rozloženie oddielov systém ako root. V rozložení system-as-root je obraz ramdisku zlúčený do obrazu systému, ktorý je pripojený ako rootfs.
Odkedy Google predstavil systém ako root, Riešenie na koreňové zariadenia bolo vrátiť systém ako root späť na staré rozloženie oddielu "initramfs rootfs". To Tvorba v poriadku pre Android 7.1 až Android 9 Pie, pretože Android má starú podporu pre toto staré rozloženie, ale úplne Android Q odstraňuje podpora ako systém ako root je teraz povinná pre všetky zariadenia, dokonca aj pre zariadenia, ktoré sa aktualizujú na Android Q. Predchádzajúce verzie Magisk stále fungovali vďaka niektorým „naozaj škaredým hackom“, ale topjohnwu nebol spokojný s týmto riešením, aby správne podporoval systém ako root, ktorý má zavedené "MagiskInit."
Pekným vedľajším efektom správnej podpory rozloženia oddielov systému ako root je to jedna potenciálna cesta detekcia koreňov bola stlačená. Ako mi topjohnwu láskavo vysvetlil, starú metódu „návrat k initramfs rootfs“ bolo pre aplikácie ľahké zistiť, pretože Magisk sa pripojil system na '/system_root' a naviažte pripojenie '/system_root/system' na '/system.' Všetko, čo by aplikácia musela urobiť, aby zistila prítomnosť root je skontrolujte, či '/system_root' existuje alebo či '/' je 'rootfs.' Nie je však jasné, či to nejaké aplikácie skutočne využili na zistenie koreň. Napriek tomu je to lepšie bezpečné ako ľutovať.
Rôzne zmeny
Android Q predstavuje podporu pre niečo, čo sa nazýva „blastula bazén" do životného cyklu aplikácie pre Android. MagiskHide bol neschopný na zistenie aplikácií, pred ktorými sa má skryť prístup root, ak bola povolená nová funkcia „pool procesov“. Najnovšie vydanie Canary teraz podporuje túto funkciu. Podľa topjohnwu: "Aby som správne podporil novú optimalizáciu blastula poolu zavedenú v Q, prepísal som poriadny kus logiky ptracingu na monitorovanie procesov."
Ak máte Pixel 3, Pixel 3 XL, Pixel 3a alebo Pixel 3a XL na Android Q beta, vyskúšajte najnovšie vydanie Magisk Canary a dajte nám vedieť, či sa vám podarí rootovať vaše zariadenie.
Kanál Magisk Canary Channel