2 votes

Modifier le fichier /data/data depuis un PC

J'ai une application Android (utilise la base de données sqlite) que j'ai créée et installée sur mon appareil. C'est une application pour mon usage personnel. Il est débogable et son dossier /data/data est accessible depuis l'ordinateur avec adb pull. Même la modification du fichier de base de données sqlite est possible depuis l'explorateur de fichiers de l'appareil depuis Android Studio sur l'ordinateur. L'appareil n'est pas rooté.

Je me demandais s'il existe un moyen de modifier le fichier de base de données sqlite dans /data/data depuis l'extérieur d'Android Studio. Puisque AS permet la modification depuis l'ordinateur, je suppose qu'il ne devrait y avoir aucun problème de sécurité pour permettre l'accès depuis l'extérieur d'AS depuis le même ordinateur.

J'ai une application de bureau qui doit modifier la base de données et uploader le fichier à chaque fois via l'explorateur d'appareils Android Studio est fastidieux. Ce serait génial si je pouvais soit créer un lien symbolique soit écrire un script pour automatiser le processus.

4voto

pr0nin Points 353

Il n'existe pas de commande simple pour télécharger un fichier de base de données modifié dans le répertoire de données privées de l'application en mode débogage. Ce que fait Android Studio lors du téléchargement d'un fichier via l'Explorateur de fichiers de périphérique est :

  1. Télécharger le fichier via adb push dans /data/local/tmp/
  2. Exécuter adb shell run-as com.myapp sh -c 'cp /data/local/tmp/ /data/data/com.myapp//'
  3. Supprimer le fichier temporaire via adb shell rm /data/local/tmp/
  4. Obtenir la vue mise à jour dans l'Explorateur de fichiers de périphérique en utilisant adb shell run-as com.myapp sh -c 'ls -al /data/data/com.myapp//'

J'ai découvert cela en capturant le trafic adb sur le port TCP 5027 avec Wireshark.

Remarque : Si vous écrasez le fichier de base de données alors que l'application est toujours en cours d'exécution, l'application continuera probablement d'utiliser l'ancienne base de données (si la base de données reste ouverte pendant l'exécution de l'application) jusqu'à ce que le processus de l'application soit arrêté. Je recommanderais de tuer l'application avant de télécharger le fichier de base de données modifié.

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