Ich muss eine configure
Datei auf meinem Android-Telefon ausführen, daher denke ich, dass der beste Weg, dies zu tun, darin besteht, den adb shell
Befehl zu verwenden.
Ich führe einen Android-Emulator auf einer Windows-7-Plattform aus und führe dort den adb shell
Befehl in einem 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 folgenden Fehler:
./configure: permission denied
Also versuche ich, adb im Root-Modus mit auszuführen adb root
- aber anscheinend ist mein Adb bereits im Root-Modus (Außerdem habe ich das Zeichen "#" vor jeder Zeile meiner Adb-Shell).
Ich habe auch versucht zu verwenden chmod
, aber ich sehe keinen Unterschied vor und nach der Ausführung dieses Befehls ( ls -la
), also liegt das Problem vielleicht 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, wäre das großartig.
Vielen Dank.
PS: Mein Ziel hier ist es, das net-snmp-Paket auf einer Android-Plattform zu verwenden, indem ich die Quellen dieses Projekts direkt auf der Plattform kompiliere.
Das liegt an 2 Dingen:
noexec
Flag gemountet, wie in einem Kommentar angegeben. Dies stoppt die Ausführung von Dateien.Lösung:
net-snmp-5.7.2
Verzeichnis in das /data/local/tmp
Verzeichnis als root.configure
Datei ausführbar ist, indem Sie sie chmod 0777 /data/local/tmp/net-snmp-5.7.2/configure
als root ausführen./data/local/tmp/net-snmp-5.7.2/configure
und die Eingabetaste drücken.Notiz
Dies sollte alles als Root-Benutzer erfolgen :)
Wie in den Kommentaren und der Antwort von Liam erläutert , liegt dies an dem noexec
Flag, das das System beim Mounten der SD-Karte verwendet. Wenn es sich bei Ihrer configure
Datei um ein Shell-Skript handelt (wie es normalerweise der Fall ist), können Sie es trotzdem austricksen, damit es ausgeführt wird:
cd
in das Verzeichnis, wie Sie es oben beschrieben haben, und führen Sie dann aus sh configure
.
sh
ist der Shell-Interpreter, und diese Binärdatei sollte sich in befinden /system/bin
, wo Dateien ausführbar sind . Wenn Sie Ihr Skript als erstes Argument übergeben, wird ein neuer Shell-Prozess geöffnet, der Ihr configure
Skript ausführt.
sh configure
macht den Trick.
Eldarerathis
grattmandu03
Liam W
chmod 0777 ./configure
versuchen Sie das, dann versuchen Sie es auszuführen.Eldarerathis
/sdcard
wird normalerweise mit demnoexec
Flag in Android gemountet, sodass Sie keine Binärdateien daraus ausführen können. Ich würde empfehlen, es an einen anderen Ort zu verschieben (/data/local
wird oft für solche Dinge verwendet). Sehen Sie, ob das das Problem löst.Liam W
/usr/local/tmp
Verzeichnis (das gesamtenet-snmp-5.7.2
Verzeichnis in/sdcard
.grattmandu03
Liam W
grattmandu03
t0mm13b
configure
Skripts? Es sucht nach einer auszuführenden Datei.... Sind Sie sicher, dass Sie wissen, was Sie tun? Wofürconfigure
? Diese Angaben fehlen in der Frage! :)grattmandu03
t0mm13b
grattmandu03
t0mm13b
t0mm13b
Liam W
t0mm13b
configure
Skript ausführte und insgesamt den falschen Ansatz verfolgte!grattmandu03
Liam W