En todos los sistemas operativos basados en el kernel de Linux - como Android - es posible establecer permisos en los archivos (incluyendo directorios) siempre que el sistema de archivos soporte los permisos UNIX (uid, gid, mode). Ejemplos comunes de tales sistemas de archivos son ext4
y f2fs
.
Sin embargo, la parte interna de Android (confusamente llamada externo ) almacenamiento al que se puede acceder mediante aplicaciones instaladas en /sdcard
no es un sistema de archivos real sino virtual / emulado que expone /data/media
(que es un verdadero sistema de archivos) a través de sdcardfs
. sdcardfs y su predecesor FUSE
exponer el sistema de archivos emulados con un conjunto fijo de uid, gid y máscara (modo). Así que los comandos chmod
y chown
no tienen ningún impacto, ya sea que se ejecuten a través de CLI (adb shell o emulador de terminal) o GUI (explorador de archivos).
Es posible cambiar los bits de permiso de un archivo en el sistema de archivos real subyacente, pero accediendo /data/media
requiere acceso a root porque sólo UID/GID 1023
( aid_media_rw ) tiene acceso de lectura al directorio. Y aún así los permisos seguirán siendo los mismos cuando se vea desde la vista emulada /sdcard
.
Así que no puedes cambiar los permisos de los archivos creados por el usuario en Android, con o sin Root.
Más lecturas:
Relacionado: