410 votes

Comment accéder aux données/dossiers de données dans un appareil Android ?

Je suis en train de développer une application et je sais que ma base de données *.db apparaîtra dans data/data/com.****.***

Je peux accéder à ce fichier depuis AVD dans Eclipse avec l'aide du gestionnaire sqlite.

Mais je ne peux pas accéder à ce fichier dans mon téléphone Android.
J'ai cherché sur Google et il est dit que je dois Rooter mon téléphone pour le faire, mais je ne veux pas faire ça.

Comment puis-je accéder à mon data/data/..... répertoire dans mon téléphone Android " sans l'enraciner " ?

Puis-je changer les permissions des utilisateurs pour le répertoire data/data..... sans l'enraciner ?

1 votes

Avez-vous le fichier database.db ?

0 votes

j'utilise une base de données - "openOrCreateDatabase(....)"

6 votes

Il vous faudra certainement commencer par Rooter le téléphone. Ensuite, vous aurez besoin d'une application de gestion de fichiers compétente que vous pourrez utiliser. Le gestionnaire de fichiers ASTRO est populaire mais il ne prend pas en charge l'accès Root et est donc inutile pour les utilisateurs expérimentés. Vous devriez être en mesure d'utiliser ES File Explorer ou File Expert. J'ai récemment eu des problèmes pour afficher /data/data ou d'autres dossiers protégés avec ES File Explorer et je l'ai pratiquement abandonné, et j'utilise maintenant File Expert. Tous deux nécessitent d'aller dans les paramètres et d'activer l'option Root explorer (et parfois aussi de monter le système de fichiers en écriture). Vous devez donc faire cela d'abord.

464voto

THelper Points 5527

Il est difficile d'accéder aux fichiers directement sur votre téléphone, mais vous pouvez peut-être les copier sur votre ordinateur où vous pourrez en faire ce que vous voulez. Sans l'enracinement, vous avez deux options :

  1. Si l'application est débuggable, vous pouvez utiliser la fonction run-as dans le shell adb

    adb shell
    run-as com.your.packagename 
    cp /data/data/com.your.packagename/
  2. Vous pouvez également utiliser la fonction de sauvegarde d'Android.

    adb backup -noapk com.your.packagename

    Vous serez maintenant invité à "déverrouiller votre appareil et à confirmer l'opération de sauvegarde". Il est préférable de ne pas fournir de mot de passe, sinon il sera plus difficile de lire les données. Cliquez simplement sur "Sauvegarder mes données". Le fichier "backup.ab" obtenu sur votre ordinateur contient toutes les données de l'application au format de sauvegarde Android. Il s'agit en fait d'un fichier tar compressé. Cette page explique comment vous pouvez utiliser la commande zlib d'OpenSSL pour le décompresser. Vous pouvez utiliser la commande adb restore backup.db pour restaurer la sauvegarde.

23 votes

adb backup -f \location\on\local\drive -noapk app.package.name a fonctionné pour moi sans Root

29 votes

Utilisez cette commande pour décompresser votre fichier de sauvegarde : dd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar

0 votes

La deuxième option semble ne pas fonctionner sur 4.4.2 Peut-être parce que je n'ai pas développé l'application ?

62voto

Vous pouvez également essayer de récupérer la base de données en utilisant l'application Root Explorer. Et si cela ne fonctionne pas, vous pouvez essayer ceci :

  1. Ouvrir cmd
  2. Changez de répertoire et allez dans "Platform tools".
  3. Type ' adb shell '
  4. su
  5. Appuyez sur "Autoriser" sur l'appareil
  6. chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
  7. Ouvrez la vue DDMS dans Eclipse et de là, ouvrez 'FileExplorer' pour obtenir le fichier désiré.

Après cela, vous devriez être en mesure de parcourir les fichiers sur l'appareil enraciné.

3 votes

Je pense que l'application Root explore ne fonctionne que pour les téléphones rootés. Je vais essayer la deuxième méthode

7 votes

Impossible d'effectuer le chmod /data : Opération non autorisée

0 votes

@bofredo Je pense que c'est parce que votre téléphone n'est pas rooté. Vous devriez Rooter votre téléphone et ensuite essayer ceci

25voto

Anirudh Ramanathan Points 25113

Pour faire tout ce qui précède (c'est-à-dire accéder à des dossiers protégés à partir du téléphone lui-même), vous avez toujours besoin de Root. (Cela inclut la modification des autorisations de montage sur le dossier /data et l'accès à celui-ci).

Sans Root, l'accès à l /data directement pour lire sauf de l'intérieur de votre via le code n'est pas possible. Vous pouvez donc essayer de copier ce fichier sur la carte SD ou dans un endroit accessible, et vous devriez pouvoir y accéder normalement.

Rooter n'annulera pas votre garantie si vous avez un appareil de développeur. Je suis désolé, il n'y a pas d'autre moyen AFAIK.

0 votes

Je n'utilise pas d'appareil de développement. Le mien est un Xperia U

0 votes

Puis-je modifier la permission de l'utilisateur du dossier de données avec les commandes chmode ?

0 votes

La partition entière est montée en lecture seule. Je dirais que votre meilleure chance serait adb pull comme indiqué dans la réponse ci-dessous.

10voto

raghu Points 117

Vous pouvez obtenir l'accès à /data/data/com*.* sans rooter l'appareil, consultez ce lien http://denniskubes.com/2012/09/25/read-Android-data-folder-without-rooting/

10voto

Nguyen Minh Binh Points 6438

Utilisez l'explorateur de fichiers dans eclipse. Sélectionnez Windows => Afficher la vue => Autre ... => Explorateur de fichiers.

Une autre façon est de tirer le fichier via adb :

adb pull /system/data/data/<yourpackagename>/databases/<databasename> /sdcard

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X