1 votos

¿Dónde encontrar IndexedDB en Android?

Tengo este problema que ya no puedo abrir la página ya que alcanzé el límite máximo de capacidad de mi indexeddb, pero quería copiarla para poder migrarla a otro dispositivo.

¿Dónde puedo encontrar la ruta de la carpeta IndexedDB en Android? Sé que en Windows sería fácil encontrar %appdata%/local/Google/Chrome/User Data/Default/IndexedDb. Sin embargo, en Android no tengo idea de dónde encontrarla.

Espero que alguien pueda responder a mi pregunta, y ojalá no sea necesario hacer 'ROOT'.

Gracias.

0 votos

El camino que has incluido en tu publicación es para Windows, no para Android. Si hay un IndexedDb en Android, estará ubicado en la mayoría de los dispositivos en algún lugar debajo de /data/data/com.android.chrome/, lo cual solo es accesible con permisos de root.

1voto

pr0nin Puntos 353

La ruta que has incluido en tu publicación es para Windows, no para Android.

Enfoque general sobre cómo acceder a los datos de la aplicación sin ser root

Si hay un IndexedDb en Android, estará ubicado en la mayoría de los dispositivos en algún lugar debajo de /data/data/com.android.chrome/, que solo es accesible con permisos de root.

Sin embargo, la aplicación Chrome permite realizar copias de seguridad a través de adb, por lo tanto deberías poder hacer una copia de seguridad de los datos de la aplicación Chrome y luego extraer el archivo de esa copia de seguridad. Para hacer esto, necesitas un dispositivo con las opciones de desarrollador activadas y el Puente de Depuración de Android (adb) habilitado.

Haz una copia de seguridad de los datos de Chrome en el archivo backup.ab

adb backup com.android.chrome

Luego necesitas convertir la copia de seguridad usando Android backup Extractor (abe):

java -jar abe-all.jar unpack backup.ab backup.tar

Ahora puedes abrir el archivo creado backup.tar usando una herramienta de archivo como 7zip y extraer todo o simplemente buscar el archivo IndexedDb.

Si has encontrado el archivo y deseas modificarlo, todo el proceso funciona en la dirección opuesta, utilizando el "modo de empaquetamiento abe" y "restaurar adb".

Chrome y IndexedDB

Al observar las estructuras de datos creadas por la última aplicación de Chrome en una base de datos con root, no se crea ningún archivo IndexedDB creado por Chrome en Android.

En cambio, IndexedDB es un directorio que contiene múltiples bases de datos, una para cada sitio web. Cada base de datos consta de múltiples archivos. Por lo tanto, si esperas que un sitio web en particular haya creado un almacenamiento IndexedDB muy grande, debería ser posible recuperar ese almacenamiento eliminando el almacenamiento IndexedDB de ese sitio.

Puedes ver detalles sobre el IndexedDB abriendo la URL chrome://indexeddb-internals/ en Chrome.

0 votos

Woah, funciona para las otras aplicaciones. Sin embargo, cuando lo intenté en com.android.chrome, tiene un archivo de 1kb sin nada dentro de él. ¡Triste :( pero gracias por la respuesta.

0 votos

@user2180795 Eso es realmente extraño, la copia de seguridad debería estar permitida para Chrome según su AndroidManifest.xml. Pero cuando pruebo el comando en un dispositivo, también solo obtengo un archivo de 47 bytes. No estoy seguro(a) de por qué sucede esto.

0 votos

Creo que tengo que encontrar otra forma de reducir el código de indexeddb existente, actualizando los datos en él cuando se carga la página, como reducir el tamaño de los archivos base64 agregados a indexeddb. Dado que no es posible realizar una copia de seguridad sin hacer root. :(

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