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:
Gingerbreak.apk
Superuser.apk
auf magische Weise installiert wurde, möglicherweise zusammen mit busybox
und 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:
su
ist vorhanden und funktioniertSuperuser.apk
installiert ist und den Zugriff steuertsu
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.apk
es 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?
Was das APK und der Exploit (normalerweise) tun, ist wie folgt:
Als Beispiel wird auf dieser Seite beschrieben, wie der Rageagainstthecage-Exploit versucht, erhöhte Rechte zu erlangen.
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 su
und Superuser.apk
an 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 su
Binärdatei (siehe Quelle und auch diese Frage ). Ich dachte (fälschlicherweise), dass su
dies ein Standard su
sei 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.
su
ist 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 su
Binä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 permissions
als ob das ohne einen Exploit einfach wäre, der Exploit ist die Magie.setuid
Bit, mit dem es als root ausgeführt werden kann, obwohl der Benutzer, der es aufgerufen hat, dies nicht ist
Ale