Usando el programa de emulación de terminal termux ( https://termux.com ), escribo el siguiente comando:
ls /sdcard
Obtuve el siguiente error:
ls: can't open '/sdcard': Permission denied
Al darme cuenta de que el directorio / sdcard en Android es un enlace simbólico, intenté encontrar la ubicación del directorio real, aprendiendo que no es solo un enlace simbólico, sino un enlace simbólico a otro enlace simbólico, y el directorio real es / storage / emulated / 0 0
Entonces, finalmente, escribí:
ls -ld /storage/emulated/0
El resultado que obtuve fue:
drwxrwx--x 63 root sdcard_r 4096 Aug 10 12:04 /storage/emulated/0
En resumen, no sé si termux solía ejecutarse con los permisos del grupo sdcard_r o si los permisos o solían permitir lectura-escritura, pero necesito saber cuál de los dos solía ser y cómo arreglar las cosas, porque poder acceder a los contenidos de la tarjeta SD interna es algo crítico.
No, mi dispositivo no está rooteado, ni planeo rootearlo, por lo que no puedo proporcionar ninguna información para obtenerlo. Sin embargo, no haber sido rooteado nunca en el pasado me impidió tener acceso de lectura al directorio / sdcard, por lo que esto es nuevo (e inquietante).
Por supuesto, han pasado unos meses desde que intenté hacer esto anteriormente, pero esta nueva limitación de Android obstaculiza seriamente la usabilidad de termux y quién sabe qué más, ya que necesito tener acceso a archivos que son en mi tarjeta SD. (Todavía puedo hacer mucho, incluso si no todo, incluso sin permisos de escritura, pero estoy bastante atrapado en el agua si no puedo obtener permisos de lectura, como es el caso actualmente).
fuente
READ_EXTERNAL_STORAGE
permiso, por lo que debería tener acceso.Respuestas:
Siguiendo el wiki de Termux para ejecutarlo, lo
termux-setup-storage
arreglé para mí, como lo sugiere fornwall .luego reinicie Termux.
fuente
Las versiones más recientes de Android requieren que las aplicaciones soliciten permiso durante el tiempo de ejecución. Puede que ya lo hayas notado. Un ejemplo es Chrome que solicita el permiso de Almacenamiento cuando intenta descargar algo por primera vez. Para Termux, esto es un problema. Los permisos predeterminados son "no permitidos", por lo que cuando Termux necesita un permiso para una tarea, porque Termux no se ha actualizado para solicitar estos permisos, en su lugar intenta realizar la tarea de todos modos y arroja un error como resultado. Desafortunadamente, los desarrolladores tienen que arreglar esto por sí mismos. Afortunadamente, Android te ofrece formas de administrar los permisos de la aplicación manualmente. Hasta que los desarrolladores actualicen Termux en consecuencia, esta es probablemente la única forma.
Paso 1: vaya a la página de información de la aplicación de Termux
Existen múltiples métodos para llegar a esta página. Debido a que diferentes teléfonos pueden tener diferentes comportamientos, incluí todos los que conozco.
Método 1: usar el menú multitarea
En la lista de aplicaciones, Termux debería ser el primero. Toque y mantenga presionado su icono.
En algunos teléfonos, ya estará en la página de información. En otros teléfonos, verás el cambio de la aplicación de Termux en la parte superior, con un ícono de información (ℹ) que aparece en alguna parte. Otros teléfonos pueden ofrecerle un menú contextual con la opción "Información de la aplicación". En ambos casos, toca estos.
Método 2: usar el panel de notificaciones
Pruebe uno de los siguientes:
Método 3: usar el Administrador de aplicaciones
Paso 2: cambiar los permisos
Ahora debería estar en una página con el nombre, el icono y el número de versión de Termux con dos botones etiquetados "Desinstalar" y "Forzar detención". a continuación debería haber varias otras opciones.
Probar el cambio
Ahora le ha dado a Termux acceso a su almacenamiento. Puede probar esto con el siguiente comando:
ls /sdcard/
Si no obtiene un error de permiso denegado, ¡funcionó! No debería necesitar hacer esto nuevamente a menos que reinstale Termux.
fuente
es julio de 2017 y tuve el mismo problema, busqué en Google y llegué aquí. El comentario de Matthew Read señaló el camino hacia la solución, pero no hay una respuesta que lo explique claramente, así que aquí está el tl; dr de la misma:
Termux no solicita permiso del sistema de archivos en la instalación, por lo que debe activarlo a través de Configuración => Aplicaciones => Termux => Permisos
fuente