Je veux exécuter la commande suivante en tant que Root dans l'Android Emulateur de terminal .
mount -o bind /storage/extSdCard /data/media
Je l'ai testé sur un Samsung Galaxy S3 exécutant CyanogenMod 11 et il fonctionne comme prévu. Lorsque j'entre /data/media
en utilisant une autre application comme ES File Explorer j'accède au contenu de la carte SD externe au lieu de la mémoire interne.
Le problème est que cela ne fonctionne pas sur un autre S3 que j'ai, celui-ci fonctionnant sous la ROM TouchWiz version 4.3 et enraciné avec CF-Auto-Root . J'ai également essayé d'utiliser Adam Noyau personnalisé et ça ne marche pas non plus.
Lorsque je lance la commande dans le terminal et que je tape ensuite ls /data/media
en tant que Root, il affiche le contenu de la carte SD externe, mais si je lance un autre terminal en tant qu'utilisateur normal (non Root) et tape la même commande, j'obtiens le contenu de la mémoire interne. La même chose se produit si j'essaie d'accéder à /data/media
en utilisant ES File Explorer gestionnaire de fichiers
Il semble donc que les commandes Root n'ont d'effet que pour l'utilisateur Root, et non pour les autres utilisateurs du système. Quelle pourrait être la cause de ce comportement ?
UPDATE : OK, ma faute, je ne me suis pas exprimé correctement. Il est vrai qu'un utilisateur normal ne peut pas accéder à /data/media
. Mais /data/media
est l'emplacement réel des fichiers dans la mémoire interne. Il existe de nombreux chemins par lesquels Android met cette mémoire à la disposition des utilisateurs normaux, par exemple /sdcard
o /storage/sdcard0
qui indiquent tous deux /data/media/0
par le biais d'un système de fichiers FUSE.
Ce que je veux dire, c'est que si je crée un dossier nommé 0
sur le disque dur externe et ensuite lier /storage/extSdCard
a /data/media
lorsque le système essaie d'accéder /sdcard
o /storage/sdcard0
il récupérera le contenu de /storage/extSdCard/0
comme /data/media
ne pointe plus vers la mémoire interne, mais vers le disque dur externe.
Cela fonctionne comme prévu sur CM11 lorsque je fonctionne en tant que Root.
mount -o bind /storage/extSdCard /data/media
Alors si j'accède à /sdcard
sur le terminal, que ce soit en tant que Root ou en tant qu'utilisateur normal, j'arrive au contenu du fichier /storage/extSdCard/0
. La même chose se produit si j'utilise ES File Explorer en mode normal ou Root.
Mais quand je fais la même chose sur le firmware stock 4.3 rooté, cela ne fonctionne pas. Seul Root sur le terminal peut voir les changements, l'utilisateur normal sur le terminal et l'utilisateur normal et Root sur l'explorateur de fichiers ES ne verront aucun changement.