47 votos

Confundido por las múltiples ubicaciones de la tarjeta virtual /sdcard/

Algunos dispositivos (como mi Nexus 4) no tienen una ranura externa para una tarjeta SD. En su lugar, hay una carpeta Root 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"? ¿Y los otros caminos? ¿Para qué sirven, por qué existen?

39voto

Izzy Puntos 45544

Conferencia 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 propietaria"). Normalmente es la interna. El "0" representa el usuario aquí, "0" es el primer usuario aka propietario del dispositivo. Si usted crea usuarios adicionales, este número se incrementará para cada uno.
  • /storage/emulated/legacy/ como antes, pero apuntando a la parte del usuario que está trabajando actualmente (para el propietario, esto sería un symlink a /storage/emulated/0/ ). Así que 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 más abajo), el "0" en este caso identifica más bien el dispositivo (tarjeta) en sí. Uno podría, eventualmente, conectar un lector de tarjetas con otra SDCard vía OTG, que entonces se convertiría en /storage/sdcard1 (no hay pruebas de ello, sólo una suposición - pero yo diría que una buena)

Aunque uno podría llegar a la conclusión de que debería haber una /storage/sdcard/legacy también, no lo hay (ver comentarios) -- lo cual tiene completamente 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" sería siempre el que está en la ranura de la tarjeta del dispositivo, por lo que no hay necesidad de un "symlink de legado" aquí.

0 votos

Gracias. Y no, no hay /storage/sdcard/legacy camino.

2 votos

Extraño. Pero eso podría tener que ver con el hecho de que apenas hay permisos en una tarjeta sd real (debido a que el sistema de archivos FAT no los soporta). Observando la diferencia ( /sdcard0/ frente a /emulated/0 ), el "0" aquí podría estar pensado para el caso de que uno conecte múltiples SDCards a través de un lector de tarjetas y el modo de host USB entonces. Es sólo una suposición, no un dato concreto pero yo diría que es una buena suposición.

0 votos

Respuesta actualizada en consecuencia :)

2voto

XDarkMario Puntos 11

Sí un poco confusos, pero estos son caminos alternos para el diseño de la memoria

/ mnt/sdcard0 / (tarjeta SD Virtual interna)

e Izzy su correcta si se conectan los dispositivos más, pero el nombramiento podría ser diferente dependiendo del dispositivo.

ej.: / mnt/sdcard1 / (tarjeta SD externa, en la ranura SD)

Pero otros dispositivos como un pendrive usb, o uno conectado con adaptador podrían llamarse

/mnt/media_rw/usbdisk (android kitkat 4.4 y arriba?) o/mnt/usbdisk (jellybean 4.1-4.2)

1 votos

Sí, la denominación puede depender del dispositivo/fabricante/ROM. Pero por lo general, /mnt/* es sólo un enlace simbólico en todos esos casos - con los "montajes reales" que residen debajo /storage :)

0 votos

Bueno, tengo un shell carpeta bajo mnt también. Cambio de ROM de dispositivo con frecuencia y por lo tanto, para aquellos roms, que hace SDcard externa como la memoria por defecto, el shell carpeta se comporta como mi memoria interna, y para otras roms que no intercambian sdcard como memoria interna, shell ni siquiera entra en escena. Simplemente se queda ahí en la carpeta con todos los datos intactos, pero no es accesible por el gestor de archivos local. Quería saber, qué es exactamente.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X