Ejecutar aplicaciones desde un emulador de terminal [cerrado]

Tengo una tableta Nexus 7 Jelly Bean rooteada y cada vez que intento ejecutar una aplicación desde una aplicación de emulador de terminal después de chmod 777 y usar la sintaxis (./applicationName") insiste en que no tengo permiso para ejecutar a pesar de que otorgué mis privilegios de superusuario usando ("su"). Después de eso, investigué un poco y aprendí que si copia el archivo en el directorio (/data/local/temp/) debería poder ejecutar la aplicación. Entonces, cuando lo intenté, dijo que el archivo no existe a pesar de que aparece al enumerar el contenido del directorio usando ("ls")

No tengo idea de qué pasos tomar, si ayuda, intenté ejecutar (scp) como prueba, pero deseo poder ejecutar una versión compilada personalizada de dns2tcp. Sé que podría haber usado mejores aplicaciones, como hello world compilado de forma nativa en el dispositivo, pero no pude tener en mis manos un compilador de C para Android como gcc.

gracias por cualquier consejo

¿Puedes agregar una pequeña transcripción de lo que hiciste? /sdcard está montado con la función 'noexec' que, por cierto, evita que se ejecuten los ejecutables. ¿Especificó la ruta completa con el segundo intento (/data/local/tmp/yourprogram)?
@ ce4 Probé lo que mencionaste en la segunda parte de tu comentario. Aquí está la transcripción: pastebin.com/RkuMHuBj EDITAR: Sí, olvidé presionar shift+enter :) mi error, jeje
¿Intentó especificar la ruta completa para la ejecución, por ejemplo /data/local/tmp/scp? ¿Y se aseguró de que su scparchivo no tenga extensión de archivo cuando se le llame sin ninguna?
@Izzy tengo, sí. ¿Alguien aquí puede ejecutar aplicaciones C personalizadas desde la propia terminal en un dispositivo Android?
Si la aplicación no está compilada para Android, no funcionará.

Respuestas (4)

intente poner shdelante de su comando, por ejemplo:

sh ./scp

o

sh -c ./scp
Recibí un error de sintaxis al ejecutar la aplicación, supongo que sucedió porque no se compiló para la tableta porque la arranqué de mi teléfono. Por desgracia, esto debe significar que funcionó ... ¿verdad?
que error recibiste?
el primer comando definitivamente no funcionará (./scp no está en un formato que pueda ser interpretado por el shell), el segundo es excesivo (simplemente ejecuta ./scp en un subshell). Ambos no solucionarán los permisos de ejecución inapropiados y/u otras incompatibilidades.

La aplicación del emulador debería poder ejecutar otra aplicación desde su propio directorio. Ese directorio se llama algo así como /data/data/com.super.emulator. Intente dar la ruta completa a la aplicación que desea en el emulador.

Si desea obtener un compilador para Android, puede usar NDK . Fácil de obtener, de uso gratuito.

¿No puedes también enviar tu archivo a /system/bintravés de adb ? No sé si obtienes ese permiso cuando rooteas tu dispositivo. Pero si ese es el caso, debería hacer su vida mucho más fácil.

Lo más probable es que no pueda ejecutar el programa debido a que faltan bibliotecas en el dispositivo en el que lo extrajo del dispositivo en el que lo copió.

Dado que su objetivo final es compilar un programa y ejecutarlo de forma nativa en el teléfono, ¿podría sugerirle que use el NDK de Android ? La documentación del NDK incluye una STANDALONE-TOOLCHAIN.HTMLexplicación sobre cómo realizar una compilación cruzada de un programa nativo para ejecutarlo en su dispositivo Android.

Si está rooteado (veo que lo está), use el sucomando y luego ejecute su script original. Si el problema son los permisos, esto debería solucionarlo. Y si está utilizando un script de shell, puede simplemente agregarle esta línea en la parte superior. es posible que deba verificar la configuración de su superSu (o cualquier aplicación de superusuario que tenga con la raíz) y asegurarse de que su emulador de terminal tenga permisos de raíz.

Si no está rooteado (o no puede ejecutarlo como root por algún motivo), le sugiero que investigue cómo lo hace XBMC, ya que creo que puede ejecutar aplicaciones en modo de usuario.

Buena suerte.