답변:
에 있어야합니다 /data/app/
. 루트가 있으면 직접 액세스 할 수 있습니다. 그렇지 않은 경우을 사용해야 adb pull
합니다. 예를 들면 다음과 같습니다.
adb 풀 /data/app/myapp.apk C : \ backup \ myapp.apk
adb에 대한 추가 정보 : http://developer.android.com/guide/developing/tools/adb.html
apk 의 설치된 파일 이름 을 알고 있다면 (일부 장치에서는 myapp.apk가 아닌 myapp-1.apk 또는 myapp-2.apk 일 수 있음) adb를 실행하는 일반 사용자로서 해당 파일에 직접 액세스 할 수 있습니다. 보안 장치에서 adb를 가져올 수 있어야합니다. 그러나 설치된 apk 이름을 모르면 root 또는 aid_system이 아닌 / data / app 디렉토리를 찾아 볼 수 없습니다.
설치된 이름을 추측하는 것이 좋습니다. 평범하게 시도하고 -1.apk 및 -2.apk 등으로 시도하십시오.
다른 방법이있을 수 있습니다. 다음은 보안 장치에서 작동하지만 현재 테스트 할 장치가 없습니다.
편집 : 정확한 APK 파일 이름을 결정하기위한 새로운 아이디어
1) adb 풀 /data/system/packages.xml
2) 응용 프로그램의 codePath 항목을 살펴보십시오.
3) adb 당겨
편집 : 아래의 오래된 아이디어와 관련하여 Matthew는 / proc 아래의 프로세스 당 파일이 보안 장치에 대한 읽기 권한을 가지고 있지만 소유자가 아닌 권한이없는 uid가 읽을 때 비어 있음을 발견했습니다. 그래서 이것은 작동하지 않습니다.
1) 앱을 실행하십시오. adb가있는 머신도 필요합니다.
2) 유형
adb shell ps
앱 이름이있는 줄을 찾으십시오.
app_1 11959 907 112984 27580 ffffffff afd0c5bc S com.clevername.myapp
3) 프로세스 ID 인 두 번째 열의 숫자를 가져 와서 가상 메모리 맵을 봅니다.이 경우에는
adb shell cat /proc/11959/maps
자체 apk 파일을 메모리에 매핑 한 줄을 찾으십시오.
43e9c000-43ea3000 r--s 001f4000 b3:06 15393 /data/app/com.clevername.myapp-1.apk
4) adb 풀에 필요한 파일 이름입니다.
adb pull /data/app/com.clevername.myapp-1.apk .
/ proc의 디렉토리 권한을 검사하면 권한이없는 사용자에게 적용 할 수 있습니다. 그렇지 않은 경우 사과드립니다. 'grep'사용법에 익숙하면 수동으로 출력을 스캔하지 않도록 할 수 있습니다.
부록 : SD 카드에 설치된 앱의 이야기가 무엇인지 잘 모르겠습니다.
adb shell cat /proc/####/maps
불행히도 아무것도 반환하지 않습니다.