1 votes

Où trouver IndexedDB dans Android

Je rencontre ce problème où je ne peux plus ouvrir la page car j'ai déjà atteint la limite maximale de capacité de mon indexeddb mais je voulais la copier pour pouvoir la migrer vers un autre appareil.

Ma question est : où puis-je trouver le chemin du dossier IndexedDB sur Android ? Je sais que sous Windows, il est facile de le trouver %appdata%/local/Google/Chrome/User Data/Default/IndexedDb. Cependant, sous Android, je ne sais pas où le trouver.

En espérant que quelqu'un puisse répondre à ma question, et j'espère qu'il n'y a pas besoin de 'ROOT'

Merci.

0 votes

Le chemin que vous avez inclus dans votre publication est pour Windows, pas pour Android. S'il y a un IndexedDb sur Android, il se trouvera sur la plupart des appareils quelque part en dessous de /data/data/com.android.chrome/, qui n'est accessible qu'avec des autorisations root.

1voto

pr0nin Points 353

Le chemin que vous avez inclus dans votre message est pour Windows et non pour Android.

Approche générale pour accéder aux données de l'application sans root

S'il y a un IndexedDb sur Android, il se trouvera sur la plupart des appareils quelque part sous /data/data/com.android.chrome/ ce qui n'est accessible qu'avec des permissions root.

Cependant, l'application Chrome permet de sauvegarder via adb, donc vous devriez pouvoir sauvegarder les données de l'application Chrome et extraire le fichier à partir de la sauvegarde. Pour ce faire, vous avez besoin d'un appareil avec les options développeur activées et le Débogage USB Android (adb) activé.

Sauvegardez les données Chrome dans le fichier backup.ab

adb backup com.android.chrome

Ensuite, vous devez convertir la sauvegarde en utilisant Android backup Extractor (abe):

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

Maintenant, vous pouvez ouvrir le fichier backup.tar créé en utilisant un outil d'archivage comme 7zip et extraire tout ou simplement rechercher le fichier IndexedDb.

Si vous avez trouvé le fichier et que vous souhaitez le modifier, tout le processus fonctionne dans le sens inverse, en utilisant le "mode d'empaquetage abe" et "adb restore".

Chrome et IndexedDB

En examinant les structures de données créées par la dernière application Chrome sur une base de données rootée, il n'y a pas de fichier IndexedDB créé par Chrome sur Android.

A la place, IndexedDB est un répertoire contenant plusieurs bases de données - une pour chaque site web. Chaque base de données est composée de plusieurs fichiers. Par conséquent, si vous pensez qu'un site donné a créé un stockage IndexedDB très volumineux, il devrait être possible de récupérer ce stockage en supprimant le stockage IndexedDB de ce site.

Vous pouvez afficher des détails sur l'IndexedDB en ouvrant l'URL chrome://indexeddb-internals/ dans Chrome.

0 votes

Woah, cela fonctionne pour les autres applications. cependant, lorsque j'ai essayé dans com.android.chrome, il y a un fichier de 1ko sans rien à l'intérieur. triste :( mais merci pour la réponse.

0 votes

@user2180795 C'est vraiment étrange, la sauvegarde devrait être autorisée pour Chrome selon son AndroidManifest.xml. Mais lorsque je teste la commande sur un appareil, je n'obtiens également qu'un fichier de 47 octets. Je ne suis pas sûr de pourquoi cela se produit.

0 votes

Je pense que je dois trouver un autre moyen de réduire le code IndexedDB existant, en mettant à jour les données lors du chargement de la page, par exemple en réduisant la taille des fichiers base64 ajoutés à l'IndexedDB. Étant donné qu'une sauvegarde sans root n'est pas possible. :(

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X