설치된 앱의 .apk 파일을 얻을 수 있습니까?


9

Qualcomm 장치에 내 앱 .apk 파일을 배포했습니다. 이제 내 불운으로 인해이 앱이 개발 된 랩톱이 도난당했습니다. 그래서 나와 함께 내 앱 코드가 없습니다. 그러나 이전에 앱을 설치 한 장치가 있습니다.

그래서 내 질문은,이 장치에서 내 앱 .apk 파일을 얻을 수 있습니까? 그렇다면 어떻게해야하는지 알려주십시오.

도움을 주시면 감사하겠습니다.

감사합니다, Gaurav

답변:



4

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불행히도 아무것도 반환하지 않습니다.
Matthew 읽기

@Matthew ... 홀수, 보안 사례를 시뮬레이트하고 있으며 proc 파일의 대부분이 0 크기이지만 읽을 수는 있습니다. 내가 읽기 권한을 가지고 있는지 확인하기 전에. 어쩌면 / proc 읽기 도구가 지속적인 액세스 오류 스트림을 얻지 못하도록 권한 대신에 null을 사용하여 수행했을 수 있습니다. 아 잘 ... 설치된 apk 이름 변형을 추측하는 것이 가장 좋습니다.
Chris Stratton

내 apk 파일 이름은 모두 미쳤고 이해할 수 없었지만 packages.xml을 사용하여 실제 이름을 알아 냈습니다. :)
paleozogt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.