Mi teléfono es un Galaxy S3, no rooteado. Tengo instalados "ES File Explorer" y "Terminal Emulator".
Descargué una versión de Android de 'wget', con la intención de ejecutarlo desde la aplicación Terminal Emulator. El archivo actualmente existe en /storage/sdcard0/Download
(que es una partición interna, no una tarjeta SD física) como:
-rw-rw-r-- root sdcard_rw 241974 2016-03-11 wget
./wget
da Permiso denegado. chmod o+x wget
da "Modo incorrecto"; esto aparentemente es porque el chmod
de Android solo acepta dígitos octales; chmod 665 wget
da "Operación no permitida". Puedo copiar el archivo con "cp", por lo que el sistema de archivos es escribible.
Otras preguntas y respuestas aquí dan varias posibles razones por las que chmod
falla en Android. Una es tarjetas SD formateadas con FAT que no admiten bits de permiso; pero como mencioné, esto no es en realidad una tarjeta SD. Otra es el sistema de archivos montado con "noexec". Mi conocimiento de Android/Linux es demasiado limitado para verificar tales cosas.
¿Android me está bloqueando la ejecución de wget por diseño? ¿Hay alguna manera de ejecutarlo sin rootear mi teléfono?
0 votos
Utilice el comando
sh
antes de invocar su script. Vea aquí: Permisos de scripts de Shell para aficionados a Android1 votos
@Chungzuwalla: Si quieres el comando wget sin tener que rootear, es posible que te interese esta versión de busybox de wget.
0 votos
Gracias @AaronGillion, intenté usar
sh
pero como wget es un binario, solo muestra un error de sintaxis. Parece que lo que @MatijaNalis escribió abajo sobre esto es correcto.0 votos
Cópialo en la carpeta de tu aplicación de terminal y luego podrás ejecutarlo.