12 votos

adb "Permiso denegado" para ejecutar un archivo "./configure"

Necesito ejecutar un configure en mi teléfono Android, así que creo que la mejor manera de hacerlo es utilizar el adb shell comando.

Estoy ejecutando un emulador de Android en una plataforma Windows-7, y allí estoy ejecutando el adb shell en una ventana de DOS. Utilizando el cd estoy cambiando al directorio donde mi configure es, y luego ejecuto el siguiente comando: ./configure . Estoy recibiendo el siguiente error :

./configure: permission denied

Así que intento ejecutar adb en modo Root con adb root -- pero aparentemente mi adb ya está en modo Root (además tengo el carácter "#" antes de cada línea de mi adb shell).

También he intentado utilizar chmod pero no veo ninguna diferencia antes y después de ejecutar este comando ( ls -la ), así que tal vez el problema esté aquí (¿Cómo puedo ejecutar el chmod comando ).

Tal vez alguien aquí puede ayudarme con mi problema, y si tiene también una explicación acerca de por qué no tengo el permiso para ejecutar mi configure archivo será genial.

Gracias.

PD: Mi objetivo aquí es utilizar el paquete net-snmp en una plataforma Android compilando las fuentes de este proyecto directamente en la plataforma.

0 votos

¿En qué parte del sistema de archivos del emulador de Android se encuentra el archivo de configuración?

0 votos

La ruta del archivo es /sdcard/net-snmp-5.7.2/configure

0 votos

chmod 0777 ./configure inténtalo, y luego intenta ejecutarlo.

11voto

Liam W Puntos 6478

Esto se debe a dos cosas:

  1. El archivo no tiene permisos de ejecución [Y]
  2. El archivo no puede obtener permisos de ejecución ya que se encuentra en la tarjeta SD. El sistema de archivos de la tarjeta SD puede aceptar permisos de archivo, sin embargo se monta con el noexec bandera, como se ha dicho en un comentario. Esto impide que se ejecuten los archivos.

Solución:

  1. Copiar el net-snmp-5.7.2 al directorio /data/local/tmp como directorio root.
  2. Establecer el configure para que sea ejecutable ejecutando chmod 0777 /data/local/tmp/net-snmp-5.7.2/configure como root.
  3. Ahora debería poder ejecutar el configure script escribiendo /data/local/tmp/net-snmp-5.7.2/configure y pulsando enter.

Nota

Todo esto se debe hacer como el usuario Root :)

0 votos

Me sale: /system/bin/sh: /data/local.../filename: No such file or directory.

10voto

Izzy Puntos 45544

Como se explica en los comentarios y La respuesta de Liam Esto se debe a la noexec utilizado por el sistema al montar la tarjeta sd. Si su configure es un script (como suele serlo), aún puedes engañarlo para que se ejecute:

cd al directorio como se ha descrito anteriormente, y luego ejecutar sh configure .

sh es el intérprete de Shell, y ese binario debe estar ubicado en /system/bin , donde los archivos son ejecutable. Pasando su script como primer argumento, esto abrirá un nuevo proceso de shell que ejecuta su configure script.

0 votos

Gracias por su respuesta. El sh configure hace el truco.

1 votos

Gracias por la confirmación. Y me alegro de haber podido ayudar. Yo uso este truco en máquinas Linux/Unix de vez en cuando :)

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X