adb pull / data fehlgeschlagen

19

Ich habe mein Gerät HTC Evo Design 4G gerootet und ich versuche, ADB zu ziehen / Daten Daten und es heißt "0 Dateien ziehen 0 Datei übersprungen"

Ich konnte /System/build.prop ziehen. Wie kann ich Stammordner ziehen.

Vielen Dank iua

user3734225
quelle
1
Bist du adb rootzuerst gelaufen ?
Onik
Ja, aber adb root war kein Erfolg. Keine Erlaubnis. Aber ich könnte adb Shell su. Es gibt #.
User3734225

Antworten:

20

Die folgenden Dateien und Verzeichnisse /data/datasind vor dem "Durchschnittsbenutzer" geschützt, sodass Sie sie nur dann "ziehen" können, wenn der ADB-Dämon im Stammmodus ausgeführt wird. Anders als die Datei , die Sie mit Bezug wurden ( /system/buildpropzumindest ist lesbar von allen Anwendungen), Ordner unten /data/datasind „unsichtbar“ ( mit Ausnahme der Wurzel), so dass sie nicht einmal gelesen werden können.

Damit Sie sie verwenden adb pullkönnen, müssen Sie Ihren ADB-Daemon zuerst im Root-Modus ausführen. Je nach Gerät kann dies mit einem einfachen adb rootBefehl geschehen - die meisten Geräte lehnen dies jedoch ab. In diesen Fällen können Sie chainfire's adbd insecure verwenden : Installieren Sie diese App auf Ihrem Gerät, starten Sie sie dort und wechseln Sie manuell in den "unsicheren" Modus. Nun pullsollte das gelingen.

Bemerkung: Es heißt "unsicher", weil adbdals root jeder mit einem Computer und einem USB-Kabel auf alles auf Ihrem Gerät zugreifen kann. Nur für den Fall, dass Sie sich fragen.

Izzy
quelle
Danke dir! Kann ich, abgesehen vom Chainfire adbd insecure, das Flag ro.secure in der Build-Eigenschaft setzen? Kann ich die AdB-Shell setprop ro.secure 0 verwenden?
User3734225
Ich habe das noch nie ausprobiert und weiß auch nicht genau, wofür diese Flagge gedacht ist - deshalb kann ich es nicht sagen. (Übrigens: Wenn Sie die Antwort nützlich fanden, können Sie sie gerne "verbessern" (die SE-Methode, um "Danke" zu sagen) - oder "akzeptieren", wenn sie unser Problem gelöst hat;)
Izzy
1
adbd unsichere Arbeit für mich :)
user3734225
6

Wenn Ihr Telefon verwurzelt ist, gibt es drei Möglichkeiten, dies zu umgehen. Der erste ist, ADBD unsicher zu verwenden .

Das andere ist, es in einen anderen Ordner mit root zu verschieben und dann von dort zu ziehen:

$ 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

Ich denke, Sie können ein Skript wie das Folgende erstellen:

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

und speichern Sie es irgendwo.

Schließlich ist die dritte Option chmod -R 1777 /data/data, aber dies ist viel unsicherer, daher wird dringend davon abgeraten.

Juan
quelle
Darf ich fragen, worauf $1/*sich das bezieht? Ist es das /data/dataVerzeichnis?
Emen
vonderful Antwort
Dan Bradbury
5

Sie können Datenordner nicht direkt abrufen, da adb keinen Dateilistenzugriff darauf hat. Wenn Sie den Ordner / data ziehen möchten, können Sie dies über die Wiederherstellung tun ([Benutzerdefinierte Wiederherstellung, CWM / TWRP] führen Sie adb aus, während sich das Gerät im Wiederherstellungsmodus befindet, hoffentlich eine benutzerdefinierte Wiederherstellung). Oder kopieren Sie als root / data in ein anderes Verzeichnis (sdcard) und ziehen Sie es von dort ab.

Hiemanshu Sharma
quelle
Vielen Dank. Aber ich konnte die Datei build.prop in den Ordner / System ziehen. adb shell su und dann kann ich dateien im root ordner auflisten. Ich habe in einer Google-Suche gelesen, dass die Einstellung "ro.secure build property" auf "0" beim Abrufen von / data hilft. Ist das wahr? Wenn ja, gibt es eine Möglichkeit, dies zu tun?
User3734225
Sie können build.prop abrufen, da / system die Berechtigung zum Auflisten hat. Sie können ro.secure = 0 in Ihrer boot.img ändern, aber das ist ein sehr komplexer Schritt. Es wäre einfacher, eine benutzerdefinierte Wiederherstellung zu installieren und von dort aus zu starten.
Hiemanshu Sharma
Vielen Dank! Mein Hauptzweck ist die Implementierung eines forensischen Antrags als Abschlussprojekt der Universität. Ich habe große Angst, dass durch die Installation der benutzerdefinierten Wiederherstellung die Daten auf dem Gerät gelöscht werden. Haben Sie eine Idee zu diesem Thema?
User3734225
Hinzufügen zu meinem vorherigen Kommentar - Was ist die Verwendung von ADB Shell Setprop? Kann ich es in diesem Fall nicht benutzen?
User3734225
1
Ein forensisches Wiederherstellungsprogramm, bei dem das Telefon als Root fungiert und das Debugging aktiviert ist, ist nicht sehr nützlich.
Dan Hulme
1

TEIL I: Alle Dateien für einen ADB PULL vorbereiten

Das hat bei mir funktioniert: * Stellen Sie sicher, dass Sie die neueste ADB-Version verwenden.

  • Starten Sie die ADB-Sitzung:

'infocus $ adb shell'

  • Holen Sie sich die SU-Rechte einmal in der ADB-Sitzung und geben Sie "su" wie folgt ein:

'shell @ m1: / $ su'

Dann werden Sie feststellen, dass das "$" wie folgt zu "#" wird:

'root @ m1: / #'

-Der Hash lässt Sie wissen, dass Sie sich im SU-Modus befinden.

  • Erstellen Sie einen Ordner auf der / sdcard des Geräts

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

* Gehen Sie zum Stammverzeichnis der Datei, die Sie kopieren möchten. - Für mich wollte ich beispielsweise ein Backup / eine Kopie meiner Apps erstellen und auf meinem Computer speichern.

'root @ m1: / data / app #'

  • Ein Beispiel dafür, was ich bekomme, wenn ich diesen Ordner "ls":

'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 '

  • Um mit dem ADB-Befehl "cp" rekursiv zu kopieren, verwenden Sie die Option "-R". Da ich alles darin kopieren wollte, habe ich den Platzhalter "*" folgendermaßen verwendet:

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

  • Sobald Sie die Eingabetaste gedrückt haben, dauert es offensichtlich eine Weile, bis die Datei kopiert ist. Der Cursor blinkt dann ein wenig, aber es sieht so aus, als würde er nichts tun, ABER ES IST! Es kopiert die Dateien, also keine Panik! und halt den Prozess nicht an !!! -Wenn Sie nur eine weitere ADB-Shell-Sitzung öffnen möchten, gehen Sie zu dem Ordner, in den Sie die Dateien übertragen, und führen Sie eine "ls" -Prüfung durch. Sie sollten feststellen, dass der leere Ordner jetzt mit den Dateien gefüllt wird. Sobald die Übertragung abgeschlossen ist, erhalten Sie Ihre Shell zurück.

  • Gehen Sie zu "sdcard / data" und stellen Sie sicher, dass alles mit "ls" kopiert wurde:

'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'

TEIL II: Der ADB PULL

  • Wenn Sie zu diesem Zeitpunkt noch keinen Ordner auf dem Zielcomputer erstellt haben, tun Sie dies. Ich habe bequem einen Ordner namens "apps" erstellt

  • Lassen Sie uns nun den schwer fassbaren rekursiven ADB-PULL aller Dateien auf einmal ausführen: - Stellen Sie sicher, dass Sie von der ADB-Sitzung abgemeldet sind, da wir uns im SU-Modus befinden. Wir müssen zweimal beenden:

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

  • Von einer normalen Shell-Sitzung aus führen Sie den "adb pull" aus. Sie müssen die Option "-a" nicht verwenden. Ich persönlich verwende sie, um die Integrität der Dateien so weit wie möglich zu erhalten. - Führen Sie den Befehl aus:

'AtomicusZro $ adb pull -a / sdcard / data / apps /'

Sie sollten so etwas sehen:

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

Sobald es fertig ist:

'/ sdcard / data /: 296 Dateien wurden gezogen. 5,1 MB / s (1193942288 Byte in 221,352 Sekunden)

Und Voila!


Nebenbemerkungen :. Weiß nicht, ob es darauf ankommt, aber ich benutze einen Mac.
.Wenn Sie während der ADB-Sitzung auch keine "su-Berechtigungen" erhalten können:
1.: Möglicherweise müssen Sie ADB-Root-Zugriff gewähren.
2.: "
Superuser " ist nicht korrekt installiert. Überprüfen Sie Ihre Befehle

Viel Glück.-

AtomicusZro
quelle
Muss ich dafür nicht verwurzelt sein?
neverMind9
0

Arbeiten an meinem Android 7.1-Gerät. Schritte, um es zum Laufen zu bringen:

  1. Laden Sie die unsichere adbd-Version von Leroy unter https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00.apk herunter
  2. Installieren Sie in Ihrem Telefon.
  3. Führen Sie die ADB-Shell in Ihrem ADB-Verzeichnis aus
  4. tippe "su" damit du das "#" bekommst
  5. tippe "setenforce 0"
  6. aktiviere unsichere adbd. Das USB-Debuggen wird deaktiviert
  7. Schalten Sie das USB-Debugging in den Entwickleroptionen ein und aus
  8. Schalten Sie unsichere ADBD aus und wieder ein.

du kannst jetzt adb in deinen pc ziehen.

Hoffe das hilft


Haris

Haris Cheong
quelle