Confus par les nombreux emplacements de la carte virtuelle / sdcard /


46

Certains appareils (comme mon Nexus 4) ne disposent pas d'un slot externe pour une carte SD. Au lieu de cela, il existe un dossier racine appelé /sdcard/traité de la même manière. Mais je trouve aussi d'autres chemins qui pointent tous vers les mêmes fichiers - il doit y avoir des redirections en cours (je pense que cela s'appelle des liens symboliques sous Linux).

Tous ces chemins contiennent les mêmes fichiers:

/sdcard/
/storage/sdcard0/
/storage/emulated/0/
/storage/emulated/legacy/

Quel chemin est le "réel"? Qu'en est-il des autres chemins? À quoi servent-ils, pourquoi existent-ils?

Réponses:


38

Lecture recommandée: Pourquoi / sdcard / est-il devenu / sdcard / 0 / avec 4.2? .

En bref: cela concerne la fonctionnalité multi-utilisateur introduite avec Jelly Bean:

  • /storage/emulated/0/: à ma connaissance, il s'agit de la "MMC émulée" ("partie propriétaire"). C'est généralement l'interne. Le "0" représente l'utilisateur ici, "0" est le premier utilisateur, à savoir le propriétaire du périphérique. Si vous créez des utilisateurs supplémentaires, ce nombre augmentera pour chacun.
  • /storage/emulated/legacy/comme précédemment, mais en montrant la partie de l'utilisateur actuellement actif (pour le propriétaire, ce serait un lien symbolique vers /storage/emulated/0/). Donc, ce chemin devrait amener chaque utilisateur à sa "part".
  • /sdcard/: Selon un commentaire de Shywim , il s'agit d'un lien symbolique vers ...
    • /mnt/sdcard (Android <4.0)
    • /storage/sdcard0 (Android 4.0+)
  • /storage/sdcard0/: Comme il n'y a pas de legacypendant ici (voir commentaires ci-dessous), le "0" dans ce cas identifie plutôt le périphérique (carte) lui-même. On pourrait éventuellement connecter un lecteur de carte à une autre carte SD via OTG, qui deviendrait alors /storage/sdcard1(pas de preuve pour cela, juste une supposition - mais je dirais une bonne)

Bien que l'on puisse en arriver à la conclusion qu'il devrait y en avoir une /storage/sdcard/legacyaussi, il n'y en a pas (voir commentaires) - ce qui est tout à fait logique si je suppose que les chiffres ici ne sont pas liés à l'utilisateur, mais plutôt à de multiples cartes possibles: " 0 "sera toujours celui de la fente pour carte du périphérique, vous n'avez donc pas besoin d'un" lien symbolique hérité "ici.


Merci! Et non, il n'y a pas de /storage/sdcard/legacychemin.
Torben Gundtofte-Bruun

2
Étrange. Mais cela est peut-être dû au fait qu’il n’ya pratiquement aucune autorisation sur une vraie carte SD (car le système de fichiers FAT ne les prend pas en charge). Notant la différence ( /sdcard0/par rapport à /emulated/0), le "0" peut ici être destiné au cas où plusieurs cartes SD sont connectées via un lecteur de carte et le mode hôte USB. Juste une supposition, pas un fait difficile - mais je dirais un bon.
Izzy

Réponse mise à jour en conséquence :)
Izzy

2
/sdcard/est simplement un lien symbolique vers /storage/sdcard0/. Sur les versions plus anciennes que 4.0.0, c’est /mnt/sdcard/.
Matthieu Harlé

Et je suppose que, sur Android 4.0+, /mnt/sdcard/un lien symbolique existe- /storage/sdcard0/t-il? Puisque les deux sont navigables sur mon Nexus 4.
MrWhite

2

Oui, un peu déroutant mais ce sont des chemins alternatifs pour la disposition de la mémoire

/ mnt / sdcard0 / (Carte SD virtuelle interne)

et Izzy votre correct si plus de périphériques sont connectés, mais le nom peut être différent selon le périphérique.

ex. / mnt / sdcard1 / (Carte SD physique dans le logement SD)

mais d'autres périphériques tels qu'un lecteur flash USB se connecter avec un adaptateur pourrait être appelé

/ mnt / media_rw / usbdisk (Android 4.4 ou version ultérieure?) ou / mnt / usbdisk (jellybean 4.1 - 4.2)


1
Oui, le nom peut dépendre du périphérique / fabricant / ROM. Mais d'habitude, ce /mnt/*n'est qu'un lien symbolique dans tous ces cas - les "montages réels" résidant en dessous /storage:)
Izzy

Eh bien, j'ai aussi un dossier shell sous mnt . Je change souvent de ROM de périphérique et donc, pour ces roms, qui font de la carte SD externe la mémoire par défaut, le dossier shell se comporte comme ma mémoire interne, et pour les autres roms qui n'échangent pas la carte SD en mémoire interne, le shell ne vient même pas. dans l'image. Il reste simplement dans le dossier avec toutes les données intactes, mais n'est pas accessible par le gestionnaire de fichiers local. Je voulais savoir ce que c'est exactement.
Ali_Waris
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.