Necesito ejecutar un configure
archivo en mi teléfono Android, así que creo que la mejor manera de hacerlo es usar el adb shell
comando.
Estoy ejecutando un emulador de Android en una plataforma Windows-7, y allí estoy ejecutando el adb shell
comando en una ventana de DOS. Usando el cd
comando voy a cambiar al directorio en mi configure
archivo, y luego estoy ejecutando el siguiente comando: ./configure
. Recibo el siguiente error:
./configure: permission denied
Así que trato de ejecutar adb en modo raíz con adb root
, pero aparentemente mi adb ya está en modo raíz (Además, tengo el carácter "#" antes de cada línea de mi shell de adb).
También he intentado usar, chmod
pero no veo ninguna diferencia antes y después de ejecutar este comando ( ls -la
), por lo que tal vez el problema esté aquí (¿Cómo puedo ejecutar el chmod
comando?).
Tal vez alguien aquí pueda ayudarme con mi problema, y si también tiene una explicación sobre por qué no tengo permiso para ejecutar mi configure
archivo, será genial.
Gracias.
PD: Mi objetivo aquí es usar el paquete net-snmp en una plataforma Android compilando las fuentes de este proyecto directamente en la plataforma.
/sdcard
Por lo general, se monta con elnoexec
indicador en Android, por lo que no puede ejecutar binarios desde él. Recomendaría intentar moverlo a otro lugar (a menudo/data/local
se usa para cosas como esa). Vea si eso resuelve el problema./usr/local/tmp
directorio (todo elnet-snmp-5.7.2
directorio en/sdcard
.Respuestas:
Esto se debe a 2 cosas:
noexec
bandera, como se indica en un comentario. Esto detiene la ejecución de archivos.Solución:
net-snmp-5.7.2
directorio al/data/local/tmp
directorio como root.configure
archivo para que sea ejecutable ejecutándolochmod 0777 /data/local/tmp/net-snmp-5.7.2/configure
como root./data/local/tmp/net-snmp-5.7.2/configure
y presionando enter.Nota
Todo esto debe hacerse como usuario root :)
fuente
Según lo explicado por los comentarios y la respuesta de Liam , esto se debe a la
noexec
bandera utilizada por el sistema al montar la tarjeta SD. Si suconfigure
archivo es un script de shell (como suele ser), aún puede engañarlo para que se ejecute:cd
al directorio como describió anteriormente, y luego ejecutesh configure
.sh
es el intérprete de Shell, y ese binario debe ubicarse en/system/bin
donde los archivos son ejecutables. Al pasar su script como primer argumento, se abrirá un nuevo proceso de shell que ejecuta suconfigure
script.fuente
sh configure
hace el truco.