2 votes

Pourquoi WhatsApp ne peut-il pas écrire sur les montages de bind ?

J'ai déplacé toutes les données de WhatsApp vers /mnt/media_rw/6333-6461/WhatsApp, où 6333-6461 est ma carte SD externe. J'ai ouvert WhatsApp pour constater que je ne pouvais pas ouvrir les données déjà téléchargées. Cela est prévisible.

Ensuite, j'ai exécuté les commandes suivantes dans Termux :

$ su
# mount -o bind /mnt/runtime/write/6333-6461/WhatsApp /mnt/runtime/write/emulated/0/WhatsApp

Quand j'ai ouvert WhatsApp, j'ai pu voir toutes les données que j'avais précédemment téléchargées. Mais maintenant je ne peux ni envoyer ni recevoir quoi que ce soit - tous les envois échouent, l'accès à la caméra depuis WhatsApp échoue et les téléchargements échouent.

Apparemment, WhatsApp n'arrive pas à écrire sur le montage bind. Une solution au problème ?

Mon téléphone, un Samsung Galaxy On7, Android 6.0.1, est rooté avec Magisk 20.1 et fonctionne avec la ROM stock.

0 votes

Quels sont les autorisations du dossier WhatsApp?

0 votes

Monter -o bind /storage/6333-6461/WhatsApp /storage/emulated/0/6333-6461/WhatsApp

0 votes

@alecxs J'ai essayé cela; WhatsApp ne peut même pas lire les données précédemment téléchargées, encore moins écrire des données.

2voto

Irfan Latif Points 16863

Pourquoi WhatsApp ne peut-il pas écrire dans les montages bind ?

# mount -o bind /mnt/runtime/write/6333-6461/WhatsApp /mnt/runtime/write/emulated/0/WhatsApp

Les applications ne peuvent pas accéder directement à /mnt/runtime/write/6333-6461 ou /mnt/runtime/write/emulated/0/ car /mnt/runtime n'est traversable que par root. Les applications accèdent à /storage/emulated/0 ou /sdcard (lien symbolique vers le premier) qui est bindé à /mnt/runtime/write/emulated/0/ pour les applications avec la permission WRITE_EXTERNAL_STORAGE. La carte SD externe est accessible à /storage/6333-6461 de la même manière.

Lorsque /mnt/runtime/write/6333-6461/WhatsApp est bindé à /mnt/runtime/write/emulated/0/WhatsApp, WhatsApp essaiera en réalité d'écrire sur la carte SD externe ce qui n'est pas autorisé, du moins depuis Android 4.4. Cela est contrôlé en utilisant les permissions READ|WRITE_EXTERNAL_STORAGE / READ|WRITE_MEDIA_STORAGE, le GID everyone (9997) / media_rw (1023) et les espaces de noms de montage. Voir les détails dans Comment déplacer des fichiers sur une carte SD externe ?.

Une solution au problème ?

Il existe quelques solutions de contournement pour définir les permissions requises en utilisant FUSE ou sdcardfs lors du montage bind des répertoires externes. Pour plus de détails, voir Comment monter un dossier à l'intérieur de /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