Ich kann eine Root-Eingabeaufforderung im Terminal erhalten, indem ich einen an anderer Stelle dokumentierten Exploit ausführe. (zB hier: http://wiki.cyanogenmod.com/wiki/Motorola_Droid_2_Global:_Full_Update_Guide )
Zu diesem Zeitpunkt kann ich die Binärdatei "su" installieren und ihr die Berechtigung 4755 erteilen. Dies sollte es jedem ermöglichen, sie auszuführen. Da der Eigentümer der Binärdatei "root" ist und das Sticky-Bit gesetzt ist, sollte ich root werden. Aber ich habe anscheinend keine Möglichkeit, mich vom Terminal zu lösen, bevor ich neu gestartet habe. Aber nach dem Neustart kann ich mit 'su' scheinbar nicht root werden.
$ ls -l /system/bin/su
-rwsr-xr-x root app_101 26234 2012-07-09 15:00 su
Ok, die Berechtigungen sehen gut aus, sollte ich sie ausführen können, um root zu werden, aber nur bei diesem bestimmten Aufruf des Terminals.
$ /system/bin/su
Permission denied
Es schlägt auch fehl, wenn ich den Befehl als root oder mit anderen Argumenten angeben:
$ /system/bin/su /system/bin/sh
Permission denied
Warum? Gibt es einen anderen Mechanismus bei der Arbeit? Ich möchte Superuser.apk nicht installieren, da ich nur eine Möglichkeit haben möchte, bei Bedarf vorübergehend eine Root-Shell abzurufen, um beispielsweise unerwünschte Dateien manuell zu löschen. Außerdem verlässt sich Superuser.apk sowieso auf die su-Binärdatei, daher muss es eine Möglichkeit geben, sie aufzurufen. Warum kann ich das nicht im Terminal replizieren?
Bearbeiten: Ich hatte einen anderen Gedanken, also habe ich versucht, / bin / sh an einen anderen Ort zu kopieren und es suid root gemacht. Aber während ich die neue Binärdatei ausführen kann, gibt sie mir keine Wurzel. Macht Android mit suid etwas Kniffliges / Anderes, was normales Linux nicht tut?
quelle
Antworten:
Der Hinweis ist in der Eigentümer- / Gruppen-ID ...
Beachten Sie, dass die Gruppen-ID auf 'app_101' gesetzt ist, das sollte 'root' sein, aber
busybox
andererseits benötigen Sie die Binärdatei (die Teil der SuperUser.apk-Binärdatei ist, in die sie bei der Installation die entsprechende Binärdatei kopiert/system/xbin
) dazu in der Lagechown
sein.quelle
Versuchen Sie, die
-c
Option hinzuzufügen . z.Boder
(für weitere Argumente)
quelle
Ein bisschen mehr graben und ich denke, ich habe die Antwort aufgedeckt. Der Grund, warum es nicht funktioniert, ist, dass die Terminal-App in ihrem Manifest keine Superuser-Berechtigung anfordert, z.
Diese zusätzliche Sicherheitsebene scheint darauf zurückzuführen zu sein, dass es sich bei der Terminalanwendung um eine Java-Anwendung handelt, obwohl sie diese gut versteckt. Der Superuser scheint die Dinge irgendwie zu verändern, so dass Java-Apps diese Berechtigung erhalten können, auch wenn sie nicht wussten, dass sie sie beim Erstellen benötigen.
quelle
ACCESS_SUPERUSER
Erlaubnis ist nicht mit Ihrem Problem verbunden