Vývojář Magisk udělal dva velké průlomy: podporu pro systém jako root a logické oddíly pro Google Pixel 3 a Pixel 3a na Androidu Q.
Google vydal první beta verzi Androidu Q již v březnu a rychle získal root přístup přes Magisk se stal dostupným pro Google Pixel a Google Pixel 2. Google Pixel 3 však nemohl být rootován na Android Q, protože vývojář Magisk, XDA Recognized Developer topjohnwu, potřeboval zjistit, jak pracovat s novým rozložením logických oddílů. Díky své nové stáži v Applu měl topjohnwu méně času na práci na Magisku, ale to mu nezabránilo v tom, aby měl dva velké průlomy ve vývoji. V nejnovější verzi Canary nyní Magisk podporuje system-as-root, což ztěžuje aplikacím detekovat root přístup a také podporuje zařízení se zapnutými logickými oddíly, jako jsou řady Pixel 3 a Pixel 3a XL Android Q.
Fóra Google Pixel 3Fóra Google Pixel 3 XL
Fóra Google Pixel 3aFóra Google Pixel 3a XL
Podpora logických oddílů Google Pixel 3 a Pixel 3a v systému Android Q
S cílem pomoci vývojářům testovat verze AOSP Androidu na stávajících zařízeních vydává Google Generic System Images (GSI), které lze spustit na zařízeních kompatibilních s Project Treble (jakékoli zařízení, které spuštěno se systémem Android 9 Pie nebo novějším.) Instalace GSI vyžaduje odemknutí bootloaderu, což nemusí být možné na všech zařízeních, a flashování obrazu systému přes rychlé spuštění po vymazání uživatele data. V Androidu Q zavádí Google novou funkci tzv
Dynamické aktualizace systému což vývojářům umožňuje spouštět GSI bez odemykání bootloaderu nebo mazání dat. Aby zařízení podporovalo dynamické aktualizace systému, musí mít logické oddíly, jejichž velikost lze dynamicky měnit, aby se uvolnilo místo pro instalaci GSI. Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a a Google Pixel 3a XL mají logické oddíly na Android Q beta, ačkoli pouze Pixel 3 a Pixel 3 XL podporují DSU. Nicméně právě kvůli této radikální změně ve struktuře oddílů Magisk nefungoval.Když je určen topjohnwu, nic mu nebrání v dosažení kořenového přístupu. Právě druhý den oznámil, že úspěšně rootoval svůj Pixel 3 XL na Android Q beta 4. Popis jeho závazku tady vysvětluje technické detaily toho, jak dosáhl podpory logických oddílů, ale důležité je, že Magisk lze nyní nainstalovat na zařízení s logickými oddíly nebo bez nich.
Podpora systému jako root
Pro zařízení s A/B duální oddíly, systémový oddíl je připojen jako kořenový adresář (/), ale zařízení bez duálních oddílů A/B mají systémový oddíl připojený na /system. To znemožňuje pouze systémové OTA na zařízeních jiných než A/B, protože soubory na ramdisku, které je třeba aktualizovat, jsou umístěny v zaváděcím oddílu. To je důvod, proč, aby bylo možné pouze systémové OTA v Android Pie a vyšších, Google nařizuje, aby všechna zařízení spouštěná s Android Pie podporovala rozložení systémových oddílů jako root. V rozložení system-as-root je obraz ramdisku sloučen do obrazu systému, který je připojen jako rootfs.
Od doby, kdy Google představil systém jako root, řešení na kořenová zařízení bylo vrátit systém jako root zpět ke starému rozložení oddílu "initramfs rootfs". Že funguje v pořádku pro Android 7.1 až Android 9 Pie, protože Android má starší podporu pro toto staré rozložení, ale Android Q úplně odstraňuje podpora jako system-as-root je nyní povinná pro všechna zařízení, dokonce i pro zařízení, která se aktualizují na Android Q. Předchozí verze Magisku stále fungovaly díky některým „opravdu ošklivým hackům“, ale topjohnwu nebyl s tímto řešením spokojen, aby správně podporoval systém jako root, který má představil "MagiskInit."
Příjemným vedlejším efektem správné podpory rozvržení oddílů systému jako kořene je to jedna potenciální cesta detekce kořenů byla zrušena. Jak mi topjohnwu laskavě vysvětlil, starou metodu „návrat k initramfs rootfs“ bylo pro aplikace snadné zjistit, protože Magisk se připojil system na '/system_root' a svázat mount '/system_root/system' na '/system.' Vše, co by aplikace musela udělat, aby detekovala přítomnost root, je zkontrolujte, zda existuje '/system_root' nebo zda '/' je 'rootfs.' Není však jasné, že to nějaké aplikace skutečně využily k detekci vykořenit. Přesto je to lepší, než se omlouvat.
Různé změny
Android Q zavádí podporu pro něco, co se nazývá „blastula bazén" do životního cyklu aplikace pro Android. MagiskHide byl neschopný k detekci aplikací, kterým chcete skrýt přístup root, pokud byla povolena nová funkce „pool procesů“. Nejnovější verze Canary tuto funkci nyní podporuje. Podle topjohnwu: "Abychom správně podpořili novou optimalizaci fondu blastuly představenou v Q, přepsal jsem velký kus logiky ptracingu pro monitorování procesů."
Pokud máte Pixel 3, Pixel 3 XL, Pixel 3a nebo Pixel 3a XL na Android Q beta, vyzkoušejte nejnovější vydání Magisk Canary a dejte nám vědět, zda se vám podaří rootnout vaše zařízení.
Kanál Magisk Canary