Comment accéder au dossier de données / données dans l'appareil Android?


Answers

Vous pouvez également essayer d'extraire la base de données à l'aide de l'application de l'explorateur racine. Et si cela ne fonctionne pas, vous pouvez essayer ceci:

  1. Ouvrir cmd
  2. Changez votre répertoire et allez dans "Outils de plate-forme"
  3. Tapez ' 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 ouvrez 'FileExplorer' pour obtenir le fichier désiré

Après cela, vous devriez être en mesure de parcourir les fichiers sur le périphérique enraciné.

Question

Je développe 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 de sqlite manager

Mais je ne peux pas accéder à ce fichier dans mon téléphone Android.
Je google et il dit que je dois enraciner mon téléphone pour le faire, mais je ne veux pas le faire. (Nouveau téléphone, problèmes de garantie et problèmes de sécurité)

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

Est-ce que je peux changer les permissions d'utilisateur pour les data/data..... répertoire data/data..... sans l'enraciner?




Sur un appareil enraciné , la solution correcte est la suivante:

Open cmd
Change your directory and go into 'Platform tools'
Type 'adb shell'
su
Press 'Allow' on device
chmod 777 /data /data/data /data/data/*
Open DDMS view in Eclipse/IntelliJ and from there open 'FileExplorer' to get your desired file

La solution originale a fonctionné, mais le chmod retournerait le répertoire inconnu. La modification de la commande chmod dans / data / data / * donnait accès à tous les sous-dossiers du répertoire de données à partir de DDMS dans Intellij. Je suppose que la même solution est vraie pour Eclipse DDMS.

MISE À JOUR Donc, ce que j'ai trouvé est étrange. J'utilise un Nexus 6 en utilisant DDMS dans IntelliJ (Android Device Monitor). J'ai construit une petite application de démarrage. Cette application enregistre les données dans un fichier .csv dans data / data / com.example.myapp / files

Quand j'ai commencé à essayer d'accéder à ce fichier sur mon Nexus 6, j'ai trouvé que je devais rooter l'appareil .. Je pouvais voir le dossier de données, mais essayer de l'ouvrir ne fonctionnerait pas. Comme mentionné en ligne dans d'autres endroits, le expand + disparaîtrait puis réapparaîtrait peu après (notez, il y a des solutions sur le Web qui prétendent permettre l'accès à ces dossiers sans enracinement, je ne les ai pas trouvés trop tard, et je suis Je ne sais pas si je préfère ne pas root de toute façon ((je préfère être en mesure de le faire manuellement que de s'appuyer sur une application ou une invite de commande pour me donner mes solutions))). J'ai enraciné mon 6 et essayé de nouveau DDMS.

À ce stade, il m'a montré le dossier de données et je pourrais développer le dossier et voir le com. répertoires, mais je ne pouvais pas ouvrir l'un d'entre eux. C'est quand j'ai découvert la solution ci-dessus. Les instructions initiales ne fonctionneraient pas sur cette partie:

chmod 777 /data /data/data /data/data/com.application.pacakage /data/data/com.application.pacakage/*

C'est quand j'ai essayé la solution que j'ai postée:

chmod 777 /data /data/data /data/data/*

Cette solution a semblé fonctionner, mais seulement sur certains dossiers. Je pouvais maintenant développer mon dossier myapp, mais je ne pouvais pas développer le répertoire des fichiers dedans.

À ce stade, j'ai joué pendant un moment puis j'ai pensé pourquoi ne pas l'essayer dans le répertoire dont j'ai besoin plutôt que d'essayer ces entrées génériques.

chmod 777 /data /data/data /data/data/com.example.myapp/*

Suivi par:

chmod 777 /data /data/data /data/data/com.example.myapp/files

Ces commandes m'ont permis de développer et d'afficher les fichiers dans le répertoire de mon application pour confirmer que le fichier .csv était enregistré correctement.

J'espère que cela aide quelqu'un. J'ai lutté avec ça pendant des heures!

(pour ajouter encore un peu, curieusement, les permissions ne passaient pas au fichier .csv qui passait dans le répertoire files.) mes permissions de répertoire de fichiers lisaient drwxrwxrwx et mes autorisations de fichier log.csv lisaient -rw-rw --- - .. juste FYI)




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

Sans racine, accéder aux /data directement à lire, sauf depuis votre application via le code, n'est pas possible. Vous pouvez donc essayer de copier ce fichier sur sdcard ou dans un endroit accessible, et vous devriez pouvoir y accéder normalement.

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




L'un des moyens simples est de créer votre base de données sur SD-Card. Parce que vous ne pouvez pas accéder au dossier de données de votre téléphone dans la mémoire interne, sauf si vous avez rooté votre téléphone. Alors pourquoi ne pas simplement créer votre base de données sur SD-Card.

De plus, si vous le souhaitez, vous pouvez écrire un code de copie de fichier pour copier votre fichier de base de données existant (de la mémoire interne) vers la mémoire externe sans nécessiter de racine.




peut être pour accéder à ce dossier, vous avez besoin de droits administratifs.

donc vous avez deux options: -

  1. root votre appareil et que d'essayer d'accéder à ce dossier
  2. utiliser l'émulateur

ps: si vous utilisez l'une des deux options ci-dessus, vous pouvez accéder à ce dossier en suivant ces étapes

Ouvrez la perspective DDMS -> votre appareil -> (Sélectionnez l'Explorateur de fichiers à partir des options de la fenêtre de droite) sélectionnez package -> data -> data -> nom du package -> fichiers

et à partir de là, vous pouvez tirer votre fichier




vous pouvez copier ce fichier db vers un emplacement dans l'explorateur eclipse (par exemple: sdcard ou PC), et vous pouvez utiliser sqlite pour accéder et mettre à jour ce fichier db.




  1. Ouvrez votre invite de commande
  2. Changez le répertoire en E: \ Android \ adt-bundle-windows-x86_64-20140702 \ adt-bundle-windows-x86_64-20140702 \ sdk \ plateforme-outils
  3. Entrez les commandes ci-dessous
  4. adb -d shell
  5. run-as com.your.packagename cat databases/database.db > /sdcard/database.db
  6. Changez le répertoire en cd /sdcard pour vous assurer que database.db est là.
  7. adb pull /sdcard/database.db ou simplement vous pouvez copier database.db à partir de l'appareil.





Links