Je essaie de monter le répertoire media WhatsApp de la carte SD portable vers la "SD" interne, car le stockage interne du téléphone est très limité.
Mon téléphone : Sony Xperia XZ1 Compact (stockage interne de 32 Go, carte SD externe de 128 Go), Pie 9.0, image stock, bootloader déverrouillé, dm-verity et SElinux activé. Magisk 20.1 (mode de namespace de montage = Namespace global). bindfs v.1.14.2.
J'ai lu et essayé ce qui est montré dans ces fils de discussion :
- Comment lier les dossiers "data" et "obb" de la carte SD externe dans "/sdcard/Android"?
- Comment puis-je créer un lien symbolique (ou équivalent) à l'intérieur de /storage/emulated/0?
- Comment monter un dossier à l'intérieur de /sdcard avec les autorisations correctes?
- Pourquoi WhatsApp ne peut pas écrire sur les montages liés?
Sortie de /proc/filesystems
nodev sysfs
nodev rootfs
nodev ramfs
nodev bdev
nodev proc
nodev cpuset
nodev cgroup
nodev cgroup2
nodev tmpfs
nodev configfs
nodev debugfs
nodev tracefs
nodev sockfs
nodev pipefs
nodev devpts
ext3
ext2
ext4
vfat
msdos
nodev ecryptfs
nodev sdcardfs
fuseblk
nodev fuse
nodev fusectl
f2fs
nodev pstore
nodev selinuxfs
texfat
nodev functionfs
Les dernières lignes pertinentes de la sortie de mount -r ....
/data/media sur /mnt/runtime/default/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiutilisateur,masque=6,dérivé_gid,default_normal)
/data/media sur /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiutilisateur,masque=6,dérivé_gid,default_normal)
/data/media sur /mnt/runtime/read/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiutilisateur,masque=23,dérivé_gid,default_normal)
/data/media sur /mnt/runtime/write/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiutilisateur,masque=7,dérivé_gid,default_normal)
/dev/block/sda60 sur /mnt/qns type ext4 (rw,seclabel,nosuid,nodev,noexec,noatime,discard,data=ordered)
/dev/block/vold/public:179,1 sur /mnt/media_rw/6534-3933 type texfat (rw,dirsync,nosuid,nodev,noexec,noatime,uid=1023,gid=1023,umask=0007,allow_utime=0020,utf8,min_prealloc_size=64k,max_prealloc_size=121910k,writeback_boundary=4M,readahead=4M,fail_safe,discard,hidden=show,errors=continue)
/mnt/media_rw/6534-3933 sur /mnt/runtime/default/6534-3933 type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,masque=6,sans_cache)
/mnt/media_rw/6534-3933 sur /storage/6534-3933 type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,masque=6,sans_cache)
/mnt/media_rw/6534-3933 sur /mnt/runtime/read/6534-3933 type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,masque=18,sans_cache)
/mnt/media_rw/6534-3933 sur /mnt/runtime/write/6534-3933 type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,masque=18,sans_cache)
La sortie de la commande proposée :
bindfs -u u0_a195 -g 9997 -p a-rwx,ug+rw,ug+X /mnt/media_rw/6534-3933/WhatsApp/Media /mnt/runtime/write/emulated/0/WhatsApp/Media
Me donne l'erreur suivante :
fuse: le point de montage n'est pas vide
fuse: si vous êtes sûr que c'est sans danger, utilisez l'option de montage 'nonempty'
J'ajoute alors la chaîne nonempty à la commande, et ensuite le répertoire de la carte SD externe est monté comme "interne".
Les nouvelles lignes de mount -r se lisent maintenant :
/mnt/media_rw/6534-3933/WhatsApp/Media sur /mnt/runtime/write/emulated/0/WhatsApp/Media type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
/mnt/media_rw/6534-3933/WhatsApp/Media sur /storage/emulated/0/WhatsApp/Media type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
/mnt/media_rw/6534-3933/WhatsApp/Media sur /mnt/runtime/default/emulated/0/WhatsApp/Media type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
/mnt/media_rw/6534-3933/WhatsApp/Media sur /mnt/runtime/read/emulated/0/WhatsApp/Media type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
WhatsApp lit correctement tous les fichiers, cependant je ne peux pas télécharger quoi que ce soit de nouveau sur le lecteur. C'est frustrant au plus haut point, car j'en suis arrivé à ce stade auparavant. Je ne peux tout simplement pas trouver comment faire en sorte que WhatsApp puisse ÉCRIRE dans le répertoire.
J'ai utilisé des applications comme apps2sd, ts-bind, fbind, des options de montage. Tout ce qui existe. Je ne parviens jamais à atteindre un stade où WhatsApp peut écrire sur la carte SD externe, même s'il est "trompé" pour lire depuis la carte SD externe.
La seule solution qui fonctionne, mais qui n'est pas viable, est d'installer xposed expérimental, d'installer l'ancien module xinternalSD, et le module magisk "ExSDCard Access Enabler". Ensuite, WhatsApp fonctionne parfaitement, mais je crois que c'est très instable pour le reste de mon système et de mon téléphone. Et j'aimerais vraiment avoir une solution plus propre à ce problème, comme celle que vous proposez.
Veuillez m'aider avec cette grande grande migraine.
Dernière note, j'ai également essayé la commande telle qu'elle est donnée dans votre autre publication :
bindfs -o nosuid,nodev,noexec,noatime,context=u:object_r:sdcardfs:s0 -u 0 -g 9997 -p a-rwx,ug+rw,ugo+X --create-with-perms=a-rwx,ug+rw,ugo+X --xattr-none --chown-ignore --chgrp-ignore --chmod-ignore /mnt/media_rw/6534-3933/WhatsApp/Media /mnt/runtime/write/emulated/0/WhatsApp/Media
Même résultat après ajout de l'option nonempty, WhatsApp peut lire depuis la carte SD externe, mais ne peut pas écrire dessus.
0 votes
Dupliquer de Comment monter en liant un dossier à l'intérieur de /sdcard avec les autorisations correctes?
0 votes
Salut @Irfan, Tu sembles être la personne la plus compétente sur ce problème. J'ai suivi à la lettre tes guides, mais ils ne semblent pas fonctionner pour moi. Si tu vois ce que j'ai fait, ça devrait être bon, non? Je n'ai pas été autorisé à commenter sur les autres fils de discussion cependant. De plus, quelle différence cela ferait-il, que ce soit le dossier complet WhatsApp ou simplement le dossier des médias? Le résultat devrait être le même non?
0 votes
Merci beaucoup pour votre assistance active et votre aide. La raison pour laquelle je ne crois pas que ce soit le cas comme vous le suggérez, c'est que si j'ouvre la carte SD interne et que je navigue jusqu'au dossier que j'ai monté à partir de la carte SD externe/portable, je peux lire le dossier, mais je ne peux pas écrire dedans. Cela se fait par l'intermédiaire d'un explorateur de fichiers tiers sur Android (x-plore). Cela renforce mes soupçons qu'il y a quelque chose de fondamentalement incorrect. Pourrait-il s'agir de quelque chose avec SELINUX étant défini sur appliqué. Je crois que quelqu'un l'a suggéré sur le forum xda.
0 votes
Correct. J'ai essayé votre suggestion de monter tout le dossier WhatsApp et non pas le dossier WhatsApp/Media. Pas de chance. J'ai également essayé de monter via la commande sdcarsfs donnée dans votre autre message : bindfs -o nosuid,nodev,noexec,noatime,context=u:object_r:sdcardfs:s0 -u 0 -g 9997 -p a-rwx,ug+rw,ugo+X --create-with-perms=a-rwx,ug+rw,ugo+X --xattr-none --chown-ignore --chgrp-ignore --chmod-ignore /mnt/media_rw/6534-3933/WhatsApp /mnt/runtime/write/emulated/0/WhatsApp J'ai donc essayé à la fois le montage sdcardfs et le montage vfat.
0 votes
Aussi puis-je vous rappeler que le fichier d'exploration ne peut que lire le dossier monté, mais ne peut pas y écrire. Se pourrait-il que le contexte ne soit pas le même pour tous les téléphones Android ? Par exemple : context=u:object_r:sdcardfs:s0 devrait être quelque chose d'autre ?
0 votes
Bien sûr. J'ai exactement ce que vous avez demandé. pastebin.com/gZm5LPd3