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?