2 votes

Comment rendre les dossiers montés par bind (mount -o bind) visibles pour les utilisateurs non-Root ?

Je veux lier un dossier de données d'application dans /data/data/... à un sous-dossier utilisateur afin de synchroniser automatiquement le contenu à des fins de sauvegarde. En tant que Root, j'utilise la commande suivante :

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

La commande semble fonctionner et je peux accéder aux fichiers du dossier monté tant que je suis Root. Cependant, dès que je quitte Root, les fichiers deviennent invisibles et le dossier monté par bind est vide.

Comment puis-je rendre les fichiers visibles pour les utilisateurs non-Root afin que mon application de synchronisation puisse accéder aux fichiers pour la sauvegarde ?

2voto

Irfan Latif Points 16863

Afin d'avoir une propriété de fichier et des permissions différentes pour chaque application dans l'espace de travail de l'entreprise, il est nécessaire d'avoir des droits d'accès différents. /sdcard Depuis Android 6, toutes les applications sont exécutées dans un fichier de type espace de nom de montage isolé . /storage/emulated est monté pour chaque application avec propagation des montages privés / esclaves à un autre VIEW :

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

Cela dépend si l'application a READ_EXTERNAL_STORAGE o WRITE_EXTERNAL_STORAGE permission accordée ou non. Pour plus de détails, voir Qu'est-ce que l'UID "u#_everybody" ?

Montage direct sur /storage/emulated n'apparaîtra pas dans les espaces de noms de montage des applications, à moins que vous ne saisissiez explicitement l'espace de noms de montage de chaque application. Il en va de même si vous effectuez un montage à partir d'un espace de noms de montage isolé d'une application, comme mentionné par @ Izzy dans le commentaire. Voir La partition est démontée automatiquement dans Android Oreo. .

Vous devez donc effectuer un montage à partir de l'espace de noms de montage Root vers l'un des VIEWs ci-dessus, afin que le montage soit propagé aux espaces de noms de montage de toutes les applications.

Pour plus de détails, voir Comment lier le montage d'un dossier dans /sdcard avec les permissions correctes ?

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X