Confuso dalle molte posizioni della virtual / sdcard /


46

Alcuni dispositivi (come il mio Nexus 4) non hanno uno slot esterno per una scheda SD. Invece, c'è una cartella principale chiamata /sdcard/che viene trattata allo stesso modo. Ma trovo anche altri percorsi che puntano tutti agli stessi file - ci devono essere dei tipi di reindirizzamenti in corso (penso che questo sia chiamato symlink in Linux).

Tutti questi percorsi contengono gli stessi file:

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

Qual è il percorso "attuale"? E gli altri percorsi? A cosa servono, perché esistono?

Risposte:


38

Conferenza consigliata: perché / sdcard / si è trasformato in / sdcard / 0 / con 4.2? .

In breve: ha a che fare con la funzionalità multiutente introdotta con Jelly Bean:

  • /storage/emulated/0/: per quanto ne so, questo si riferisce al "MMC emulato" ("parte del proprietario"). Di solito questo è quello interno. Lo "0" sta per l'utente qui, "0" è il primo utente noto anche come proprietario del dispositivo. Se si creano utenti aggiuntivi, questo numero aumenterà per ciascuno.
  • /storage/emulated/legacy/come prima, ma indicando la parte dell'utente attualmente funzionante (per il proprietario, questo sarebbe un link simbolico a /storage/emulated/0/). Quindi questo percorso dovrebbe portare ogni utente alla sua "parte".
  • /sdcard/: Secondo un commento di Shywim , questo è un link simbolico a ...
    • /mnt/sdcard (Android <4.0)
    • /storage/sdcard0 (Android 4.0+)
  • /storage/sdcard0/: Poiché qui non è presente alcun legacypendente (vedere i commenti di seguito), in questo caso lo "0" identifica piuttosto il dispositivo (scheda) stesso. Alla fine si potrebbe collegare un lettore di schede con un'altra SDCard tramite OTG, che poi diventerebbe /storage/sdcard1(nessuna prova per questo, solo una supposizione - ma direi una buona)

Anche se si potrebbe arrivare alla conclusione che dovrebbe esserci anche un /storage/sdcard/legacy, non c'è (vedi commenti) - il che ha completamente senso con la mia ipotesi che i numeri qui non siano correlati all'utente, ma piuttosto a possibili più carte: " 0 "sarebbe sempre quello nello slot per schede del dispositivo, quindi non è necessario un" link simbolico legacy "qui.


Grazie! E no, non c'è /storage/sdcard/legacypercorso.
Torben Gundtofte-Bruun,

2
Strano. Ma ciò potrebbe avere a che fare con il fatto che non ci sono quasi permessi su una vera sdcard (a causa del file system FAT che non li supporta). Notando la differenza ( /sdcard0/rispetto /emulated/0), lo "0" qui potrebbe essere inteso per il caso in cui si collegano più schede SD tramite un lettore di schede e la modalità host USB. Solo una supposizione, non un dato di fatto - ma direi una buona idea.
Izzy

Risposta aggiornata di conseguenza :)
Izzy

2
/sdcard/è semplicemente un collegamento simbolico a /storage/sdcard0/. Nella versione precedente alla 4.0.0, lo è /mnt/sdcard/.
Matthieu Harlé,

E suppongo, su Android 4.0+, /mnt/sdcard/è un link simbolico a /storage/sdcard0/? Poiché entrambi sono navigabili sul mio Nexus 4.
MrWhite,

2

Sì, un po 'confuso, ma questi sono percorsi alternativi per il layout della memoria

/ mnt / sdcard0 / (scheda SD virtuale interna)

e Izzy è corretto se sono collegati più dispositivi, ma la denominazione potrebbe essere diversa a seconda del dispositivo.

ex. / mnt / sdcard1 / (scheda SD fisica nello slot SD)

ma è possibile chiamare altri dispositivi come un'unità flash USB che si collega a un adattatore

/ mnt / media_rw / usbdisk (android kitkat 4.4 e versioni successive?) o / mnt / usbdisk (jellybean 4.1 - 4.2)


1
Sì, la denominazione potrebbe dipendere dal dispositivo / produttore / ROM. Ma di solito, /mnt/*è solo un collegamento simbolico in tutti quei casi - con i "supporti reali" che risiedono sotto /storage:)
Izzy

Bene, ho anche una cartella shell sotto mnt . Cambio frequentemente la ROM del dispositivo e quindi, per quelle rom, che rende SDcard esterna come memoria predefinita, la cartella shell si comporta come la mia memoria interna, e per altre rom che non scambiano sdcard come memoria interna, la shell non arriva nemmeno in foto. Rimane lì nella cartella con tutti i dati intatti, ma non è accessibile dal file manager locale. Volevo sapere di cosa si tratta esattamente.
Ali_Waris,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.