adb pull / data zawiedzie


19

Zrootowałem swoje urządzenie HTC Evo Design 4G i próbuję adb pull / data data i mówi „0 plików ściągnij 0 plików pominięto”

Byłem w stanie pobrać /System/build.prop. Jak mogę wyciągnąć folder główny?

Dziękuję Iua


1
Czy pobiegłeś adb rootpierwszy?
onik

Tak, ale rootowanie adb nie było sukcesem. Brak pozwolenia. Ale mógłbym adb shell su. To daje #.
user3734225

Odpowiedzi:


20

Pliki i katalogi poniżej /data/datasą chronione przed „przeciętnym użytkownikiem”, więc nie można ich po prostu „wyciągnąć”, chyba że demon ADB działa w trybie root. Poza plikiem, o którym mowa ( /system/buildpropjest co najmniej czytelny dla wszystkich aplikacji), poniższe foldery /data/datasą „niewidoczne” (z wyjątkiem katalogu głównego), więc nie można ich nawet odczytać.

Aby móc z adb pullnich korzystać, musisz najpierw uruchomić demona ADB w trybie root. W zależności od urządzenia adb rootmoże to zrobić proste polecenie - ale większość urządzeń odmówi. W takich przypadkach możesz użyć opcji adbd niezabezpieczonej Chainfire : zainstaluj tę aplikację na swoim urządzeniu, uruchom ją tam i ręcznie przełącz w tryb „niepewny”. Teraz pullpowinno się powieść.

Uwaga: Nazywa się to „niepewnym”, ponieważ działanie adbdjako root daje wszystkim z komputerem i kablem USB dostęp do wszystkiego na twoim urządzeniu. Na wypadek, gdybyś się zastanawiał.


Dziękuję ci! Oprócz niezabezpieczonego chainfire adbd, czy mogę ustawić flagę ro.secure we właściwości kompilacji? Czy mogę użyć powłoki adb setprop ro.secure 0?
user3734225

Nigdy tego nie próbowałem, ani nie wiem dokładnie, do czego służy ta flaga - więc nie mogę powiedzieć. (BTW: jeśli znalazłeś odpowiedź użyteczne, zapraszamy do „upvote” to (SE sposób powiedzieć „dziękuję”) - lub „Akceptuję” go , gdy go rozwiązać nasz problem;)
Izzy

1
adbd niepewna praca dla mnie :)
user3734225

6

Jeśli Twój telefon jest zrootowany, możesz to obejść na trzy sposoby. Pierwszym z nich jest użycie niepewnego ADBD .

Drugim jest przeniesienie go do innego folderu z rootem, a następnie wyciągnięcie go stamtąd:

$ 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

Myślę, że możesz zbudować skrypt, taki jak:

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

i gdzieś to zapisz.

Wreszcie trzecia opcja jest chmod -R 1777 /data/data, ale jest to znacznie bardziej niebezpieczne, więc jest bardzo odradzane.


Czy mogę zapytać o co chodzi $1/*? Czy to /data/datakatalog?
Emen,

wspaniała odpowiedź
Dan Bradbury

5

Nie można pobrać folderu danych bezpośrednio, ponieważ adb nie ma do niego dostępu do listy plików. Jeśli chcesz wyciągnąć folder / data, możesz to zrobić poprzez odzyskiwanie ([Odzyskiwanie niestandardowe, CWM / TWRP] uruchom adb, gdy urządzenie jest w trybie odzyskiwania, mam nadzieję, że odzyskiwanie niestandardowe). Lub jako root, skopiuj / dane do innego katalogu (sdcard) i wyciągnij go stamtąd.


Dziękuję Ci. Ale udało mi się wyciągnąć plik build.prop z folderu / System. adb shell su, a następnie mogę wyświetlić listę plików w folderze głównym. Czytam w ustawieniach wyszukiwania Google właściwość ro.secure build na 0 pomoże wyciągnąć / dane. Czy to prawda? Jeśli tak, to czy można to zrobić?
user3734225

Możesz pobrać build.prop, ponieważ / system ma uprawnienia do wyświetlania. Możesz zmienić ro.secure = 0 w swoim boot.img, ale jest to naprawdę skomplikowany krok. Łatwiej byłoby po prostu zainstalować niestandardowe odzyskiwanie i zrobić to stamtąd.
Hiemanshu Sharma

Dziękuję Ci bardzo! Moim głównym celem tych wysiłków jest wdrożenie aplikacji kryminalistycznej jako projektu uniwersyteckiego w ostatnim roku. Naprawdę się obawiam, że instalowanie niestandardowego odzyskiwania usunie dane z urządzenia. Czy masz jakieś pojęcie na ten temat?
user3734225

Dodanie do mojego poprzedniego komentarza - Do czego służy setb shell adb? Czy nie mogę tego użyć w tym przypadku?
user3734225

1
Program odzyskiwania danych, który polega na zrootowaniu telefonu i włączeniu debugowania, nie wydaje się bardzo przydatny.
Dan Hulme

1

CZĘŚĆ I: Przygotowanie wszystkich plików do ADB PULL

Właśnie to działało dla mnie: * Upewnij się, że używasz najnowszej wersji ADB.

  • Rozpocznij sesję ADB:

„infocus $ adb shell”

  • Zdobądź uprawnienia SU raz w sesji ADB, wszystko co musisz zrobić, to wpisać „su” w następujący sposób:

„shell @ m1: / $ su”

Wtedy zauważysz, że „$” staje się „#”, tak:

„root @ m1: / #”

- Hash informuje, że jesteś w trybie SU.

  • Utwórz folder na karcie / sd urządzenia

„root @ m1: / # mkdir / sdcard / data /”

* przejdź do katalogu głównego pliku, który chcesz skopiować. Na przykład chciałem wykonać kopię zapasową / kopię moich aplikacji i zapisać ją na komputerze, aby:

„root @ m1: / data / app #”

  • Przykład tego, co otrzymam, jeśli „ls” ten folder:

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

  • Aby kopiować rekurencyjnie za pomocą polecenia „cp” ADB, użyj opcji „-R”, a ponieważ chciałem wszystko w nim skopiować, użyłem symbolu wieloznacznego „*” w następujący sposób:

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

  • Gdy naciśniesz klawisz Enter, jeśli plik jest dość duży, jego skopiowanie zajmie oczywiście chwilę, więc kursor będzie leniwie mrugał, będzie wyglądać, jakby nic nie robił, ALE JEST! kopiuje pliki, więc nie panikuj! i nie zatrzymuj procesu !!! -Jeśli chcesz po prostu otworzyć kolejną sesję powłoki ADB i udać się do folderu, w którym przenosisz pliki, i wykonać kontrolę „ls”, powinieneś zobaczyć, że pusty folder jest teraz zapełniany plikami. Po zakończeniu transferu odzyskasz swoją skorupę.

  • Przejdź do „sdcard / data” i upewnij się, że wszystko zostało skopiowane „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'

CZĘŚĆ II: ADB PULL

  • Do tego momentu, jeśli nie utworzyłeś folderu na komputerze docelowym, zrób to. Dogodnie utworzyłem folder o nazwie „aplikacje”

  • Teraz zróbmy nieuchwytną rekurencyjną ADB PULL wszystkich plików jednocześnie: -Upewnij się, że wylogowałeś się z sesji ADB, ponieważ byliśmy w trybie SU, musimy wyjść dwukrotnie:

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

  • Z normalnej sesji powłoki uruchom „adb pull”, nie musisz używać opcji „-a”, ja osobiście używam jej, aby zachować jak największą integralność plików. - uruchom polecenie:

„AtomicusZro $ adb pull -a / sdcard / data / apps /”

Powinieneś zobaczyć coś takiego:

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

Po zakończeniu:

'/ sdcard / data /: ściągnięto pliki 296. 5,1 MB / s (1193942288 bajtów w 221,352 s) ”

I Voila!

Dodatkowe uwagi: Nie
wiem, czy to ważne, ale używam komputera Mac.
.Jeśli podczas sesji ADB nie możesz uzyskać „uprawnień” su:
1. Najprawdopodobniej musisz przyznać dostęp do katalogu głównego ADB
2.: „superużytkownik” nie jest poprawnie zainstalowany.
Podwójnie sprawdź swoje polecenia

Powodzenia.-


Czy nie muszę być do tego zrootowany?
neverMind9,

0

działa na moim urządzeniu z Androidem 7.1. kroki, aby uruchomić to:

  1. pobierz niezabezpieczoną wersję adbd przez leroy ze strony https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00.apk
  2. zainstaluj w swoim telefonie.
  3. uruchom powłokę adb w katalogu adb
  4. wpisz „su”, aby uzyskać „#”
  5. wpisz „setenforce 0”
  6. włącz niepewne adbd. debugowanie USB wyłącza się
  7. włącz i wyłącz debugowanie USB w opcjach programistycznych
  8. wyłącz niepewne adbd i włącz ponownie.

możesz teraz adb podciągnąć do swojego komputera.

Mam nadzieję że to pomoże


Haris

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.