Donc, j'ai enraciné mon téléphone (GT-i9505 avec Android 5.0.1) et je voudrais déplacer mon dossier WhatsApp vers ma carte SD externe pour économiser 3 Go sur le stockage interne. Voici ce que j'ai essayé jusqu'à présent.
EDIT : solution trouvée
Donc, après tout, l'option 2 semblait être la bonne, mais elle nécessitait quelques ajustements pour fonctionner. Comme suggéré par Irfan Latif Le problème est que le point de montage doit être créé dans un espace de nom de montage global, sinon les autres applications ne le verront pas :
su -mm
mount -o bind /data/sdext2/AppData/WhatsAppMedia /sdcard/WhatsApp/Media
Mais cela peut ne pas être suffisant ! Cela ne fonctionnait toujours pas jusqu'à ce que je m'assure que l'espace de nom de Root était global. Pour cela, je ne connais pas de méthode universelle, mais ce qui a fonctionné pour moi, c'est d'aller dans les paramètres de l'application SuperSU et de décocher l'option mount namespace separation
.
Cela dépend vraiment de l'application SU que vous avez installée.
Option 1 : lien symbolique
La première chose à laquelle j'ai pensé est de faire un lien symbolique, c'est donc la commande que j'ai utilisée :
ln -s "/data/sdext2/AppData/WhatsAppMedia" "/sdcard/WhatsApp/Media"
J'avais déjà créé une deuxième partition sur ma carte SD externe (ext4) qui est montée dans /data/sdext2
Cependant, ce retour operation not permitted
en utilisant l'émulateur de terminal (oui j'ai fait su
) et une erreur avec toutes les applications de gestion de fichiers racine que j'ai essayées.
Après quelques recherches, j'ai compris que pour une raison quelconque, bien que /storage/emulator/0
est dans une partition ext, elle est traitée différemment et ne supporte pas les liens symboliques à l'intérieur (corrigez-moi si je me trompe).
Alors, passons à la chose suivante
Option 2 : monter
Según cette question la commande suivante devrait monter le dossier de la carte SD externe dans un autre dossier de la carte SD interne, sans avoir besoin d'un lien symbolique.
mount -o bind "/data/sdext2/AppData/WhatsAppMedia" "/sdcard/WhatsApp/Media"
Cependant, alors que l'exécution de la commande ne renvoie aucune erreur le dossier dans /sdcard/WhatsApp/Media
est toujours vide, donc je ne sais pas vraiment comment gérer cela.
Option 3 : lien symbolique dans /data/media/
J'ai suivi les instructions sur ce poste et fait le lien symbolique dans /data/media/0
au lieu du stockage, donc en utilisant cette commande :
ln -s "/data/sdext2/AppData/WhatsAppMedia" "/data/media/0/WhatsApp/Media"
Cette fois, le lien est créé ! Cependant...
Bien qu'un ls
sur /data/media/0/WhatsApp/Media
a révélé que la liaison a réussi, cd /sdcard/WhatsApp/Media
renvoie un très irritant no such file or directory
et cela est confirmé par l'explorateur de fichiers qui montre un dossier vide avec une icône de fichier vide.
Mes réflexions
Tout d'abord, je viens de découvrir que je déteste vraiment Android. Maintenant, énoncé cela, voici ce que je pense pourrait aider à faire :
-
en déplaçant mes fichiers de carte SD ailleurs : si le reste du système de fichiers Root supporte les liens symboliques (ce qui semble être le cas), je pourrais même déplacer le dossier
/storage/emulated/0
ailleurs et faire un nouveau lien vers lui, mais je ne sais pas si cela résoudrait le problème
C'est tout pour le moment, je mettrai à jour avec d'autres options quand j'y penserai...