adb pull / data échoue

19

J'ai enraciné mon appareil HTC Evo Design 4G et j'essaye d'ajouter des données pull / data et il dit "0 fichiers pull 0 fichier ignoré"

J'ai pu extraire /System/build.prop. Comment puis-je extraire le dossier racine.

Merci iua

user3734225
la source
1
Avez-vous couru en adb rootpremier?
onik
Oui, mais la racine adb n'a pas réussi. Aucune autorisation. Mais je pourrais adb shell su. Il donne #.
user3734225

Réponses:

20

Les fichiers et répertoires ci /data/data- dessous sont protégés de "l'utilisateur moyen", vous ne pouvez donc pas simplement les "extraire" à moins que le démon ADB ne s'exécute en mode racine. À part le fichier auquel vous faites référence ( /system/buildpropest au moins lisible par toutes les applications), les dossiers ci /data/data- dessous sont "invisibles" (sauf pour root), ils ne peuvent donc même pas être lus.

Pour pouvoir les utiliser adb pull, vous devez d'abord exécuter votre démon ADB en mode root. Selon l'appareil, une simple adb rootcommande peut le faire, mais la plupart des appareils refusent de le faire. Dans ces cas, vous pouvez utiliser adbd non sécurisé de chainfire : installez cette application sur votre appareil, démarrez-la là et passez manuellement en mode «non sécurisé». Maintenant, le pulldevrait réussir.

Remarque: cela s'appelle «non sécurisé» car l'exécution en adbdtant que root donne à tout le monde, avec un ordinateur et un câble USB, accès à tout sur votre appareil. Juste au cas où vous vous poseriez la question.

Izzy
la source
Merci! En dehors de l'insécurité chainfire adbd, puis-je définir l'indicateur ro.secure dans la propriété de construction? Puis-je utiliser adb shell setprop ro.secure 0?
user3734225
Je n'ai jamais essayé cela, et je ne sais pas exactement à quoi sert ce drapeau - donc je ne peux pas le dire. (Btw: si vous avez trouvé la réponse utile, vous pouvez la "voter" (la façon SE de dire "merci") - ou "l'accepter" quand elle a résolu notre problème;)
Izzy
1
adbd travail non sécurisé pour moi :)
user3734225
6

Si votre téléphone est enraciné, il existe trois façons de contourner ce problème. La première consiste à utiliser ADBD non sécurisé .

L'autre consiste à le déplacer vers un autre dossier avec root puis à le retirer de là:

$ adb shell

shell@android:/ $ su
root@android:/ # mkdir /sdcard/data
root@android:/ # cp /data/data/* /sdcard/data
root@android:/ # exit
shell@android:/ $ exit 

$ adb pull /sdcard/data .
$ adb shell

shell@android:/ $ rm -r /sdcard/data/
shell@android:/ $ exit

Je pense que vous pouvez construire un script tel que:

echo 'echo "mkdir /sdcard/data; cp $1/* /sdcard/data; exit" | su; exit' | adb shell
adb pull /sdcard/data .
echo 'rm -r /sdcard/data; exit' | adb shell

et enregistrez-le quelque part.

Enfin, la troisième option est chmod -R 1777 /data/data, mais c'est beaucoup plus dangereux, c'est donc fortement déconseillé.

Juan
la source
Puis-je demander à quoi se $1/*réfère? Est-ce le /data/datarépertoire?
Emen
réponse merveilleuse
Dan Bradbury
5

Vous ne pouvez pas extraire directement le dossier de données car adb n'a pas accès à la liste des fichiers. Si vous souhaitez extraire le dossier / data, vous pouvez le faire via la récupération ([Récupération personnalisée, CWM / TWRP] exécutez adb pendant que l'appareil est en mode de récupération, si tout va bien une récupération personnalisée). Ou en tant que root, copiez / data dans un autre répertoire (sdcard) et tirez-le de là.

Hiemanshu Sharma
la source
Je vous remercie. Mais j'ai pu extraire le fichier build.prop dans le dossier / System. adb shell su puis je peux lister les fichiers dans le dossier racine. J'ai lu dans un paramètre de recherche Google la propriété de construction ro.secure à 0 aidera à extraire / data. Est-ce vrai? Si oui, existe-t-il un moyen de le faire?
user3734225
Vous pouvez extraire build.prop car / system a l'autorisation de listage. Vous pouvez changer ro.secure = 0 dans votre boot.img, mais c'est une étape vraiment complexe. Il serait plus facile d'installer simplement une récupération personnalisée et de le faire à partir de là.
Hiemanshu Sharma
Merci beaucoup! Mon objectif principal de l'effort est de mettre en œuvre une application médico-légale en tant que projet de dernière année universitaire. J'ai vraiment peur, l'installation d'une récupération personnalisée effacera les preuves de l'appareil. Avez-vous une idée du sujet.
user3734225
Ajout à mon commentaire précédent - À quoi sert adb shell setprop? Je ne peux pas l'utiliser dans ce cas?
user3734225
1
Un programme de récupération médico-légale qui repose sur le root du téléphone et l'activation du débogage ne semble pas très utile.
Dan Hulme
1

PARTIE I: Préparer tous les fichiers pour un ADB PULL

C'est ce qui a fonctionné pour moi: * Assurez-vous que vous utilisez la dernière version d'ADB.

  • Démarrez la session ADB:

«infocus $ adb shell»

  • Obtenez les droits SU une fois dans la session ADB, il vous suffit de taper "su" comme ceci:

'shell @ m1: / $ su'

Ensuite, vous remarquerez que le "$" devient "#", comme ceci:

'root @ m1: / #'

-Le hachage vous permet de savoir que vous êtes en mode SU.

  • Créez un dossier sur la / sdcard de l'appareil

'root @ m1: / # mkdir / sdcard / data /'

* dirigez-vous vers la racine du fichier que vous souhaitez copier -Pour moi par exemple je voulais faire une sauvegarde / copie de mes applications et le stocker sur mon ordinateur donc:

'root @ m1: / data / app #'

  • Un exemple de ce que j'obtiens si je "ls" ce dossier:

'root @ m1: / data / app # ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1
com.android.mms-1
com.android. vending-2 '

  • Afin de copier récursivement avec la commande ADB "cp", utilisez l'option "-R" et comme je voulais tout copier, j'ai utilisé le caractère générique "*" comme ceci:

'root @ m1: / data / app # cp -R * / / sdcard / data /'

  • Une fois que vous appuyez sur Entrée, si le fichier est assez volumineux, il faudra évidemment un certain temps pour copier les fichiers, de sorte que le curseur clignotera un peu paresseusement, il ressemblera s'il ne fait rien, MAIS C'EST! il s'agit de copier les fichiers, alors ne paniquez pas! et n'arrêtez pas le processus !!! -Si vous voulez simplement ouvrir une autre session shell ADB et vous diriger vers le dossier où vous transférez les fichiers et faire une vérification "ls" et vous devriez voir que le dossier vide est maintenant rempli avec les fichiers. Une fois le transfert effectué, vous récupérerez votre coque.

  • Dirigez-vous vers la "sdcard / data" et assurez-vous que tout a été copié "ls":

'root @ m1: / sdcard / data # ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1
com.android.mms-1'

DEUXIÈME PARTIE: L'ADB PULL

  • À ce stade, si vous n'avez pas créé de dossier sur la machine cible, faites-le. J'ai commodément créé un dossier appelé "apps"

  • Maintenant, faisons le insaisissable ADB PULL récursif de tous les fichiers à la fois: -Assurez-vous que vous êtes déconnecté de la session ADB, puisque nous sommes en mode SU, nous devons quitter deux fois:

'root @ m1: / sdcard / data # exit'
'shell @ m1: / $ exit'

  • À partir d'une session shell normale exécutez le "adb pull", vous n'avez pas besoin d'utiliser l'option "-a", je l'utilise personnellement pour garder l'intégrité des fichiers autant que possible. - exécutez la commande:

«AtomicusZro $ adb pull -a / sdcard / data / apps /»

Vous devriez voir quelque chose comme ceci:

"[69%] /sdcard/data/com.google.android.gms-1/base.apk: 74%"

Une fois cela fait:

'/ sdcard / data /: 296 fichiers extraits. 5,1 Mo / s (1193942288 octets en 221,352 s) »

Et le tour est joué!

Notes annexes:
.Je ne sais pas si ça compte mais j'utilise un Mac.
.Si vous êtes sur la session ADB, vous ne pouvez pas non plus obtenir les "privilèges su":
1er: Vous devez probablement donner un accès root à ADB
2e: "super utilisateur" il n'est pas installé correctement
.Double vérifiez vos commandes

Bonne chance.-

AtomicusZro
la source
N'ai-je pas besoin d'être enraciné pour ça?
neverMind9
0

travailler sur mon appareil Android 7.1. étapes pour le faire fonctionner:

  1. téléchargez la version non sécurisée adbd par leroy à https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00.apk
  2. installez sur votre téléphone.
  3. exécutez le shell adb dans votre répertoire adb
  4. tapez "su" pour que vous puissiez obtenir le "#"
  5. tapez "setenforce 0"
  6. activer adbd non sécurisé. le débogage USB s'éteint
  7. activer et désactiver le débogage USB à partir des options de développement
  8. désactivez puis réactivez adbd non sécurisé.

vous pouvez maintenant ajouter adb dans votre ordinateur.

J'espère que cela t'aides


Haris

Haris Cheong
la source