Ich muss eine configure
Datei auf meinem Android-Handy ausführen, daher denke ich, dass der beste Weg, dies zu tun, die Verwendung des adb shell
Befehls ist.
Ich führe einen Android-Emulator auf einer Windows-7-Plattform aus und führe dort den adb shell
Befehl in ein DOS-Fenster aus. Mit dem cd
Befehl wechsle ich in das Verzeichnis, in dem sich meine configure
Datei befindet, und führe dann den folgenden Befehl aus : ./configure
. Ich erhalte die folgende Fehlermeldung:
./configure: permission denied
Also versuche ich, adb im Root-Modus mit auszuführen adb root
- aber anscheinend befindet sich mein adb bereits im Root-Modus (außerdem habe ich vor jeder Zeile meiner adb-Shell das Zeichen "#").
Ich habe auch versucht, zu verwenden, chmod
aber ich sehe keinen Unterschied vor und nach dem Ausführen dieses Befehls ( ls -la
), daher liegt das Problem möglicherweise hier (Wie kann ich den chmod
Befehl ausführen ?).
Vielleicht kann mir hier jemand bei meinem Problem helfen, und wenn Sie auch eine Erklärung haben, warum ich nicht die Berechtigung habe, meine configure
Datei auszuführen , ist das großartig.
Vielen Dank.
PS: Mein Ziel hier ist es, das net-snmp-Paket auf einer Android-Plattform zu verwenden, indem die Quellen dieses Projekts direkt auf der Plattform kompiliert werden.
/sdcard
wird normalerweise mit demnoexec
Flag in Android gemountet , sodass Sie keine Binärdateien ausführen können. Ich würde empfehlen, es an einen anderen Ort zu verschieben (wird oft/data/local
für solche Dinge verwendet). Überprüfen Sie, ob das Problem dadurch behoben wird./usr/local/tmp
Verzeichnis (das gesamtenet-snmp-5.7.2
Verzeichnis in/sdcard
.Antworten:
Dies ist auf zwei Dinge zurückzuführen:
noexec
wie in einem Kommentar angegeben mit dem Flag versehen. Dies verhindert, dass Dateien ausgeführt werden.Lösung:
net-snmp-5.7.2
in das/data/local/tmp
Verzeichnis.configure
Datei ausführbar ist, indem Sie siechmod 0777 /data/local/tmp/net-snmp-5.7.2/configure
als root ausführen ./data/local/tmp/net-snmp-5.7.2/configure
indem Sie die Eingabetaste eingeben und drücken.Hinweis
Dies sollte alles als Root-Benutzer erfolgen :)
quelle
Wie aus den Kommentaren und der Antwort von Liam hervorgeht , ist dies auf das
noexec
Flag zurückzuführen, das das System beim Mounten der SD-Karte verwendet. Wenn es sich bei Ihrerconfigure
Datei um ein Shell-Skript handelt (wie es normalerweise der Fall ist), können Sie die Ausführung dennoch austricksen:cd
in das oben beschriebene Verzeichnis wechseln und dann ausführensh configure
.sh
ist das Shell - Interpreter, und die binären sollte in lokalisiert werden/system/bin
, wo die Dateien sind ausführbar. Wenn Sie Ihr Skript als erstes Argument übergeben, wird ein neuer Shell-Prozess geöffnet, der Ihrconfigure
Skript ausführt .quelle
sh configure
macht den Trick.