Algunos dispositivos (como mi Nexus 4) no tienen una ranura externa para una tarjeta SD. En cambio, hay una carpeta raíz llamada /sdcard/
que se trata de la misma manera. Pero también encuentro otras rutas que apuntan a los mismos archivos: debe haber algún tipo de redireccionamiento (creo que esto se llama enlaces simbólicos en Linux).
Todas estas rutas contienen los mismos archivos:
/sdcard/
/storage/sdcard0/
/storage/emulated/0/
/storage/emulated/legacy/
¿Qué camino es el "real"? ¿Qué pasa con los otros caminos? ¿Para qué sirven, por qué existen?
Lectura recomendada: ¿Por qué /sdcard/ se convirtió en /sdcard/0/ con 4.2? .
En resumen: tiene que ver con la funcionalidad multiusuario introducida con Jelly Bean:
/storage/emulated/0/
: que yo sepa, esto se refiere a la "MMC emulada" ("parte del propietario"). Por lo general, este es el interno. El "0" representa al usuario aquí, "0" es el primer usuario, también conocido como propietario del dispositivo. Si crea usuarios adicionales, este número aumentará para cada uno./storage/emulated/legacy/
como antes, pero apuntando a la parte del usuario que trabaja actualmente (para el propietario, esto sería un enlace simbólico a /storage/emulated/0/
). Entonces, este camino debería llevar a cada usuario a su "parte"./sdcard/
: Según un comentario de Shywim , este es un enlace simbólico a...
/mnt/sdcard
(Android <4.0)/storage/sdcard0
(Android 4.0+)/storage/sdcard0/
: Como no hay legacy
colgante aquí (ver comentarios a continuación), el "0" en este caso identifica el dispositivo (tarjeta) en sí. Eventualmente, uno podría conectar un lector de tarjetas con otra tarjeta SD a través de OTG, que luego se convertiría /storage/sdcard1
(no hay pruebas de eso, solo una suposición, pero diría que es una buena)Aunque uno podría llegar a la conclusión de que también debería haber una /storage/sdcard/legacy
, no la hay (ver comentarios), lo que tiene mucho sentido con mi suposición de que los números aquí no están relacionados con el usuario, sino con posibles tarjetas múltiples: " 0" siempre sería el que está en la ranura de la tarjeta del dispositivo, por lo que no es necesario un "enlace simbólico heredado" aquí.
Sí, un poco confuso, pero estos son caminos alternativos para el diseño de la memoria.
/mnt/sdcard0/ (Tarjeta SD virtual interna)
e Izzy es correcto si hay más dispositivos conectados, pero el nombre podría ser diferente según el dispositivo.
ex. /mnt/sdcard1/ (Tarjeta SD física en la ranura SD)
pero otros dispositivos, como una unidad flash USB conectada con un adaptador, podrían llamarse
/mnt/media_rw/usbdisk (¿android kitkat 4.4 y superior?) o /mnt/usbdisk (jellybean 4.1 - 4.2)
/mnt/*
es solo un enlace simbólico en todos esos casos, con los "montajes reales" que residen debajo /storage
:)
Torben Gundtofte-Bruun
/storage/sdcard/legacy
camino.izzy
/sdcard0/
versus/emulated/0
), el "0" aquí podría estar destinado al caso de que uno conecte varias tarjetas SDC a través de un lector de tarjetas y el modo de host USB. Solo una suposición, no es un hecho duro, pero diría que es bueno.Matthieu Harlé
/sdcard/
es simplemente un enlace simbólico a/storage/sdcard0/
. En una versión anterior a la 4.0.0, es/mnt/sdcard/
.Señor White
/mnt/sdcard/
¿hay un enlace simbólico a/storage/sdcard0/
? Ya que ambos son navegables en mi Nexus 4.izzy
tony19
/storage/sdcard0/
contradice la respuesta a la pregunta que vinculó , donde dice que el "0"sdcard0
está relacionado con la identificación del usuario.izzy
/sdcard0
es la primera tarjeta SD, mientras que/sdcard/0
es la parte de la tarjeta SD del primer usuario :) Aparte de eso, aquí se solicita 4.0+, mientras que esas cosas multiusuario eran introducido con 4.2+ solamente.gili nachum