5 votos

¿Se supone que los archivos creados en "/storage/emulated/0" deben aparecer en "/storage/sdcard0"?

Por lo que supongo, el almacenamiento interno está disponible para todos los usuarios. Si el almacenamiento emulado es una ubicación de almacenamiento, hecho para un usuario específico, son los archivos creados en /storage/emulated/0 que se supone que aparece en /storage/sdcard0 ? Supongo que no, porque los archivos creados por el usuario deberían aparecer sólo en emulados, de lo contrario los archivos creados por el usuario estarían disponibles para que todos los demás usuarios los vieran.

6voto

Izzy Puntos 45544

He comprobado uno de mis dispositivos, y como la cadena de comentarios ya sospechaba, no hay que preocuparse de que todo el mundo tenga acceso a los datos de los demás. Primero:

/storage/sdcard0 -> /storage/emulated/legacy

Lo que significa que es sólo un enlace simbólico que siempre apunta a los datos del usuario actual:

/storage/emulated/legacy -> /mnt/shell/emulated/0

(el primer usuario - en mi caso el único). Segundo, donde normalmente lo buscas:

/sdcard -> /storage/emulated/legacy

El mismo juego otra vez. Así que para la tarjeta SD emulada (también conocida como "tarjeta SD interna"), el sistema Android se encarga de mapearla de acuerdo con el usuario actual. No estoy seguro de la tarjeta SD externa (si eso por ejemplo podría ser usado para compartir datos entre múltiples usuarios). Esto se encuentra generalmente en /storage/sdcard1 :

$ mount | grep sdcard
/dev/block/vold/179:65 /mnt/media_rw/sdcard1 vfat […]
/dev/fuse /storage/sdcard1 fuse […]
$ ls /mnt/media_rw/sdcard1
/mnt/media_rw/sdcard1: Permission denied
$ su -c "ls /mnt/media_rw/sdcard1"
[data from external SD card]

Así que puedes ver que la tarjeta SD externa sólo puede ser accedida directamente con los poderes de root, por qué los "usuarios ordinarios" tienen que ir a través de una montura de FUSE superpuesta a eso. Así que el sistema de nuevo podría tener cuidado de que cada usuario sólo pueda acceder a sus propios datos en ese lugar. No estoy lo suficientemente familiarizado con los internos como para decir con seguridad (o incluso para decir qué se hace exactamente allí).

Ahora para su pregunta explícita, si los archivos creados en /storage/emulated/0 que se supone que aparece en /storage/sdcard0 : Asumiendo que estás hablando de /mnt/shell/emulated/0 (No pude encontrar /storage/emulated/0 en mi dispositivo), empíricamente, por supuesto que sí, ya que ambos están en el mismo lugar: /storage/sdcard0 -> /storage/emulated/legacy -> /mnt/shell/emulated/0 - lo que significa que /storage/sdcard0 muestra lo que está contenido en /mnt/shell/emulated/0 . Pero su preocupación es injustificada: debido al "intermediario" ( /storage/emulated/legacy ), /storage/sdcard0 siempre apunta al almacenamiento del "usuario conectado", así que si, por ejemplo, el segundo usuario mira allí, verá lo que hay en /mnt/shell/emulated/1 (o cuál sea su área de almacenamiento emulada).


Así que como PS, déjame resumir las cosas de los comentarios, como un corto FAQ:

  • Me pregunto qué pasaría si un usuario diferente intenta acceder y guardar datos en el almacenamiento emulado de otro usuario.
    Recibe un mensaje de error de que no está ahí o no está accesible.
  • ¿Por qué se necesitan estos enlaces simbólicos?
    Múltiples razones, muchas de ellas históricas (una palabra: "compatibilidad").
  • ¿Qué son esos enlaces simbólicos y cómo funcionan, en términos simples?
    Son básicamente "señales", que dicen "por favor, mira allí". Aparte de lo que inicialmente asumió, no contienen ningún dato en sí mismos - en realidad son sólo señales o "punteros". Los datos en sí mismos residen en la "ubicación del objetivo", y sólo allí. Para más detalles, por favor vea el Artículo de Wikipedia sobre enlaces simbólicos .

También ver:

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