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, traté de 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 /almacenamiento/emulado/ 0
Así que 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 la lectura y escritura, pero necesito saber cuál de los dos solía ser y cómo arreglar las cosas, porque poder acceder al contenido de la tarjeta SD interna es algo crítico.
No, mi dispositivo no está rooteado, ni planeo rootearlo, por lo que no puedo dar ninguna información que tendría que rootear el dispositivo para obtener. Sin embargo, no estar rooteado nunca en el pasado me impidió tener acceso de lectura al directorio / sdcard, por lo que esto es nuevo (y perturbador).
Por supuesto, han pasado algunos meses desde que intenté hacer esto, pero esta nueva limitación de Android dificulta seriamente la usabilidad de termux y quién sabe qué más, ya que necesito poder tener acceso a los archivos que son en mi tarjeta SD. (Aún puedo hacer mucho, incluso si no todo, incluso sin permisos de escritura, pero estoy prácticamente atrapado en el agua si no puedo obtener permisos de lectura, como es el caso actualmente).
Seguir la wiki de Termux para ejecutarlo termux-setup-storage
me lo arregló, como lo sugirió fornwall .
luego reinicie Termux.
Las versiones más nuevas de Android requieren que las aplicaciones soliciten permiso durante el tiempo de ejecución. Es posible que ya hayas notado esto. 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, debido a que Termux no se ha actualizado para solicitar estos permisos, intenta realizar la tarea de todos modos y arroja un error como resultado. Desafortunadamente, los desarrolladores tienen que arreglar esto ellos mismos. Afortunadamente, Android le brinda formas de administrar los permisos de la aplicación manualmente. Hasta que los desarrolladores actualicen Termux en consecuencia, esta es probablemente la única forma.
Hay varios métodos para llegar a esta página. Debido a que diferentes teléfonos pueden tener diferentes comportamientos, incluí todos los que conozco.
En la lista de aplicaciones, Termux debería ser la primera. Toca y mantén presionado su ícono.
En algunos teléfonos, ya estarás en la página de información. En otros teléfonos, en cambio, verá el cambio de la caja 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 brindarle un menú contextual con una opción de "Información de la aplicación". En ambos casos, toque estos.
Pruebe uno de los siguientes:
Ahora debería estar en una página con el nombre, el ícono y el número de versión de Termux con dos botones etiquetados como "Desinstalar" y "Forzar detención". debajo debería haber varias otras opciones.
Ahora le ha dado acceso a Termux 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.
es julio de 2017 y tuve el mismo problema, lo busqué en Google y llegué aquí. El comentario de Matthew Read señaló el camino a la solución, pero no hay una respuesta que lo explique claramente, así que aquí está el tl; dr:
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
mateo leer
READ_EXTERNAL_STORAGE
permiso, por lo que debería tener acceso.usuario3080003
Andrés
Fornwall