Magisk unterstützt jetzt System-as-Root und die logischen Partitionen von Google Pixel 3 / Pixel 3a unter Android Q

Google veröffentlichte bereits im März die erste Android Q-Beta, und der Root-Zugriff über Magisk wurde für Google Pixel und Google Pixel 2 schnell verfügbar. Google Pixel 3 konnte jedoch nicht auf Android Q gerootet werden, da der Entwickler von Magisk Recognized Developer topjohnwu musste herausfinden, wie man mit dem neuen logischen Partitionslayout arbeitet. Mit seinem neuen Praktikum bei Apple hatte topjohnwu weniger Zeit, um an Magisk zu arbeiten, aber das hat ihn nicht davon abgehalten, zwei große Durchbrüche in der Entwicklung zu erzielen. In der neuesten Version von Canary unterstützt Magisk jetzt System-as-Root, wodurch es für Apps schwieriger wird, den Root-Zugriff zu erkennen. Außerdem werden Geräte mit logischen Partitionen wie Pixel 3 und Pixel 3a XL unter Android Q unterstützt.

Google Pixel 3-Foren Google Pixel 3 XL-Foren

Google Pixel 3a-Foren Google Pixel 3a XL-Foren

Unterstützung für logische Partitionen in Google Pixel 3 und Pixel 3a unter Android Q

Damit Entwickler AOSP-Versionen von Android auf vorhandenen Geräten testen können, veröffentlicht Google GSIs (Generic System Images), die auf Project Treble-kompatiblen Geräten (allen Geräten, die mit Android 9 Pie oder höher gestartet wurden) gestartet werden können. Für die Installation einer GSI muss der Bootloader entsperrt werden Dies ist möglicherweise nicht auf allen Geräten möglich. Nach dem Löschen der Benutzerdaten wird ein System-Image über den Schnellstart geflasht. In Android Q führt Google eine neue Funktion namens Dynamic System Updates ein, mit der Entwickler eine GSI starten können, ohne den Bootloader entsperren oder Daten löschen zu müssen. Um dynamische Systemaktualisierungen zu unterstützen, muss ein Gerät über logische Partitionen verfügen, deren Größe dynamisch geändert werden kann, um Platz für die GSI-Installation zu schaffen. Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a und Google Pixel 3a XL haben logische Partitionen auf den Android Q-Betas, obwohl nur Pixel 3 und Pixel 3 XL DSU unterstützen. Aufgrund dieser radikalen Änderung in der Partitionsstruktur funktionierte Magisk jedoch nicht.

Wenn topjohnwu bestimmt ist, hindert ihn nichts daran, Root-Zugriff zu erlangen. Neulich gab er bekannt, dass er sein Pixel 3 XL erfolgreich auf Android Q beta 4 gerootet hat. In seiner Commit-Beschreibung werden die technischen Details zu seiner Unterstützung logischer Partitionen erläutert. Wichtig ist jedoch, dass Magisk jetzt auf Geräten installiert werden kann mit oder ohne logische Partitionen.

//twitter.com/topjohnwu/status/1144832417946984448

System-as-Root-Unterstützung

Bei Geräten mit A / B-Doppelpartitionen wird die Systempartition als Stammverzeichnis (/) bereitgestellt, bei Geräten ohne A / B-Doppelpartitionen wird die Systempartition jedoch unter / system bereitgestellt. Dies macht OTAs nur für das System auf Nicht-A / B-Geräten unmöglich, da sich die zu aktualisierenden Dateien auf der Ramdisk in der Startpartition befinden. Aus diesem Grund schreibt Google vor, dass alle Geräte, die mit Android Pie gestartet werden, das Partitionslayout "System als Root" unterstützen, um OTAs nur für das System in Android Pie und höher zu ermöglichen. Im System-als-Root-Layout wird das Ramdisk-Image in das als rootfs bereitgestellte System-Image zusammengeführt.

Seit der Einführung von "system-as-root" durch Google bestand die Lösung für Root-Geräte darin, "system-as-root" auf das Layout der alten Partition "initramfs rootfs" zurückzusetzen. Dies funktioniert problemlos für Android 7.1 bis Android 9 Pie, da Android dieses alte Layout bereits unterstützt, Android Q die Unterstützung jedoch vollständig entfernt, da System-as-Root jetzt für alle Geräte obligatorisch ist, auch für Geräte, die auf Android Q aktualisiert werden. Frühere Versionen von Magisk funktionierten dank einiger "wirklich übler Hacks" immer noch, aber topjohnwu war mit dieser Lösung nicht zufrieden, so dass er "MagiskInit" eingeführt hat, um System-as-Root ordnungsgemäß zu unterstützen.

Ein netter Nebeneffekt der ordnungsgemäßen Unterstützung des Partitionslayouts als Root-System ist, dass ein möglicher Weg zur Root-Erkennung unterbunden wurde. Wie topjohnwu mir gnädigerweise erklärte, war die alte Methode "Zurücksetzen auf initramfs rootfs" für Apps leicht zu erkennen, da Magisk das System an "/ system_root" mounten und das Mount "/ system_root / system" an "/ system" binden würde. Alles, was eine App tun müsste, um das Vorhandensein von root zu erkennen, ist zu überprüfen, ob '/ system_root' existiert oder ob '/' 'rootfs' ist. Es ist jedoch nicht klar, ob eine App dies tatsächlich ausgenutzt hat, um root zu erkennen. Trotzdem ist es sicherer als leid.

Verschiedene Änderungen

Android Q führt die Unterstützung für den so genannten "Blastula Pool" für den Lebenszyklus von Android-Anwendungen ein. MagiskHide konnte keine Apps erkennen, um den Root-Zugriff zu verbergen, wenn die neue Funktion "Prozesspool" aktiviert war. Die neueste kanarische Version unterstützt jetzt diese Funktion. Topjohnwu: „Um die in Q eingeführte neue Blastula-Pool-Optimierung richtig zu unterstützen, hatte ich einen guten Teil der Ptracing-Logik für die Prozessüberwachung neu geschrieben.“


Wenn Sie ein Pixel 3, Pixel 3 XL, Pixel 3a oder Pixel 3a XL in der Android Q-Beta haben, probieren Sie die neueste Version von Magisk Canary aus und lassen Sie uns wissen, ob Sie es schaffen, Ihr Gerät zu rooten.

Magisk Canary Channel