No se puede ejecutar el archivo ejecutable desde el shell de adb

He añadido tcpdump archivo binario a mi dispositivo Android con este comando

./adb push ~/tcpdump-4.2.1/tcpdump /data/local 

El binario se agrega al dispositivo android con éxito. Pero, cuando intento ejecutar el archivo tcpdump desde el shell de adb, usando los siguientes comandos

 ./adb shell cd data/local ./tcpdump 

Me da este error

 /system/bin/sh: ./tcpdump: not executable: magic 7F45 

También he intentado cambiar permisos usando chmod 777 tcpdump pero en vano. ¿Cómo puedo superar este problema? Gracias.

4 Solutions collect form web for “No se puede ejecutar el archivo ejecutable desde el shell de adb”

Puedes encontrar una versión para Android de tcpdump aquí . Esta compilación es algo anticuada, y sólo es relevante para los dispositivos ARM. Usted debe seguir estas instrucciones para construir el binario de la fuente oficial .

Hay instrucciones detalladas sobre cómo ejecutar tcpdump en Android. Tenga en cuenta que necesita un dispositivo con raíz para empezar.

Debe compilar archivos binarios a través de GCC desde Android NDK

Pruebe el siguiente comando:

Escriba este comando c:\ProgramFiles\Android\android-sdk\platform-tools\adb shell tcpdump

Para linux:

  adb shell chmod 6755 /data/local/tmp/tcpdump 

Y también vaya a través de este enlace para una mejor comprensión:

http://www.kandroid.org/online-pdk/guide/tcpdump.html

Tengo el mismo error al intentar ejecutar otro binario en el emulador de Android. Error de la compilación.

Usted tiene que cruzar la compilación de un objetivo ARM que significa que necesita una cadena de herramientas específicas como por ejemplo arm-linux-androideabi.

Para ello, debe

  • Export CROSS_COMPILE = arm-linux-androideabi- (su cadena de herramientas terminando con '-' sin gcc)
  • ARCH de exportación = brazo
  • Agrega la cadena de herramientas a tu PATH

Entonces puede ejecutar make command. Es posible que desee añadir -static a los LDFLAGS antes de construir.

Finalmente compruebe que su binario ha sido bien compilado usando el comando file. Debe buscar ARM en el resultado impreso.

En caso de que el Makefile no maneje CROSS_COMPILE var puede intentar hacer con los parámetros CC y AR manualmente establecidos con "$ CROSS-COMPILE" gcc y "$ CROSS-COMPILE" ar

Más detalles aquí: http://source.android.com/source/index.html

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.