.APKM 번들을 여기에 드래그 앤 드롭하세요.
또는 클릭하여 .apkm, .apks 또는 .zip 분할 아카이브를 선택하세요.
100% 로컬 브라우저 처리 • info.json 구문 분석 및 APK 분할APKM 컨테이너 아키텍처 내부
개발자가 Android 앱 번들(AAB)(.aab을 Google Play에 게시하면 기기는 하드웨어에 맞춤화된 분할 APK만 수신합니다. APKMirror와 같은 타사 보관 플랫폼은 이러한 모듈식 분할을 info.json라는 JSON 설명자와 함께 .apkm) 번들로 패키징합니다.
- 헤더 매직 바이트 확인: .apkm가 표준 PKZIP 프레이밍(0x504B0304) 또는 암호화된 v2 스트림 헤더를 사용하는지 확인합니다.
- info.json 매니페스트 구문 분석: 패키지 이름(pname), 버전 코드, 최소 Android SDK 수준 및 지원되는 CPU 아키텍처를 추출합니다.
- 원클릭 표준 .apks 재포장: 암호화되지 않은 .apkm 컨테이너를 SAI, Bundletool 및 메인 분할 APK 합병와 호환되는 범용 .apks ZIP 아카이브로 변환합니다.
기술 참조: APKM 번들을 독립형 APK 파일로 변환
.apkm 파일은 단일 컴파일된 Android 패키지가 아닙니다. 이는 CPU 명령어 세트(split_config.arm64_v8a.apk), split_config.armeabi_v7a.apk, 화면 픽셀 밀도(split_config.xxhdpi.apk), split_config.xxxhdpi.apk 및 지역화된 문자열 리소스(split_config.en.apk에 대한 별도의 구성 분할과 함께 기본 base.apk) 모듈을 포함하는 여러 부분으로 구성된 아카이브입니다. Android의 기본 패키지 설치 프로그램(PackageInstaller은 파일 관리자에서 사이드로드할 때 단일 모놀리식 .apk만 허용하므로 휴대폰에서 .apkm) 파일을 직접 탭하면 인식할 수 없는 파일 오류가 발생합니다.
.apkm 아카이브에서 base.apk를 추출하여 Android 13, 14, 15에 자체적으로 설치하려고 해도 두 가지 기술적 장벽으로 인해 앱이 작동하지 않습니다.
- 바이너리 매니페스트 분할 적용(isSplitRequired="true"): base.apk의 컴파일된 바이너리 AndroidManifest.xml 내에서 <application> 태그는 부울 속성 android:isSplitRequired="true"(속성 리소스 ID 0x01010591)를 전달합니다. Android의 PackageManagerService가 단일 APK 설치 중에 이 플래그를 확인하면 INSTALL_FAILED_MISSING_SPLIT가 즉시 중단됩니다.
- 분리된 네이티브 라이브러리 및 밀도 리소스: 모든 컴파일된 C/C++ 공유 라이브러리(lib/arm64-v8a/*.so) 및 고해상도 UI 드로어블은 동반 split_config.*.apk 파일에 있습니다. 해당 항목을 기본 아카이브에 병합하고 resources.arsc를 업데이트하지 않으면 java.lang.UnsatisfiedLinkError 또는 Resources$NotFoundException 실행 시 애플리케이션이 충돌합니다.
- ZIP 기반 및 암호화된 APKM 스트림: 표준 .apkm 아카이브는 4바이트 PKZIP 서명(50 4B 03 04)으로 시작하고 루트에 info.json 파일을 포함합니다. 그러나 특정 최신 APKMirror 다운로드는 독점 설치 프로그램 전용으로 설계된 사용자 정의 암호화 래퍼 형식(매직 헤더 02 ...)을 사용합니다. 당사의 분석기는 브라우저 메모리에서 파일의 처음 16바이트를 즉시 확인합니다. 표준 ZIP 기반 .apkm인 경우 모든 분할의 압축을 풀거나 여기에서 깨끗한 .apks 아카이브를 내보낸 다음 해당 아카이브를 홈페이지 XAPK 및 분할 APK 합병에 드롭하여 단일 v1+v2 서명 .apk를 컴파일할 수 있습니다.
| APKM 내부 파일 | Android 앱 번들(AAB) 전달의 목적 | 독립 실행형 설치에 필요합니까? |
|---|---|---|
| info.json | JSON 메타데이터 설명자 기록 패키지 이름, versioncode, min_api 및 대상 ABI | 아니요(메타데이터만 해당, APK 병합 중에 제거됨) |
| base.apk | 기본 DEX 바이트코드(classes.dex), 핵심 AndroidManifest.xml 및 기본 리소스 | 필수 코어 패키지 예 |
| split_config.arm64_v8a.apk | 64비트 ARM 네이티브 C/C++ 공유 라이브러리(lib/arm64-v8a/*.so) | 최신 64비트 휴대폰에 필요 예 |
| split_config.xxhdpi.apk | 고밀도 UI 아이콘, 비트맵 및 레이아웃 드로어블(320dpi–640dpi) | 드로어블 충돌 누락 방지 예 |
| split_config.en.apk | 사용자의 시스템 언어에 맞게 컴파일된 현지화된 문자열 테이블 | 권장(UI 텍스트 레이블이 올바르게 렌더링되도록 보장) |