APKM بنڈل یہاں گھسیٹیں اور چھوڑیں۔
یا .apkm، .apks، یا .zip اسپلٹ آرکائیو کو منتخب کرنے کے لیے کلک کریں۔
100% مقامی براؤزر پروسیسنگ • info.json اور Split APKs کو پارس کرتا ہے۔APKM کنٹینر آرکیٹیکچر کے اندر
جب ڈویلپرز Google Play پر ایک Android App Bundle (.aab) شائع کرتے ہیں، تو آلات کو صرف اپنے ہارڈ ویئر کے مطابق تقسیم شدہ APKs موصول ہوتے ہیں۔ فریق ثالث کے آرکائیول پلیٹ فارمز جیسے APKMirror ان ماڈیولر کو ایک .apkm بنڈل میں تقسیم کرتا ہے جس کا نام JSON ڈسکرپٹر ہے جس کا نام info.json ہے۔
- ہیڈر میجک بائٹ کی تصدیق: چیک کرتا ہے کہ آیا .apkm معیاری PKZIP فریمنگ (0x504B0304) یا ایک خفیہ کردہ v2 اسٹریم ہیڈر استعمال کرتا ہے۔
- info.json مینی فیسٹ پارسنگ: پیکیج کا نام (pname)، ورژن کوڈ، کم از کم Android SDK لیول، اور تعاون یافتہ CPU فن تعمیرات کو نکالتا ہے۔
- ایک کلک معیاری .apks ری پیکجنگ: غیر خفیہ کردہ .apkm کنٹینرز کو SAI، بنڈلیٹول، اور ہمارے مین اسپلٹ APK انضمام کے ساتھ ہم آہنگ عالمگیر .apks زپ آرکائیوز میں تبدیل کرتا ہے۔
تکنیکی حوالہ: APKM بنڈلز کو اسٹینڈ ایلون APK فائلوں میں تبدیل کرنا
ایک .apkm فائل ایک اکیلی مرتب کردہ Android پیکج نہیں ہے — یہ ایک پرائمری پر مشتمل ایک ملٹی پارٹ آرکائیو ہے۔ base.apk سی پی یو انسٹرکشن سیٹس کے لیے الگ الگ کنفیگریشن اسپلٹس کے ساتھ ماڈیول (split_config.arm64_v8a.apk), split_config.armeabi_v7a.apk، سکرین پکسل کثافت (split_config.xxhdpi.apk), split_config.xxxhdpi.apk، اور مقامی سٹرنگ وسائل (split_config.en.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 کے ساتھ لانچ ہونے پر کریش ہو جاتی ہے۔
- زپ پر مبنی بمقابلہ خفیہ کردہ APKM اسٹریمز: معیاری .apkm آرکائیوز 4 بائٹ PKZIP دستخط (50 4B 03 04) سے شروع ہوتے ہیں اور جڑ میں ایک info.json فائل شامل کرتے ہیں۔ تاہم، کچھ نئے APKMirror ڈاؤن لوڈز اپنی مرضی کے مطابق انکرپٹڈ ریپر فارمیٹ (جادو ہیڈر 02 ...) کا استعمال کرتے ہیں جو خصوصی طور پر ان کے ملکیتی انسٹالر کے لیے ڈیزائن کیا گیا ہے۔ ہمارا تجزیہ کار آپ کی فائل کے پہلے 16 بائٹس کو فوری طور پر براؤزر میموری میں چیک کرتا ہے: اگر یہ معیاری زپ پر مبنی .apkm ہے، تو آپ تمام اسپلٹس کو کھول سکتے ہیں یا ایک صاف .apks آرکائیو کو یہیں ایکسپورٹ کر سکتے ہیں، پھر اس آرکائیو کو ہمارے ہوم پیج XAPK اور اسپلٹ APK انضمام میں ڈال کر ایک سنگل، v1+v2 دستخط شدہ .apkمرتب کریں۔
| APKM اندرونی فائل | Android ایپ بنڈل ڈیلیوری میں مقصد | اسٹینڈ لون انسٹال کے لیے درکار ہے؟ |
|---|---|---|
| info.json | JSON میٹا ڈیٹا ڈسکرپٹر ریکارڈنگ پیکیج کا نام، versioncode، min_api، اور ہدف ABIs | نہیں (صرف میٹا ڈیٹا؛ APK انضمام کے دوران چھین لیا گیا) |
| base.apk | پرائمری DEX بائیک کوڈ (classes.dex، بنیادی AndroidManifest.xml، اور بیس لائن وسائل) | جی ہاں (لازمی کور پیکیج) |
| split_config.arm64_v8a.apk | 64-bit ARM مقامی C/C++ مشترکہ لائبریریاں (lib/arm64-v8a/*.so) | جی ہاں (جدید 64 بٹ فونز پر درکار ہے) |
| split_config.xxhdpi.apk | اعلی کثافت والے UI آئیکنز، بٹ میپس، اور لے آؤٹ ڈرا ایبلز (320dpi–640dpi) | جی ہاں (لاپتہ ڈرا ایبل کریشز کو روکتا ہے) |
| split_config.en.apk | صارف کے نظام کی زبان کے لیے مرتب کردہ مقامی سٹرنگ ٹیبلز | تجویز کردہ (یقینی بناتا ہے کہ UI ٹیکسٹ لیبلز صحیح طریقے سے رینڈر ہوں) |