Magisk obsługuje teraz Google Pixel 3 i Pixel 3a na Androidzie Q

Twórca Magisk dokonał dwóch wielkich przełomów: obsługi systemu jako root i partycji logicznych dla Google Pixel 3 i Pixel 3a na Androidzie Q.

Google wypuściło pierwszą wersję beta Androida Q w marcu i umożliwiło szybki dostęp do roota za pośrednictwem Magisk stał się dostępny dla Google Pixel i Google Pixel 2. Google Pixel 3 nie mógł jednak zostać zrootowany na Androidzie Q, ponieważ twórca Magisk, uznany programista XDA topjohnwu, potrzebne do ustalenia, jak pracować z nowym układem partycji logicznych. Dzięki nowemu stażowi w Apple topjohnwu miał mniej czasu na pracę nad Magisk, ale to nie powstrzymało go przed dwoma dużymi przełomami w rozwoju. W najnowszej wersji Canary Magisk obsługuje teraz system jako root, co utrudnia aplikacjom wykrycie roota dostępu, a także obsługuje urządzenia z włączonymi partycjami logicznymi, takie jak serie Pixel 3 i Pixel 3a XL Androida Q.

Fora Google Pixel 3Fora Google Pixel 3 XL

Fora Google Pixel 3aFora Google Pixel 3a XL

Obsługa partycji logicznych Google Pixel 3 i Pixel 3a w systemie Android Q

Aby pomóc programistom w testowaniu wersji Androida AOSP na istniejących urządzeniach, Google udostępnia ogólne obrazy systemu (GSI), które można uruchomić na urządzeniach zgodnych z Project Treble (dowolnym urządzeniu, które uruchomiony z systemem Android 9 Pie lub nowszym.) Instalacja GSI wymaga odblokowania programu ładującego, co może nie być możliwe na wszystkich urządzeniach, i flashowania obrazu systemu przez fastboot po wyczyszczeniu użytkownika dane. W Androidzie Q Google wprowadza nową funkcję o nazwie Dynamiczne aktualizacje systemu co pozwala programistom uruchomić GSI bez odblokowywania programu ładującego lub czyszczenia danych. Aby obsługiwać dynamiczne aktualizacje systemu, urządzenie musi mieć partycje logiczne, których rozmiar można dynamicznie zmieniać, aby zwolnić miejsce na instalację GSI. Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a i Google Pixel 3a XL mają partycje logiczne w wersjach beta Androida Q, chociaż tylko Pixel 3 i Pixel 3 XL obsługują DSU. Niemniej jednak to z powodu tej radykalnej zmiany w strukturze partycji Magisk nie działał.

Gdy zostanie ustalony topjohnwu, nic nie stoi na przeszkodzie, aby uzyskać dostęp do roota. Któregoś dnia ogłosił, że udało mu się zrootować swojego Pixela 3 XL na Androidzie Q beta 4. Opis jego zobowiązania Tutaj wyjaśnia szczegóły techniczne, w jaki sposób uzyskał obsługę partycji logicznych, ale ważne jest to, że Magisk można teraz zainstalować na urządzeniach z partycjami logicznymi lub bez.

Obsługa systemu jako root

Dla urządzeń z Podwójne partycje A/B, partycja systemowa jest montowana jako katalog główny (/), ale urządzenia bez podwójnych partycji A/B mają partycję systemową zamontowaną w /system. To sprawia, że ​​OTA tylko systemowe są niemożliwe na urządzeniach innych niż A/B, ponieważ pliki w ramdysku, które wymagają aktualizacji, znajdują się na partycji rozruchowej. Dlatego też, aby umożliwić korzystanie wyłącznie z systemu OTA w systemie Android Pie i nowszych wersjach, Google wymaga, aby wszystkie urządzenia uruchamiane z systemem Android Pie obsługiwały układ partycji systemowych. W układzie system jako root obraz ramdysku jest łączony z obrazem systemu, który jest montowany jako rootfs.

Odkąd Google wprowadził system jako root, plik rozwiązanie do urządzeń root polegało na przywróceniu systemu jako root z powrotem do starego układu partycji „initramfs rootfs”. To Pracuje w porządku dla Androida 7.1 do Androida 9 Pie, ponieważ Android ma starszą obsługę tego starego układu, ale Android Q jest całkowicie usuwa obsługa systemu jako root jest teraz obowiązkowa dla wszystkich urządzeń, nawet tych, które aktualizują się do systemu Android Q. Wcześniejsze wersje Magiska nadal działały dzięki kilku „naprawdę paskudnym hackom”, ale topjohnwu nie był zadowolony z tego rozwiązania, więc aby właściwie wspierać system jako root, ma wprowadzony „MagiskInit.”

Miłym efektem ubocznym właściwej obsługi układu partycji systemowych jest to, że jest to root jedna potencjalna droga wykrywanie korzeni zostało zmiażdżone. Jak topjohnwu łaskawie mi wyjaśnił, stara metoda „powróć do initramfs rootfs” była łatwa do wykrycia przez aplikacje, ponieważ Magisk montował system do „/system_root” i powiąż montowanie „/system_root/system” z „/system.”. Wszystko, co aplikacja musi zrobić, aby wykryć obecność roota, to sprawdź, czy istnieje „/system_root” lub czy „/” to „rootfs”. Nie jest jednak jasne, czy jakiekolwiek aplikacje faktycznie wykorzystały to do wykrycia źródło. Mimo wszystko lepiej dmuchać na zimne.

Różne zmiany

Android Q wprowadza obsługę czegoś, co nazywa się „basen blastuli" do cyklu życia aplikacji na Androida. MagiskHide był niezdolny do wykrywania aplikacji, przed którymi można ukryć dostęp do konta root, jeśli włączona została nowa funkcja „puli procesów”. Najnowsza wersja Canary obsługuje teraz tę funkcję. Według topjohnwu: „Aby właściwie wspierać nową optymalizację puli blastuli wprowadzoną w Q, przepisałem sporą część logiki ptracing na potrzeby monitorowania procesu”.


Jeśli masz Pixela 3, Pixela 3 XL, Pixela 3a lub Pixela 3a XL z wersją beta Androida Q, wypróbuj najnowszą wersję Magisk Canary i daj nam znać, czy uda Ci się zrootować swoje urządzenie.

Kanał Kanaryjski Magisk