Terminal "Permiso denegado": se necesita más información sobre el mensaje de error

Estoy tratando de ejecutar un ejecutable desde la terminal de Android con permisos de root, pero constantemente recibo el siguiente error:

[ExecutableName] : permission denied

Se me ha confirmado que he iniciado sesión como root. Veo el signo # antes de mi aviso y puedo ejecutar comandos raíz como chmod. Vi que la guía de shell de Android dice

"El shell incorporado tiene un manejo de errores muy limitado. Cuando escribe un nombre de comando > incorrectamente, dirá "permiso denegado", aunque el problema real es que no pudo encontrar el comando:"

¿Alguien sabe cómo obtener más información sobre este error de "permiso denegado"?

¿Puedes ejecutar ls -ldesde el directorio en el que se encuentra el ejecutable y publicarlo?
Esto es lo que ejecuté, solo quiero más información sobre lo que sucede cuando lo ejecuto.---xrwxr-x 1 system sdcard_r 76 Oct 3 2007 doukutsu
Hm, sdcard_res interesante. ¿Está el binario en su tarjeta SD? Sé que algunos dispositivos (pero posiblemente no todos) simplemente no le permitirán ejecutar un ejecutable si está en el almacenamiento externo. Podría intentar moverlo a un /data/locallugar similar y ver si eso ayuda. Sin embargo, no sé si hay una manera de simplemente obtener más información del shell sobre por qué está recibiendo permission denied.
¿Tienes SuperUser instalado? ¿Qué dice el registro?
@MatthewRead Dice "emulador de terminal permitido"
@eldarerathis Eso me lleva a algunos mensajes de error diferentes al menos que creo que es prometedor. Ahora obtengo ./doukutsu no encontrado o ejecutando su contenedor asociado, ./doukutsu.bin: 1 Error de sintaxis: palabra inesperada (esperando ")"). Creo que este archivo puede tener algunos errores, pero creo que para el propósito de esta publicación me solucionó el error, gracias.
Obtuve lo esperado xxx: not foundtanto en el shell normal como en el root en mi Samsung Spica; ¿Cuál es tu modelo de teléfono?

Respuestas (1)

Como eldarerathis ya se mencionó: en muchos (si no en la mayoría) de los dispositivos que admiten una tarjeta SD, esta tarjeta está montada con la noexecopción, lo que significa, como sugiere el nombre: "no ejecutar desde aquí", es decir, no puede ejecutar nada desde la tarjeta SD.

Nuevamente, eldarerathis ya mencionó una solución: pruebe con un almacenamiento diferente. Tienes el poder, tu dispositivo está rooteado.

Un segundo enfoque sería volver a montar la tarjeta SD sin la noexecopción. Pero hay una buena razón por la que noexecse usa aquí; al menos ofrece un nivel adicional de seguridad. Entonces, antes de usar este enfoque, debe investigar un poco si podría desencadenar efectos secundarios no deseados.

+1 de mí: esa es la única razón por la cual las tarjetas SD tienen el bit ejecutable bloqueado en el nivel del sistema de archivos, para evitar que las aplicaciones maliciosas causen estragos desde otro lugar fuera de la ROM, es decir, la tarjeta SD.