Estoy buscando métodos para ejecutar ARM nativo ejecutable en Android 4.1 (Jelly Bean). Por ejemplo, la compilación del programa clásico CEjecutar ARM ejecutable nativo en Jelly Bean
// hello.c
#include <stdio.h>
int main() {
printf("Hello world");
}
a ARMv7a ejecutable, por ejemplo hello
utilizando el NDK de Android y luego ejecutarlo en cáscara de Android. He tratado método sugerido en la web, tales como empujar el ejecutable a /data/local
por
adb push hello /data/local
permiso de modificación para que pueda ser ejecutado por
adb shell chmod 755 /data/local/hello
y después invocarlos en el intérprete de comandos usando
adb shell /data/local/hello
El último paso produce el error:
/data/local/hello: not found
pero evidentemente el archivo está allí. Sospecho que el problema es que el shell de Jelly Bean ya no permite ejecutar binarios alienígenas. ¿Alguien puede confirmar esto y darme una solución?
Esto no es una cuestión de programación para Android tan cerca como puedo ver. Creo que esto sería de interés para los usuarios hardcore de Android. – ale
@ Chak Gracias. Sin embargo, no creo que haya respondido a mi pregunta original. En última instancia, me gustaría ejecutar programas como 'dd' compilando de forma cruzada o utilizando la versión precompilada de ARM. Ahora recuerdo de 'busybox' y 'kbox' que también instalan un nuevo binario en el sistema, así que creo que no hay ningún problema de seguridad aquí. Veré esos trabajos para ver cómo lo hicieron. –
@ Chak - Dado que la pregunta de desbordamiento de pila es de octubre de 2011, y por lo tanto está respondiendo una versión anterior no especificada de Android, la respuesta para Jelly Bean * podría * ser diferente. El interlocutor realmente solo quiere que alguien confirme si es o no, lo cual es una pregunta práctica y confiable sobre Android. –