2 votos

¿Cómo hacer que las carpetas montadas en bind (mount -o bind) sean visibles para los usuarios que no son root?

Quiero montar-vincular una carpeta de datos de la aplicación en /data/data/... a una subcarpeta de usuario para sincronizar automáticamente el contenido con fines de copia de seguridad. Como Root uso el siguiente comando:

mount -o bind /data/data/org.blabla.app/database/ /storage/emulated/0/blabla_database

El comando parece funcionar y puedo acceder a los archivos de la carpeta montada mientras sea Root. Sin embargo, tan pronto como salgo de Root, los archivos se vuelven invisibles y la carpeta montada bind está vacía.

¿Cómo puedo hacer que los archivos sean visibles para los usuarios que no son root para que mi aplicación de sincronización pueda acceder a los archivos para hacer una copia de seguridad?

2voto

Jack Wade Puntos 231

Para tener diferentes propiedades y permisos de archivos para cada aplicación en /sdcard Desde Android 6 todas las aplicaciones se ejecutan en un espacio de nombres de montaje aislado . /storage/emulated está montado en bind para cada aplicación con propagación del montaje privado/esclavo a una VISTA diferente:

/mnt/runtime/default/emulated
/mnt/runtime/read/emulated
/mnt/runtime/write/emulated

Depende de si la aplicación tiene READ_EXTERNAL_STORAGE o WRITE_EXTERNAL_STORAGE permiso concedido o no. Para más detalles, consulte ¿Qué es el UID "u#_everybody"?

Montaje directo en /storage/emulated no aparecerá en los espacios de nombres de montaje de las aplicaciones a menos que introduzcas explícitamente el espacio de nombres de montaje de cada aplicación. Lo mismo ocurre si montas desde un espacio de nombres de montaje aislado de alguna aplicación, como menciona @ Izzy en el comentario. Ver La partición se desmonta automáticamente en Android Oreo .

Así que necesitas montar desde el espacio de nombres de montaje Root a uno de los VIEWs anteriores, para que ese montaje se propague a todos los espacios de nombres de montaje de las aplicaciones.

Para más detalles, consulte ¿Cómo se puede montar una carpeta dentro de /sdcard con los permisos correctos?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X