Enlace simbólico coherente entre dispositivos para almacenamiento interno

Hay muchos caminos hacia el almacenamiento interno:

/sdcard

/storage/sdcard0

/storage/emulated/0

/storage/emulated/legacy

/mnt/sdcard

/data/media/0

Varias preguntas:

  • ¿Cuáles son más consistentes (presentes) en todos los dispositivos?

  • ¿Cuáles tienen más probabilidades de tener permisos de lectura y escritura? ¿Los enlaces simbólicos alteran este comportamiento?

  • ¿Cuál es la verdadera ubicación de almacenamiento, hacia donde apunta el resto de los enlaces simbólicos? ¿Esto también varía entre dispositivos?

¿Hay algún objetivo final suyo que se completaría al conocer un enlace simbólico entre dispositivos cruzados entre miles de dispositivos ?

Respuestas (1)

Para responder a todo eso, uno necesita conocer todos (o al menos la mayoría) de los dispositivos disponibles. Entonces, todo lo que puedo dar es una "suposición educada".

Los permisos no deben ser alterados por enlaces simbólicos. Y sí, lo que hay varía según los dispositivos, las versiones de Android e incluso las ROM utilizadas.

Encuentre el "real" usando dfo mounten el símbolo del sistema (ya sea a través de una aplicación de terminal o usando adb shell). A partir de alrededor de Android 4.2, algunas de las ubicaciones enumeradas deberían ser bastante estándar:

  • /storage/emulated/0
  • /storage/emulated/legacy

Los demás, como escribí, pueden variar entre dispositivos, versiones de Android y ROM.

En cuanto a los permisos de lectura/escritura: Todos ellos tienen. La pregunta es simplemente: ¿para quién? ¿La aplicación promedio o root? Esto cambió mucho entre las versiones de Android, especialmente desde Kitkat, y nuevamente podría manejarse de manera diferente según el dispositivo, la versión de Android y la ROM. Antes de Kitkat, una aplicación solo necesitaba el WRITE_EXTERNAL_STORAGEpermiso. Con Kitkat, en la mayoría de las ROM estaba restringida a su propio directorio en Android/data/, y con Lollipop eso volvió a cambiar.

Para obtener una referencia, consulte también Confundido por las muchas ubicaciones de la /sdcard/ virtual .

¿Puede proporcionar una referencia para que Kitkat esté bloqueado en /data/x?
LOL Toneladas de referencias si solo haces una búsqueda en "Kitkat sdcard" . Eso dio un grito bastante fuerte en ese entonces. Por ejemplo: Android KitKat bloquea el acceso a las tarjetas Micro SD , KitKat hará que su tarjeta SD sea completamente inútil .
Estoy planeando cambiar mi pregunta para que no duplique "Confundido [..] virtual /sdcard/", también estoy trabajando en una respuesta basada en muchos dispositivos de prueba de Samsung, LG, Nexus, Acer, etc. Todavía tengo que poner mis manos en algunos de ellos a través de un amigo mío.
@AaronGillion: ¿tal vez puedas iniciar un wiki a partir de entonces?
No estoy seguro. ¿Me puede referir a una página de ayuda sobre lo que hace/cómo iniciar uno/cómo funciona? La lista se está haciendo muy larga, publicaré los resultados generales a continuación, pero planeo crear una página en mi sitio web con cada dispositivo. ¿No estoy seguro si wiki ayudará aquí...?