SuperSU BETA: Android Lollipop auf Stock Kernel rooten

Eilmeldung: Chainfire hat heute SuperSU Beta 2.27 angekündigt, wodurch Kernel-Ramdisk-Änderungen nicht mehr erforderlich sind, um den Root-Zugriff auf Android 5.0 nutzen zu können

Wenn Sie bisher unter Android 5.0 rooten wollten, mussten Sie einen modifizierten Kernel auf Ihr Gerät flashen, um einige SELinux-Einschränkungen zu umgehen. XDA Senior Recognized Developer Kettenfeuer Kürzlich wurde das zuvor Notwendige veröffentlicht CF-Auto-Root Paket, das die notwendigen Kernel-Ramdisk-Änderungen vornahm, um die SELinux-Einschränkung aus dem install-recovery.sh-Skript auf AOSP zu entfernen. Heute Morgen jedoch zauberte Chainfire ein Lächeln auf viele Gesichter, wie er auf Twitter angekündigt dass dies in Zukunft nicht mehr notwendig sein würde.

Bis heute hatte Chainfire geplant, ein automatisiertes ZIP-basiertes Patch-Tool zu veröffentlichen, das automatisch funktioniert Patch-Kernel-Images aus der TWRP-Wiederherstellung heraus, bis er auf eine geeignete Methode stieß, um die Notwendigkeit zu beseitigen Das.

Diese Offenbarung bedeutet, dass Benutzer von Android 5.0 keinen modifizierten Kernel mehr ausführen müssen, um Root-Zugriff über SuperSU (oder andere Root-Lösungen) zu erhalten. Auf Nexus-Geräten mit freischaltbaren Bootloadern war dies zwar kein großes Problem, die Notwendigkeit von Ramdisk-Änderungen war jedoch vorhanden Besorgniserregend für viele Benutzer von Bootloader-gesperrten Geräten, für die keine Entsperrung verfügbar ist (ja, das tun sie leider). existieren). Die Antwort auf ihre Gebete ist nun da und wir können eine exklusive Erklärung der erforderlichen Änderungen präsentieren. Zumindest vorerst (bis Google dies patcht) ist es möglich, Root-Zugriff zu erhalten und dann SuperSU auf einem Standard-Android 5.0-Gerät zu installieren und zu verwenden, ohne dass eine Optimierung der Kernel-Ramdisk erforderlich ist. Der Grund dafür ist die Notwendigkeit, dass SuperSU einen Dienst als Root ausführen muss, um uneingeschränkten Root-Zugriff auf SELinux-geschützte Geräte zu ermöglichen.

Bisher nutzte SuperSU das vorinstallierte AOSP flash_recovery Dienst (wird in AOSP zur Aktualisierungswiederherstellung nach einer OTA-Installation verwendet) zum Starten des SuperSU-Daemons (der tatsächlich die Root-Rechte für Apps bereitstellt, die dies anfordern). Mit der Veröffentlichung von Lollipop wurde dieser Dienst einem eingeschränkten SELinux-Kontext hinzugefügt, was bedeutet, dass er keinen uneingeschränkten Zugriff mehr auf das System hat. Die vorherigen Kernel-Änderungen zielten darauf ab, die SELinux-Einschränkungen aus diesem Skript zu entfernen.

Chainfires neueste Beta-Version von SuperSU behebt dieses Problem durch die Verwendung des Kerndienstes „Zygote“ (der für den Start aller Java-Dienste und damit aller auf einem Gerät installierten Apps verantwortlich ist). Da Zygote einer der wenigen Dienste ist, die auf Android L verfügbar sind, wird dieser als Root innerhalb des gestartet Der uneingeschränkte „init“-SELinux-Kontext macht ihn zu einem Hauptziel für die Verwendung im Betrieb von SuperSU. Nach dem Booten wird der SELinux-Init-Kontext des Zygote-Dienstes auf seinen endgültigen (eingeschränkten) Zygote-Kontext umgestellt. Chainfire hat es geschafft, die Zygote-Dateien erfolgreich zu ändern, um Code als Root-Benutzer auszuführen. innerhalb des uneingeschränkten „init“-Kontexts, wodurch SuperSU wieder auf Android L zurückgebracht wird, ohne Kernel Modifikationen.

Dies ist nicht das erste Mal, dass Chainfire sich zur Lösung dieser Probleme an Zygote wendet; Die frühere Betaversion 2.23 nutzte Zygote als Mittel, um möglicherweise einige andere SELinux-Probleme zu umgehen (die dazu führten, dass Root-Apps unter Android L kaputt gingen). Dadurch konnten einige (aber nicht alle) der nicht funktionierenden Apps funktionieren – für die übrigen sind einige Updates durch ihre Entwickler erforderlich. Als der AOSP-Code 5.0 konsultiert wurde, stellte sich leider heraus, dass Google diese Methode zur Übernahme des Zygote-Dienstes bereits gebrochen hatte. Angesichts der Tatsache, dass alle seine bisherigen Versuche, Zygote zu übernehmen, gescheitert waren, ist dies ein vielversprechender Schritt nach vorne.

Chainfire wollte darauf hinweisen, dass SuperSU seit langem in der Lage ist, SELinux-Richtlinien auf einem laufenden System zu ändern (und warnt davor, dass dies einfach ist). (was ein OEM dies deaktivieren und wirklich einen sinnvollen und einfachen Root-Zugriff verhindern könnte) und wie alle an Zygote vorgenommenen Änderungen vorgenommen werden müssen Seien Sie vorsichtig, da der Dienst in verschiedenen Kontexten und für unterschiedliche Aufgaben ausgeführt wird und dies die Möglichkeit einer Reihe (böser) Fehler mit sich bringt. subtile Fehler. Diese neue SuperSU Beta 2.27 ist ein Build für Enthusiasten und andere Technikfreaks, mit dem sie herumspielen können, um herauszufinden, was kaputt ist. Wir drücken die Daumen – es gibt keine unerwarteten, auffälligen Fehler, und dies ist ein gangbarer Weg nach vorne.

Beachten Sie: Selbst wenn diese Beta klappt und Zygote der bevorzugte Weg ist, um Root-Zugriff zu erhalten, ist der gesamte Prozess in Zukunft nur eine einzeilige Änderung weg von der Zerstörung durch Google, was gepatchte Kernel-Ramdisks zur Zukunft für den Root-Zugriff auf Android machen würde (wodurch Root für Bootloader-gesperrt ausgeschlossen wäre). Geräte). Tatsächlich kann es sein, dass der neue Prozess aufgrund einiger ziemlich großer SELinux-Versionen möglicherweise nicht einmal auf einem vollständig aktuellen AOSP-Build funktioniert Änderungen in den letzten Monaten, die in den Verkaufsgeräten nicht enthalten waren, aber zweifellos in Zukunft vorhanden sein werden Veröffentlichungen. Früher oder später scheint es jedoch wahrscheinlich, dass für Root modifizierte Kernel-Ramdisks erforderlich sein werden, aber diese neue Beta bietet möglicherweise eine kurze Ausführungspause, bevor wir in diese Richtung gehen müssen.

Kasse die Versionshinweise Weitere Informationen zu den mit dem Testen verbundenen Risiken sowie Links finden Sie hier. Entwickler sollten sich auch darüber im Klaren sein, dass Chainfire derzeit intensiv daran arbeitet „How-To SU“-Anleitung (vollständig aktualisiert für Android 5.0), das in den nächsten Tagen verfügbar sein sollte.

[Ein großes Dankeschön an Chainfire für seine Arbeit hier und die Unterstützung bei der Erstellung dieses Artikels.]