Ausführen von Anwendungen von einem Terminal-Emulator [geschlossen]

Ich habe ein gerootetes Nexus 7 Jelly Bean Tablet und immer wenn ich versuche, eine Anwendung von einer Terminal-Emulator-App auszuführen, nachdem ich sie mit chmod 777ing und der Syntax ("./applicationName") ausgeführt habe, besteht es darauf, dass ich keine Berechtigung zur Ausführung habe, obwohl ich gewährte mir selbst SuperUser-Privilegien mit ("su"). Danach habe ich ein wenig recherchiert und festgestellt, dass Sie die Anwendung ausführen können sollten, wenn Sie die Datei in das Verzeichnis (/data/local/temp/) kopieren. Als ich das versuchte, sagte es, dass die Datei nicht existiert, obwohl sie beim Auflisten des Verzeichnisinhalts mit ("ls") angezeigt wird.

Ich habe keine Ahnung, welche Schritte zu unternehmen sind, wenn es hilft, habe ich versucht, (scp) als Test auszuführen, aber ich möchte in der Lage sein, eine benutzerdefinierte kompilierte Version von dns2tcp auszuführen. Ich weiß, dass ich bessere Anwendungen hätte verwenden können, wie z. B. eine „Hello World“, die nativ auf dem Gerät kompiliert wurde, aber ich konnte keinen C-Compiler für Android wie gcc in die Hände bekommen.

Danke für jeden Rat

Können Sie eine kleine Abschrift dessen hinzufügen, was Sie getan haben? /sdcard ist mit der Funktion „noexec“ gemountet, die übrigens verhindert, dass ausführbare Dateien ausgeführt werden. Haben Sie beim zweiten Versuch den vollständigen Pfad angegeben (/data/local/tmp/yourprogram)?
@ce4 Ich habe versucht, was Sie im zweiten Teil Ihres Kommentars erwähnt haben. Hier ist das Transkript: pastebin.com/RkuMHuBj BEARBEITEN: Ja, ich habe vergessen, Umschalt + Eingabetaste zu drücken :) mein schlechtes hehe
Haben Sie versucht, den vollständigen Pfad für die Ausführung anzugeben - zB /data/local/tmp/scp? Und sichergestellt, dass Ihre scpDatei keine Dateierweiterung hat, wenn sie ohne eine aufgerufen wird?
@Izzy habe ich, ja. Kann hier jemand benutzerdefinierte C-Anwendungen vom Terminal selbst auf einem Android-Gerät ausführen?
Wenn die App nicht für Android kompiliert ist, wird sie nicht funktionieren.

Antworten (4)

Versuchen Sie, shIhrem Befehl voranzustellen, z. B.:

sh ./scp

oder

sh -c ./scp
Ich habe beim Ausführen der Anwendung einen Syntaxfehler erhalten, ich vermute, dass es passiert ist, weil es nicht für das Tablet selbst kompiliert wurde, weil ich es von meinem Telefon gerissen habe. Ach, das muss bedeuten, dass es funktioniert hat ... richtig?
welchen fehler hast du bekommen?
Der erste Befehl wird definitiv nicht funktionieren (./scp hat kein Format, das von der Shell interpretiert werden kann), der zweite ist übertrieben (er führt nur ./scp in einer Subshell aus). Beide beheben keine unangemessenen Ausführungsberechtigungen und/oder andere Inkompatibilitäten.

Die Emulator-App sollte in der Lage sein, eine andere App aus ihrem eigenen Verzeichnis auszuführen. Dieses Verzeichnis heißt so etwas wie /data/data/com.super.emulator. Versuchen Sie, den vollständigen Pfad zu der gewünschten App im Emulator anzugeben.

Wenn Sie einen Compiler für Android erhalten möchten, können Sie NDK verwenden . Einfach zu bekommen, kostenlos zu benutzen.

Kannst du deine Datei nicht auch /system/binvia adb pushen ? Ich weiß nicht, ob Sie diese Erlaubnis erhalten, wenn Sie Ihr Gerät rooten. Aber wenn das der Fall ist, sollte es Ihr Leben viel einfacher machen.

Höchstwahrscheinlich können Sie das Programm nicht ausführen, weil Bibliotheken auf dem Gerät, auf das Sie es kopiert haben, auf dem Gerät fehlen, auf das Sie es kopiert haben.

Da Ihr Endziel darin besteht, ein Programm zu kompilieren und es nativ auf dem Telefon auszuführen, könnte ich vorschlagen, dass Sie das Android NDK verwenden ? Die NDK STANDALONE-TOOLCHAIN.HTML-Dokumentation enthält Erläuterungen zum Querkompilieren eines nativen Programms zur Ausführung auf Ihrem Android-Gerät.

Wenn Sie gerootet sind (wie ich sehe, sind Sie es), verwenden Sie den suBefehl und führen Sie dann Ihr ursprüngliches Skript aus. Wenn das Problem Berechtigungen sind, sollte dies es beheben. Und wenn Sie ein Shell-Skript verwenden, können Sie diese Zeile einfach oben hinzufügen. Möglicherweise müssen Sie Ihre superSu-Einstellungen (oder die Superuser-App, die Sie mit root haben) überprüfen und sicherstellen, dass Ihr Terminalemulator über Root-Berechtigungen verfügt.

Wenn Sie nicht gerootet sind (oder aus irgendeinem Grund nicht als Root ausgeführt werden können), schlage ich vor, zu prüfen, wie XBMC dies tut, da ich glaube, dass es Apps im Benutzermodus ausführen kann.

Viel Glück.