¿Por qué los datos de la misma aplicación se almacenan en diferentes ubicaciones?

He instalado la misma aplicación en

  • un dispositivo con Android 7.0 ( no rooteado ) y

  • en una tableta con Android 4.4 ( raíz ),

pero, sin embargo, noté que los datos de la aplicación (bases de datos/archivos, etc.) se almacenan en diferentes ubicaciones en cada dispositivo:

En el dispositivo de tableta, los archivos se encuentran en: /storage/sdcard0/Android/data/com.packagenamey se pueden manipular fácilmente (es decir, copiar, hacer una copia de seguridad, etc.), pero no en el teléfono inteligente, lo que probablemente deja la ubicación de almacenamiento en: a la /data/data/com.packagenameque no tengo acceso.


Entiendo que generalmente se almacena en /data/data( almacenamiento de aplicaciones interno protegido ) o /storage/sdcard0/Android/data( almacenamiento en la partición de almacenamiento interno del usuario ), de lo contrario, en una tarjeta SD, si está presente. Además, aquí se ha hecho una pregunta relacionada: ¿ Dónde almacenan datos las aplicaciones de Android?

Mi mayor sorpresa es ¿por qué sucede esto en la misma aplicación (misma versión, carga lateral)?

Esta página de referencia también explica cómo un desarrollador puede configurar la ubicación predeterminada de los datos de la aplicación. Habría sido comprensible si hubiera diferentes versiones de la aplicación, pero aquí solo estoy tratando con la misma aplicación (es decir, .apkarchivo). ¿Hay algo que me falta aquí o las cosas han cambiado en las versiones recientes de Android?

Mi preocupación es que no puedo acceder a estos archivos /data/datasin root y dado que son archivos grandes y necesito hacer una copia de seguridad en caso de que los datos de la aplicación se borren accidentalmente (y ya lo hice por error :(.

Lo más importante es que no quiero descargarlos continuamente de nuevo.

Nota: Ambos dispositivos no tienen almacenamiento externo adjunto.

Desde el punto de vista de las cosas, el mayor obstáculo es no poder acceder a los archivos en /data/data(dispositivo 1), por lo tanto, no es posible hacer una copia de seguridad... (Agradecería si hay otra solución confiable para lograr esto )

¿ No ha sido siempre /data/data? ¿Puedes decir en qué ubicación se almacenan los datos de la aplicación? ¿Sabes si los archivos son archivos de datos? Además, ¿cómo sabes realmente sin root?
Estoy seguro de que los datos claros también borran los datos en /sdcard/Android/data, de hecho, lo probé en una aplicación determinada y así fue. Además, pienso /Android/datay /data/datatengo diferentes propósitos. Descubrí que /Android/datase usa más para cachés/archivos relacionados con anuncios, mientras que /data/dataes más para cosas privadas (por ejemplo, almacenar información de inicio de sesión).
@SSS Entiendo tu punto, pero al menos en la tableta puedo hacer una copia de seguridad de sus datos fácilmente, incluso si lo borro por error, no tendrá mucho daño :)

Respuestas (2)

Todas las aplicaciones tienen almacenamiento privado en la carpeta de datos prolongados. Algunas aplicaciones optan por almacenar datos temporalmente en lugares públicos. Desafortunadamente, no puedo decir con certeza cuáles fueron los resultados exactos de esto, pero sé que la forma en que se manejan los datos compartidos cambió en Android 7 por razones de seguridad.

Entonces, ¿puedo hacer una copia de seguridad de los datos de la aplicación almacenados en /datala carpeta en este dispositivo no rooteado?

Por extraño que parezca, tuve una solución exitosa a este problema:

  • Tuve que mover manualmente los datos necesarios de la aplicación (archivos) de /data/dataa /Android/data(con la excepción de shared_preferencesla carpeta y la carpeta de la base de datos, es decir, la configuración normal).

  • En segundo lugar, configuré la aplicación para usar un directorio privado modificando el userDefault.xmlarchivo (tal vez diferente según la aplicación en cuestión) y agregando esta línea de código necesaria:

    <int name="app_private_dir"value_"1"/>

Temporalmente magisk'd para lograr esto por completo :)