termux-setup-storage
solo concede android.permission.WRITE_EXTERNAL_STORAGE que permite a la aplicación acceder a la tarjeta SD interna, es decir, /sdcard
.
El init de Android crea rootfs /
con permisos 0:0
(uid:gid) y 0755
(modo). Por lo tanto, el directorio root debería ser accesible para cualquier usuario no root.
Sin embargo, SELinux juega su papel restringiendo el acceso no autorizado a rootfs. Puedes ver tales rechazos de la política mediante:
dmesg | grep 'avc: denied'
* Lo más probable es que SELinux también niegue este comando si se ejecuta desde una aplicación no root.
Para ver todas las reglas de SEPolicy, se puede utilizar la herramienta sesearch
de setools-android.
Para configurar SELinux en modo permisivo:
echo 0 >/sys/fs/selinux/enforce
# o
setenforce 0
O añadir una excepción a la política de SELinux:
supolicy --live 'allow untrusted_app rootfs dir { read open }'
* La herramienta supolicy
es proporcionada por soluciones de root como Magisk, SuperSu
Esta política permite leer rootfs pero aún así puedes obtener errores porque la lectura de atributos de archivos/directorios bajo rootfs no está permitida por la política.
Ambas soluciones necesitan privilegios de root y no son persistentes, es decir, necesitan ser configuradas después de reiniciar.
Por lo tanto, si estás ejecutando una versión de producción de Android sin rootear (con SELinux obligatorio), no podrás leer rootfs /
.
1 votos
En el tema de Linux, "root" se refiere a la root de la jerarquía de archivos
/
, no a la "root del almacenamiento de Android" que suele ser/storage/emulated/0
. ¿A cuál te refieres?0 votos
Root como en /. No mencioné el almacenamiento de Android. El script hace varias cosas como configurar el almacenamiento de Android, pero también da permiso para ver la root en Andy y me refiero a la root real, así que me pregunto qué salió mal en el teléfono.
0 votos
Es posible que quieras proporcionar más información, como la versión de Android.
1 votos
@chrips Ten en cuenta que
termux-setup-storage
no tiene efecto en/
. Además, puedo hacerls /
como usuario no root, por lo que tu situación probablemente dependa de la configuración de permisos de/
en tu teléfono, especialmente cuando Andy te permite ver el contenido del directorio.0 votos
Buscaré una respuesta y cerraré esto si no puedo encontrar una solución. Es una pregunta bastante general ahora.
0 votos
Andy tiene por defecto el acceso de root, pero los dispositivos Android reales no lo tienen. AFAIK, Termux también no tiene acceso de root de usuario por defecto, y si tu teléfono no está rooteado, no será capaz de acceder gran parte del sistema de archivos fuera de Termux y la tarjeta SD de todos modos, pero las respuestas a esta pregunta pueden ayudar en tu situación si tu dispositivo físico está o puede ser rooteado.
0 votos
Gracias a todos por esta gran cantidad de información. ¡Ahora puedo responder mi propia pregunta!