Ich habe ein verwurzeltes Nexus 7 Jelly Bean-Tablet und wenn ich versuche, eine Anwendung über eine Terminalemulator-App auszuführen, nachdem ich sie mit chmod 777 ausgeführt und die Syntax ("./applicationName") verwendet habe, besteht sie darauf, dass ich keine Berechtigung zum Ausführen habe, obwohl ich gewährte mir selbst superUser privs using ("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 versuchte, dass die Datei nicht existiert, obwohl sie beim Auflisten des Verzeichnisinhalts mit ("ls") angezeigt wird.
Ich habe keine Ahnung, welche Schritte ich unternehmen soll, wenn es hilft, dass ich versucht werde, (scp) als Test auszuführen, aber ich möchte in der Lage sein, eine benutzerdefinierte kompilierte Version von dns2tcp auszuführen. Ich weiß, ich hätte bessere Anwendungen wie eine Hallo-Welt verwenden können, die nativ auf dem Gerät kompiliert wurde, aber ich konnte keinen C-Compiler für Android wie gcc in die Hände bekommen.
Vielen Dank für jeden Rat
/data/local/tmp/scp
. Und haben Sie sichergestellt, dass Ihrescp
Datei keine Dateierweiterung hat, wenn sie ohne aufgerufen wird?Antworten:
Versuchen Sie,
sh
vor Ihren Befehl zu stellen, z.oder
quelle
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
. Geben Sie den vollständigen Pfad zu der gewünschten App im Emulator an.Wenn Sie einen Compiler für Android erhalten möchten, können Sie NDK verwenden . Einfach zu bekommen, kostenlos zu bedienen.
Können Sie Ihre Datei nicht auch
/system/bin
über adb weiterleiten ? Ich weiß nicht, ob Sie diese Berechtigung erhalten, wenn Sie Ihr Gerät rooten. Aber wenn das der Fall ist, sollte es Ihr Leben viel einfacher machen.quelle
Höchstwahrscheinlich können Sie das Programm nicht ausführen, da Bibliotheken auf dem Gerät, auf das Sie es gerippt haben, auf dem Gerät fehlen, auf das Sie es kopiert haben.
Da Ihr Endziel darin besteht, ein Programm zu kompilieren und nativ auf dem Telefon auszuführen, kann ich Ihnen empfehlen, das Android NDK zu verwenden ? In der NDK-Dokumentation wird
STANDALONE-TOOLCHAIN.HTML
erläutert, wie Sie ein natives Programm für die Ausführung auf Ihrem Android-Gerät kompilieren.quelle
Wenn Sie verwurzelt sind (ich sehe, dass Sie verwurzelt sind), verwenden Sie den
su
Befehl und führen Sie dann Ihr ursprüngliches Skript aus. Wenn das Problem Berechtigungen sind, sollte dies das Problem 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 mit Root) überprüfen und sicherstellen, dass Ihr Terminalemulator über Root-Berechtigungen verfügt.Wenn Sie nicht verwurzelt sind (oder aus irgendeinem Grund nicht als Root ausgeführt werden können), sollten Sie sich ansehen, wie XBMC dies tut, da ich glaube, dass es Apps im Benutzermodus ausführen kann.
Viel Glück.
quelle