adb 풀 / 데이터 실패


19

장치 HTC Evo Design 4G를 근절했으며 / data 데이터를 가져 와서 adb를 시도하려고합니다.

/System/build.prop를 가져올 수있었습니다. 루트 폴더를 어떻게 가져올 수 있습니까?

감사합니다


1
먼저 달려 봤어 adb root?
onik

예, 그러나 adb root는 성공하지 못했습니다. 비허가. 그러나 나는 쉘 su를 adb 할 수 있었다. #을줍니다.
user3734225

답변:


20

아래의 파일과 디렉토리 /data/data는 "평균 사용자"로부터 보호되므로 ADB 데몬이 루트 모드에서 실행되고 있지 않으면 단순히 "풀"할 수 없습니다. 언급 한 파일 ( /system/buildprop적어도 모든 앱 에서 읽을 수 있음) /data/data이외의 폴더 는 "보이지 않음"(루트 제외)이므로 읽을 수 없습니다.

adb pull이들을 사용할 수 있으려면 먼저 ADB 데몬을 루트 모드에서 실행해야합니다. 장치에 따라 간단한 adb root명령으로도 가능하지만 대부분의 장치는 거부합니다. 이 경우 chainfire의 adbd insecure를 사용할 수 있습니다 : 장치 에이 응용 프로그램을 설치하고 시작한 다음 수동으로 "안전하지 않은"모드로 전환하십시오. 이제 pull성공해야합니다.

비고 : adbd루트로 실행 하면 모든 사용자가 컴퓨터와 USB 케이블을 사용하여 모든 장치에 액세스 할 수 있으므로 "안전하지 않은"이라고 합니다. 궁금한 경우를 대비하여.


그대여! 체인 불 adbd의 안전하지 않은 것 외에도 빌드 속성에 ro.secure 플래그를 설정할 수 있습니까? adb shell setprop ro.secure 0을 사용할 수 있습니까?
user3734225

나는 그것을 시도하지도 않았고 그 깃발이 무엇인지 정확히 알지 못해서 말할 수 없다. (Btw : 답변이 유용하다고 생각되면 답변을 "투표" ( "감사"라고 말하는 SE 방식) 또는 " 문제를 해결할 때 "수락 "하는 것이 좋습니다 .)
Izzy

1
adbd 불안전 한 일 :)
user3734225

6

휴대 전화가 뿌리 내린 경우이 문제를 해결하는 세 가지 방법이 있습니다. 첫 번째는 안전하지 않은 ADBD 를 사용하는 입니다.

다른 하나는 루트가있는 다른 폴더로 이동 한 다음 거기에서 가져 오는 것입니다.

$ 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

다음과 같은 스크립트를 작성할 수 있다고 생각합니다.

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

어딘가에 저장하십시오.

마지막으로 세 번째 옵션은입니다 chmod -R 1777 /data/data. 그러나이 방법은 훨씬 안전하지 않으므로 사용하지 않는 것이 좋습니다.


무엇을 말하는지 물어봐도 $1/*될까요? 그것은인가 /data/data디렉토리?
Emen

독창적 인 답변
Dan Bradbury 1

5

adb에는 파일 목록 액세스 권한이 없으므로 데이터 폴더를 직접 가져올 수 없습니다. / data 폴더를 가져 오려면 복구를 통해이를 수행 할 수 있습니다 ([사용자 정의 복구, CWM / TWRP] 장치가 복구 모드에있는 동안 adb를 실행, 희망적으로 사용자 정의 복구). 또는 루트로 / data를 다른 디렉토리 (sdcard)에 복사 한 후 여기에서 가져 오십시오.


감사합니다. 그러나 / System 폴더에서 build.prop 파일을 가져올 수있었습니다. adb shell su 다음 루트 폴더에 파일을 나열 할 수 있습니다. Google 검색 설정 ro.secure build 속성을 0으로 읽으면 / data를 가져 오는 데 도움이됩니다. 이것이 사실입니까? 그렇다면 그렇게 할 수있는 방법이 있습니까?
user3734225

/ system에 리스팅 권한이 있으므로 build.prop를 가져올 수 있습니다. boot.img에서 ro.secure = 0을 변경할 수 있지만 이는 매우 복잡한 단계입니다. 사용자 지정 복구를 설치하고 거기서 수행하는 것이 더 쉬울 것입니다.
Hiemanshu Sharma

대단히 감사합니다! 노력의 주요 목적은 대학 마지막 해 프로젝트로 법의학 관련 응용 프로그램을 구현하는 것입니다. 사용자 지정 복구를 설치하면 장치에서 증거가 사라질 것입니다. 당신은 그 주제에 대해 어떤 생각을 가지고 있습니까?
user3734225

내 이전 의견에 추가-adb shell setprop의 사용법은 무엇입니까? 이 경우에는 사용할 수 없습니까?
user3734225

1
전화를 기반으로하고 디버깅을 설정 한 포렌식 복구 프로그램은 그다지 유용하지 않습니다.
Dan Hulme

1

1 부 : ADB PULL을위한 모든 파일 준비

이것이 나를 위해 일한 것입니다 : * 최신 ADB 버전을 사용하고 있는지 확인하십시오.

  • ADB 세션을 시작하십시오.

'infocus $ adb 쉘'

  • ADB 세션에서 SU 권한을 한 번 얻으면 다음과 같이 "su"를 입력하면됩니다.

'shell @ m1 : / $ su'

그러면 다음과 같이 "$"가 "#"이됩니다.

'root @ m1 : / #'

해시는 당신이 SU 모드에 있음을 알려줍니다.

  • 장치의 / sdcard에 폴더를 만듭니다.

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

* 복사하려는 파일의 루트로 이동-예를 들어, 내 응용 프로그램의 백업 / 복사를 만들고 컴퓨터에 저장하려고했습니다.

'root @ m1 : / data / app #'

  • 해당 폴더를 "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. 자동 판매기 -2 '

  • ADB "cp"명령으로 재귀 적으로 복사하려면 옵션 "-R"을 사용하고 모든 것을 복사하고 싶었으므로 와일드 카드 "*"를 다음과 같이 사용했습니다.

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

  • Enter 키를 누르면 파일이 상당히 크면 분명히 파일을 복사하는 데 시간이 걸리므로 커서가 약간 깜박입니다. 아무것도하지 않는 것처럼 보일 것입니다. 파일을 복사하고 있으므로 당황하지 마십시오! 그리고 프로세스를 멈추지 마십시오 !!! -다른 ADB 쉘 세션을 열고 파일을 전송하는 폴더로 가서 "ls"점검을 수행하면 빈 폴더가 파일로 채워져 있음을 알 수 있습니다. 전송이 완료되면 쉘을 다시 가져옵니다.

  • "sdcard / data"로 가서 모든 것이 "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'

제 2 부 : ADB 풀

  • 이 시점에서 대상 시스템에 폴더를 작성하지 않은 경우 작성하십시오. "앱"이라는 폴더를 편리하게 만들었습니다.

  • 이제 모든 파일의 재귀 적 재귀 ADB PULL을 한 번에 수행 할 수 있습니다. -SU 모드에 있으므로 ADB 세션에서 로그 아웃했는지 확인하십시오.

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

  • 일반적인 쉘 세션에서 "adb pull"을 실행하면 "-a"옵션을 사용할 필요가 없습니다. 개인적으로 파일의 무결성을 최대한 유지하기 위해이 옵션을 사용합니다. -명령을 실행하십시오 :

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

다음과 같이 보일 것입니다 :

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

완료되면 :

'/ sdcard / data / : 296 개 파일을 가져 왔습니다. 5.1MB / s (221.352 초의 1193942288 바이트) '

그리고 짜잔!

참고 사항 :.
중요한지는 모르겠지만 Mac을 사용합니다.
아시아 개발 은행 세션에 당신도 "SU 권한"을 얻을 수는 없지만 .If :
1 일 : 당신은 아마 ADB 루트 액세스 줄 필요가
2 위를 "슈퍼 사용자"가 제대로 설치되지 않은 것
두 배 수표를 당신의 명령

행운을 빕니다.-


그 뿌리를 뽑을 필요가 없습니까?
neverMind9

0

내 안드로이드 7.1 장치에서 작동합니다. 작동시키는 단계 :

  1. https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00.apk 에서 leroy의 adbd 안전하지 않은 버전을 다운로드 하십시오.
  2. 휴대 전화에 설치하십시오.
  3. adb 디렉토리에서 adb 쉘을 실행하십시오.
  4. "su"를 입력하면 "#"을 얻을 수 있습니다.
  5. "setenforce 0"유형
  6. 안전하지 않은 adbd를 활성화하십시오. USB 디버깅 해제
  7. 개발자 옵션에서 USB 디버깅 켜고 끄기
  8. 안전하지 않은 adbd를 껐다가 다시 켜십시오.

당신은 지금 당신의 PC에 adb 당겨 수 있습니다.

도움이 되었기를 바랍니다


하리스

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.