설치된 Android 앱에서 APK 파일 추출
법적 및 안전 고지: 이 문서는 교육 목적으로만 작성되었습니다. 장치에서 APK를 추출하는 것은 애플리케이션 귀하는 귀하가 소유한 장치에 이미 합법적으로 설치했습니다.의 개인 백업을 위한 것입니다. XAPK to APK는 저작권이 있거나 유료이거나 불법 복제된 애플리케이션을 호스팅, 배포, 링크하거나 이에 대한 액세스를 촉진하지 않습니다. 유료 또는 저작권이 있는 앱의 추출된 APK를 재배포하는 것은 허용되지 않습니다. 전체 약관은 면책조항를 참조하세요.
여러분의 휴대폰에 몇 시간을 들여 설정한 놀라운 앱이 있는데, 그 앱이 Play 스토어에서 제거되었다는 사실을 알게 되었습니다. 아니면 새 장치로 전환하여 만일의 경우에 대비해 자주 사용하는 도구의 오프라인 복사본을 원할 수도 있습니다. 현재 설치된 앱의 APK 파일 추출가 솔루션입니다.
아래에서는 루트 없이 휴대폰에서 APK를 가져오는 방법(백업에 유용함)과 나중에 온라인 분석 도구를 사용하여 추출된 파일을 확인하는 방법을 안내합니다.
주요 시사점
- 거의 모든 앱의 APK 파일을 기기의 내부 저장소에서 직접 추출할 수 있습니다.
- 최신 앱은 특수 추출기가 필요한 APK 분할를 사용하는 경우가 많습니다.
- 루트(수퍼유저) 액세스는 일반적으로 표준 애플리케이션을 백업하기 위한 필요하지 않음입니다.
- 추출이 완료되면 파일을 SD 카드, PC 또는 클라우드 저장소로 전송할 수 있습니다.
APK를 추출하는 이유는 무엇입니까?
"방법"으로 넘어가기 전에 APK 백업 라이브러리를 유지해야 하는 이유는 다음과 같습니다.
- 중단된 앱 보존: 개발자가 스토어에서 앱을 제거하더라도 설치 가능한 사본은 계속 유지됩니다.
- 레거시 하드웨어 지원: 최신 Android 버전이 필요하도록 공식 앱을 업데이트할 때 이전 태블릿에서 작동하는 버전을 유지하세요.
- 버전 롤백: 업데이트로 인해 버그가 발생하는 경우 추출된 백업을 다시 설치하고 다시 업무를 시작할 수 있습니다.
- 앱 공유: 셀룰러 데이터를 사용하지 않고 Bluetooth 또는 케이블을 통해 친구에게 특정 앱 버전을 보냅니다.
방법 1: APK 추출기 앱 사용(루트 없음)
가장 쉬운 방법은 전용 유틸리티를 사용하는 것입니다. Play 스토어에는 수십 개의 "APK Extractor" 앱이 있습니다. 이러한 도구는 읽을 수 있지만 일반적으로 숨겨져 있음에서 앱의 설치 경로를 찾고 base.apk를 공용 다운로드 폴더에 복사하는 방식으로 작동합니다. /data/app/
단계:
- 평판이 좋은 APK 추출기를 설치하십시오.
- 요청 시 앱을 열고 '저장 권한'을 부여하세요.
- 설치된 모든 애플리케이션 목록을 스크롤합니다.
- 저장하려는 앱을 탭하세요.
- 이 도구는 APK를 내부 저장소에 즉시 복사합니다.
분할 APK 처리
Facebook이나 WhatsApp과 같은 복잡한 앱을 추출하면 하나가 아닌 여러 개의 .apk 파일을 찾을 수 있습니다. APK 분할 입니다. 이를 사용하려면 APKS/APKM 병합 도구를 사용하여 단일 파일로 결합해야 합니다.
방법 2: ADB를 통한 수동 추출(고급)
휴대폰에 추가 앱을 설치하고 싶지 않다면 Android 디버그 브리지(ADB)와 함께 PC를 사용할 수 있습니다.
- USB를 통해 휴대폰을 PC에 연결하고 USB 디버깅을 활성화합니다.
- 터미널을 열고 다음을 입력하세요: adb shell pm path com.example.app
- 그러면 경로가 표시됩니다. 예: package:/data/app/com.example.app/base.apk
- 유형: adb pull /data/app/com.example.app/base.apk ./backup.apk
- 이제 파일이 PC에 있습니다!
추출할 때 실제로 얻는 것
"설치된" Android 앱은 더 이상 기기에 단일 APK로 저장되지 않습니다. 특히 Play 스토어에서 Android 앱 번들로 제공된 경우 더욱 그렇습니다. 추출하면 하나 또는 여러 개의 파일을 얻을 수 있으며 차이점을 알면 무엇을 유지할지 결정하는 데 도움이 됩니다.
- 단일 기본 APK. 일반 APK로 Play에 업로드된 이전 또는 작은 앱은 여전히 단일 파일로 설치됩니다. 추출은 자체 포함된 하나의 .apk를 반환합니다.
- AAB로 게시된 기본 APK + 여러 구성 분할. 앱은 base.apk와 의 네이티브 코드, 화면 리소스 및 로캘용 문자열와 함께 여러 APK로 나란히 설치됩니다. 추출하면 모두 반환됩니다. 동일한 기기에 동일한 앱을 다시 설치하려면 해당 앱이 모두 필요합니다. split_config.<abi>.apk split_config.<density>.apk split_config.<language>.apk
- 때때로 자산 팩 데이터. Play Asset Delivery를 사용하는 최신 게임은 APK 자체 외부의 앱 전용 캐시에 대규모 게임플레이 자산을 저장합니다. 일반적으로 일반 추출기로 내보낼 수 없습니다. 자산 팩은 처음 실행 시 다시 가져오도록 설계되었습니다.
목표가 다른 장치에 설치할 휴대용 백업인 경우 일반적으로 (a) APKS에서 APK로의 합병로 생성된 병합된 "유니버설 APK" 또는 (b) SAI와 같은 분할 APK 설치 프로그램이 하나의 단위로 복원할 수 있도록 함께 보관된 모든 분할을 원합니다.
추출 작동 방식(루트 없음, 뒤에서)
Android는 시스템 수준 읽기 경로를 통해 설치된 패키지 파일을 노출하므로 대부분의 "APK 추출기" 앱에는 실제로 루트가 필요하지 않습니다. 표준 흐름은 다음과 같습니다.
- 추출기 앱은 PackageManager.getPackageInfo(package, ...)를 호출하여 설치된 앱 목록을 가져옵니다.
- 선택한 앱에 대해 기본 APK의 경로, 일반적으로 /data/app/<package>-<hash>/base.apk 및 모든 구성 분할의 경로를 읽습니다. ApplicationInfo.sourceDir splitSourceDirs
- 사용자가 설치한 추출기는 이러한 경로를 직접 읽을 수 없지만 Android의 FileProvider 메커니즘을 사용하면 시스템 구성요소가 특정 URI에 대한 임시 읽기 액세스 권한을 부여할 수 있습니다. OS 하다를 사용하면 모든 앱이 소유하다 APK 및 기타 앱의 APK를 URI로 열 수 있습니다. 설치 경로는 제거 및 업데이트와 같은 작업을 위해 항상 누구나 읽을 수 있도록 의도되었기 때문에 이는 의도적인 것입니다.
- 추출기는 바이트를 쓰기 가능한 사용자 디렉터리(다운로드, 앱 내 캐시 폴더 또는 외부 저장소)에 복사하고 이를 공유하거나 설치할 파일로 제공합니다.
루트 전용 메서드(su; cp /data/app/...는 API를 우회하고 원시 경로를 직접 읽습니다). 비시스템 앱에는 더 빠르지 않으며 필요하지도 않습니다.
ADB를 통한 추출(백업에 권장)
가장 깔끔한 비앱 워크플로는 대부분의 개발자가 이미 설정한 ADB입니다. 두 가지 명령이 전체 작업을 수행합니다.
# 1. Find the on-device path(s) for the package
adb shell pm path com.example.app
# Output (single APK):
# package:/data/app/~~hash==/com.example.app-1/base.apk
#
# Output (split APKs):
# package:/data/app/~~hash==/com.example.app-1/base.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.arm64_v8a.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.xxhdpi.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.en.apk
# 2. Pull each path
adb pull /data/app/~~hash==/com.example.app-1/base.apk ./
분할 APK 앱의 경우 각 경로에 대해 adb pull를 반복합니다. 단일 설치 가능한 파일을 얻으려면 해당 파일을 모두 APKS에서 APK로의 합병에 놓습니다.
추출할 수 없는 것
추출은 애플리케이션의 설치 파일을 반환합니다. ~ 아니다는 다음을 반환합니다.
- 앱 데이터: 기본 설정, 데이터베이스, 저장 파일. 이는 /data/data/<package>/ 아래에 있으며 사용자 데이터 샌드박스에 의해 루트가 아닌 추출로부터 보호됩니다.
- Play Asset Delivery 애셋 팩: 처음 실행 시 다운로드되고 비공개로 캐시되며 누락된 경우 다시 가져올 것으로 예상됩니다.
- 클라우드에 저장된 진행 상황: 앱이 Google Play Games, Firebase 등을 사용하는 경우 클라우드에 저장되는 부분은 기기가 아닌 게시자의 서버에 있습니다.
따라서 추출은 "설치 프로그램의 복사본을 보관하고 싶습니다" 사용 사례에는 적합하지만 적절한 전체 장치 백업(루트 또는 공급업체 도구 필요)을 대체할 수는 없습니다.
자주 묻는 질문(FAQ)
앱을 추출하면 내 로그인 데이터도 포함되나요?
아니요. 추출은 애플리케이션 코드 및 리소스만 복사합니다. 보안상의 이유로 개인 계정 데이터, 비밀번호 또는 설정은 포함되지 않습니다.
YouTube와 같은 시스템 앱을 추출할 수 있나요?
예. 그러나 일부 시스템 앱은 특정 OS 버전에 크게 의존할 수 있으며 다른 장치에는 올바르게 설치되지 않을 수 있습니다.
추출된 APK는 어디로 가나요?
대부분의 추출기 앱은 휴대폰 내부 저장소의 추출된APK 또는 다운로드라는 폴더에 파일을 저장합니다.
분할 구성을 잃지 않고 설치된 앱 백업
자신만의 로컬 앱 저장소를 구축하는 것이 좋아하는 도구에 대한 액세스를 잃지 않는 가장 확실한 방법입니다. 탭하기 쉬운 앱과 ADB 터미널을 사용하면 어느 쪽이든 APK 파일 추출 중가 Android 기기를 관리하는 안전하고 실용적인 방법입니다. 라이브러리를 백업한 후 잠시 시간을 내어 해당 백업의 서명을 확인하다를 확인하여 시간이 지나도 변경되지 않은 상태로 유지되는지 확인하세요.