Ejecución de aplicaciones desde un emulador de terminal [cerrado]

8

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 usando la sintaxis ("./applicationName") insiste en que no tengo permiso para ejecutar aunque otorgé mi propio superusuario privs usando ("su"). Después de eso investigué un poco y aprendí que si copia el archivo al 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 cuando se enumera el contenido del directorio usando ("ls")

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

Gracias por cualquier consejo

Andrei0427
fuente
2
¿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 ejecutables. ¿Especificó la ruta completa con el segundo intento (/ data / local / tmp / yourprogram)?
ce4
@ ce4 He intentado lo que has mencionado en la segunda parte de tu comentario. Aquí está la transcripción: pastebin.com/RkuMHuBj EDITAR: Sí, olvidé presionar shift + enter :) mi mal jeje
Andrei0427
¿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 lo llamó sin ninguna?
Izzy
@ Izzy tengo, sí. ¿Alguien puede ejecutar aplicaciones C personalizadas desde el terminal en un dispositivo Android?
Andrei0427
Si la aplicación no está compilada para Android, no funcionará.
Matthew leyó el

Respuestas:

3

intente poner shdelante de su comando, por ejemplo:

sh ./scp

o

sh -c ./scp
EsOsO
fuente
Recibí un error de sintaxis al ejecutar la aplicación, supongo que sucedió porque no se compiló para la tableta en sí porque la arranqué de mi teléfono. Por desgracia, esto debe significar que funcionó ... ¿verdad?
Andrei0427
que error recibiste
EsOsO
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.
ce4
2

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

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

¿No puedes también empujar 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 hacerte la vida mucho más fácil.

Auselen
fuente
1

Lo más probable es que no pueda ejecutar el programa debido a las 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, ¿puedo sugerirle que use el NDK de Android ? La documentación del NDK incluye lo STANDALONE-TOOLCHAIN.HTMLque explica cómo compilar de forma cruzada un programa nativo para que se ejecute en su dispositivo Android.

Michael Hampton
fuente
0

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

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

Buena suerte.

Christopher
fuente