Wie funktioniert das Rooten?

Oder wie roote ich mein Gerät ohne Rooter?

Rooting-Anweisungen für Android-Geräte, die ich gesehen habe, haben normalerweise die folgende Form:

  1. DownloadGingerbreak.apk
  2. Führen Sie Gingerbreak aus, klicken Sie auf „Root-Gerät“
  3. Beobachten Sie, was Superuser.apkauf magische Weise installiert wurde, möglicherweise zusammen mit busyboxund anderen Dingen, und genießen Sie Ihre wurzelhafte Güte.

Was ich wissen möchte, ist Folgendes: Wie passiert das Rooten eigentlich? Was macht Gingerbreak?

Ich verstehe das Endergebnis des Rootens:

  • suist vorhanden und funktioniert
  • Superuser.apkinstalliert ist und den Zugriff steuertsu
  • Es sind verschiedene Dienstprogramme vorhanden, die von BusyBox bereitgestellt werden (optional?)

Ich denke auch, dass ich die Grundidee verstehe, wie Gingerbreak anfängt – es nutzt eine lokale Schwachstelle bei der Eskalation von Berechtigungen aus und nutzt seine neu entdeckten Befugnisse, um Superuser und alles andere Notwendige bereitzustellen.

Wenn ich mich also nicht in einigen der oben dargelegten Erkenntnisse irre, möchte ich im Kern wissen, was der Root-Installer tut, um Superuser bereitzustellen und zu aktivieren. Es scheint, dass Superuser.apkes nicht ausreichen würde, nur die richtige Stelle einzugeben – wie erhält es Root-Zugriff? Wie wird es angeschlossen, um diesen Zugriff für andere Anwendungen zu moderieren?

Was tut Gingerbreak nach dem Exploit, um den Root-Zugriff zu ermöglichen und zu sichern?

Antworten (2)

Was das APK und der Exploit (normalerweise) tun, ist wie folgt:

  • Das APK legt die richtigen Dateien an der richtigen Stelle ab, um den Exploit auszuführen
  • Das APK führt den Exploit aus
  • Der Exploit versucht, Root-Zugriff zu erlangen
  • Wenn dies erfolgreich ist, hängt der Exploit /system erneut mit Lese-/Schreibzugriff ein und führt das Installationsskript aus
  • Das Installationsskript versucht, die Binärdatei su und die Superuser-APK zu installieren, und startet neu

Als Beispiel wird auf dieser Seite beschrieben, wie der Rageagainstthecage-Exploit versucht, erhöhte Rechte zu erlangen.

Danke. Ich denke, das schränkt meine eigentliche Frage weiter ein - was genau macht das Installationsskript? Oder wo finde ich eine Kopie davon zum Lesen? Die meisten Dokumente, die ich sehe, sind sehr undurchsichtig – „Laden Sie dieses APK herunter, es funktioniert“ mit einem Link zu einer zufälligen Filesharing-Site.
su ermöglicht die Erhöhung von Berechtigungen in Unix-ähnlichen Umgebungen (auf denen Android basiert). Wenn die su-Binärdatei installiert ist, können Apps/Skripte dann die su- und sudo-Befehle verwenden, um Teile des Dateisystems auszuführen und darauf zuzugreifen, die normalerweise für normale Benutzer eingeschränkt sind. Im Wesentlichen ist das der Grund, warum man ein Telefon rootet – um Zugang zu „eingeschränkten“ Teilen des Systems zu erhalten und Befehle ausführen zu können, die ein normaler Benutzer nicht ausführen darf.

Nach langem Suchen habe ich es endlich herausgefunden. Ich habe mich geirrt, wo die Magie liegt - sie ist nicht im Installationsskript; Alles, was Sie tun müssen, ist, die Binärdateien suund Superuser.apkan der richtigen Stelle abzulegen und ihre Berechtigungen festzulegen. Es ist also wirklich so einfach wie das Ablegen von Dateien und das Festlegen von Berechtigungen. Keine magische Verkabelung.

Die Magie passiert in der suBinärdatei (siehe Quelle und auch diese Frage ). Ich dachte (fälschlicherweise), dass sudies ein Standard susei und dass die Dinge irgendwie verdrahtet seien, um den Zugriff auf diese Binärdatei durch zu moderieren Superuser.apk.

Falsch. Was tatsächlich passiert, ist viel einfacher: Superuser bietet eine benutzerdefinierte Implementierung von su, die den Zugriff über Superuser und seine autorisierte Anwendungsdatenbank authentifiziert.

Der Prozess des Rootens ist also so einfach, wie @Sparx sagte. Die bereitgestellte Software enthält die Magie.

Ich denke, das vermisst eine wichtige Sache: Das suist selbst überhaupt keine Magie, die einzige Magie daran ist, dass das Betriebssystem es speziell behandelt. Alles, was es tun muss, ist „OK“ oder „Nicht OK“ zurückzugeben, wenn es vom Betriebssystem gefragt wird, ob einer bestimmten Anwendung erlaubt werden soll, Berechtigungen zu erhöhen. Wenn es fehlt oder immer "Nicht OK" zurückgibt, können normale Apps niemals root werden. Rooten ist also im Grunde der Vorgang des Platzierens einer suBinärdatei, die manchmal "OK" zurückgeben kann, an einem geschützten Ort auf einem System, das dies nicht zulassen soll.
all that has to do is put the su and Superuser.apk binaries in the right place and set their permissionsals ob das ohne einen Exploit einfach wäre, der Exploit ist die Magie.
@Alex Nicht ganz. Ich habe speziell versucht herauszufinden, was ein Rooter nach dem Exploit tut . Da ich in diesem Fall Root-Zugriff über ADB hatte, wollte ich keinen unnötigen Exploit ausführen.
@RomanSt nicht ganz richtig, es hat einfach das setuidBit, mit dem es als root ausgeführt werden kann, obwohl der Benutzer, der es aufgerufen hat, dies nicht ist