.APKM बंडल को यहां खींचें और छोड़ें
या .apkm, .apks, या .zip स्प्लिट संग्रह का चयन करने के लिए क्लिक करें
100% स्थानीय ब्राउज़र प्रोसेसिंग • पार्स info.json और स्प्लिट APKAPKM कंटेनर आर्किटेक्चर के अंदर
जब डेवलपर्स Google Play पर Android ऐप बंडल (.aab) प्रकाशित करते हैं, तो डिवाइस को केवल उनके हार्डवेयर के अनुरूप विभाजित APK प्राप्त होते हैं। APKMirror जैसे तृतीय-पक्ष अभिलेखीय प्लेटफ़ॉर्म उन मॉड्यूलर विभाजनों को info.json नामक JSON डिस्क्रिप्टर के साथ .apkm बंडल में पैकेज करते हैं।
- हेडर मैजिक बाइट सत्यापन: जाँचता है कि .apkm मानक PKZIP फ़्रेमिंग (0x504B0304) या एन्क्रिप्टेड v2 स्ट्रीम हेडर का उपयोग करता है या नहीं।
- info.json मैनिफ़ेस्ट पार्सिंग: पैकेज नाम (pname), संस्करण कोड, न्यूनतम Android SDK स्तर और समर्थित सीपीयू आर्किटेक्चर निकालता है।
- एक-क्लिक मानक .apks रीपैकेजिंग: अनएन्क्रिप्टेड .apkm कंटेनरों को SAI, bundletool और हमारे मुख्य स्प्लिट APK विलय के साथ संगत यूनिवर्सल .apks ज़िप अभिलेखागार में परिवर्तित करता है।
तकनीकी संदर्भ: APKM बंडलों को स्टैंडअलोन APK फ़ाइलों में परिवर्तित करना
एक .apkm फ़ाइल एक एकल संकलित Android पैकेज नहीं है - यह एक बहु-भाग संग्रह है जिसमें सीपीयू निर्देश सेट (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" (विशेषता संसाधन आईडी 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 के साथ लॉन्च पर क्रैश हो जाता है।
- ज़िप-आधारित बनाम एन्क्रिप्टेड APKM स्ट्रीम: मानक .apkm अभिलेखागार 4-बाइट PKZIP हस्ताक्षर (50 4B 03 04) से शुरू होते हैं और रूट में एक info.json फ़ाइल शामिल होती है। हालाँकि, कुछ नए APKMirror डाउनलोड एक कस्टम एन्क्रिप्टेड रैपर प्रारूप (मैजिक हेडर 02 ...) का उपयोग करते हैं जो विशेष रूप से उनके मालिकाना इंस्टॉलर के लिए डिज़ाइन किया गया है। हमारा विश्लेषक ब्राउज़र मेमोरी में आपकी फ़ाइल के पहले 16 बाइट्स को तुरंत जांचता है: यदि यह एक मानक ज़िप-आधारित .apkm है, तो आप सभी स्प्लिट्स को अनपैक कर सकते हैं या एक साफ .apks संग्रह को यहीं निर्यात कर सकते हैं, फिर उस संग्रह को एक एकल, v1+v2 हस्ताक्षरित .apk संकलित करने के लिए हमारे होमपेज XAPK और स्प्लिट APK मर्जर में छोड़ दें।
| APKM आंतरिक फ़ाइल | Android ऐप बंडल डिलीवरी में उद्देश्य | स्टैंडअलोन इंस्टालेशन के लिए आवश्यक है? |
|---|---|---|
| info.json | JSON मेटाडेटा डिस्क्रिप्टर रिकॉर्डिंग पैकेज नाम, versioncode, min_api, और लक्ष्य ABIs | नहीं (केवल मेटाडेटा; APK मर्ज के दौरान हटा दिया गया) |
| base.apk | प्राथमिक DEX बाइटकोड (classes.dex), कोर AndroidManifest.xml, और बेसलाइन संसाधन | हाँ (अनिवार्य कोर पैकेज) |
| split_config.arm64_v8a.apk | 64-बिट एआरएम देशी सी/सी++ साझा लाइब्रेरी (lib/arm64-v8a/*.so) | हाँ (आधुनिक 64-बिट फ़ोन पर आवश्यक) |
| split_config.xxhdpi.apk | उच्च-घनत्व यूआई आइकन, बिटमैप्स और लेआउट ड्रॉएबल्स (320dpi–640dpi) | हाँ (लापता ड्रॉएबल क्रैश को रोकता है) |
| split_config.en.apk | उपयोगकर्ता की सिस्टम भाषा के लिए स्थानीयकृत स्ट्रिंग तालिकाएँ संकलित की गईं | अनुशंसित (यह सुनिश्चित करता है कि यूआई टेक्स्ट लेबल ठीक से प्रस्तुत हों) |