بدعنوان APK فائل کو کیسے ٹھیک کریں اور اثاثے نکالیں۔

A smartphone showing a file error with a small toolbox, illustrating fixing a corrupt APK

آپ نے 2GB گیم بنڈل ڈاؤن لوڈ کرنے میں گھنٹے گزارے ہیں، صرف آپ کے براؤزر کے لیے 99% پر "ڈاؤن لوڈ ناکام" کہنے کے لیے، یا اس سے بھی بدتر، Android کے لیے "پارسنگ کی خرابی: پیکج کو پارس کرنے میں ایک مسئلہ تھا۔" چیخنے کے لیے ضروری نہیں کہ خراب شدہ APK ڈیڈ فائل ہو۔ چونکہ APKs زپ کمپریشن کے معیار پر بنائے گئے ہیں، ان کی اکثر مرمت کی جا سکتی ہے، کم از کم اندر کے قیمتی اثاثوں کو نکالنے کے لیے کافی ہے۔

ذیل میں ہم جانتے ہیں کہ APK کے اندر درحقیقت کیا ٹوٹتا ہے، مرمت کے آلات تک پہنچنے کے قابل، اور جب آپ ٹوٹے ہوئے بنڈل سے نمٹ رہے ہوں تو ہمارا XAPK کنورٹر کس طرح مدد کر سکتا ہے۔

TL؛ DR پانچ سیکنڈ کا خلاصہ: زیادہ تر خراب شدہ APKs کو ZIP سنٹرل ڈائرکٹری میں یا اس میں نقصان ہوتا ہے۔ classes.dex. زپ سطح کا نقصان قابل مرمت ہے۔ zip -FF یا 7-زپ۔ DEX سطح کا نقصان نہیں ہے؛ اس صورت میں، وہ اثاثے بازیافت کریں جو آپ کر سکتے ہیں اور ایک صاف APK دوبارہ ڈاؤن لوڈ کریں۔ zipalign غلطیاں حقیقی بدعنوانی نہیں ہیں اور ایک کمانڈ میں طے کی جاتی ہیں۔

APK بدعنوانی کی اناٹومی۔

ایک APK بنیادی طور پر ایک مخصوص ڈھانچہ کے ساتھ ایک زپ آرکائیو ہے۔ بدعنوانی عام طور پر تین میں سے کسی ایک جگہ پر ہوتی ہے:

  1. ہیڈر: فائل کے بالکل شروع میں موجود بائٹس غائب یا تبدیل ہو گئے ہیں۔
  2. مینی فیسٹ (XML): AndroidManifest.xml خراب ہے یا غیر تعاون یافتہ انکوڈنگ استعمال کرتا ہے۔
  3. ڈی ای ایکس کوڈ: اصل Java/Kotlin بائیک کوڈ کو چھوٹا کر دیا گیا ہے، جس سے ایپ ناقابل چل رہی ہے۔

طریقہ 1: بغیر سر کے زپ کی مرمت (سب سے آسان)

اگر فائل "پڑھنے کے قابل" ہے لیکن نہیں کھلتی ہے، تو لینکس/macOS میں ڈسک انٹرنل زپ کی مرمت (مفت) یا کمانڈ لائن zip -FF کمانڈ جیسے ٹول کا استعمال کریں۔ یہ ٹولز فائلوں کے "دستخط" کے لیے فائل کو اسکین کرتے ہیں اور مرکزی ڈائریکٹری کو شروع سے دوبارہ بناتے ہیں۔

ٹرمینل صارفین کے لیے کوڈ: zip -FF corrupt_app.apk --out fixed_app.apk

طریقہ 2: Zipalign/Alignment کو ٹھیک کرنا

بعض اوقات ایک APK صرف اس وجہ سے "کرپٹ" ہوتا ہے کہ یہ 4 بائٹ باؤنڈریز پر منسلک نہیں ہوتا ہے۔ Android کے میموری مینجمنٹ کو اس کی ضرورت ہے۔ آپ اسے Android SDK سے zipalign ٹول کا استعمال کر کے ٹھیک کر سکتے ہیں:

zipalign -v 4 input.apk output.apk

بٹ روٹ وارننگ

اگر DEX (classes.dex) فائل میں ہی ڈیٹا غائب ہے تو زپ کی مرمت کی کوئی رقم ایپ کو کام نہیں کرے گی۔ اس صورت میں، آپ کا واحد مقصد اثاثے/وسائل نکالنا اور ایپ کی ایک نئی کاپی تلاش کرنا ہونا چاہیے۔

یہ کیسے بتایا جائے کہ اصل میں کیا غلط ہے۔

مرمت کے آلے کو منتخب کرنے سے پہلے، ناکامی کی شناخت کریں۔ غلطی کا پیغام Android (یا آپ کا آرکائیو ٹول) دکھاتا ہے عام طور پر ایک اشارہ ہوتا ہے:

علامات جو آپ دیکھتے ہیں۔ اس کا عام طور پر کیا مطلب ہے۔ سب سے پہلے کیا کوشش کرنا ہے
"پیکیج کو پارس کرنا" ناکام ہوگیا (Android) ZIP سنٹرل ڈائرکٹری ناقابل پڑھنے، یا مینی فیسٹ ورژن کی مماثلت نہیں ہے۔ زپ ہیڈر کی مرمت (طریقہ 1)
"پیکیج کو پارس کرنے میں ایک مسئلہ تھا" + APK توقع سے تھوڑا چھوٹا ہے۔ کٹا ہوا ڈاؤن لوڈ: آخری چند KB کبھی نہیں پہنچے اسی ذریعہ سے دوبارہ ڈاؤن لوڈ کریں؛ زپ کی مرمت اگر دوبارہ ڈاؤن لوڈ دستیاب نہیں ہے۔
7-Zip / WinRAR اسے کھولتا ہے لیکن انفرادی فائلوں پر "CRC ایرر" کی اطلاع دیتا ہے۔ زپ کے اندر کی انفرادی فائل کو نقصان پہنچا ہے۔ ہر چیز کو نکالیں سوائے تباہ شدہ ممبر، پھر دیکھیں کہ کیا غائب ہے۔
مزید تفصیل کے بغیر "ایپ انسٹال نہیں ہے" اکثر دستخط کی مماثلت یا صف بندی کا مسئلہ، حقیقی بدعنوانی نہیں۔ zipalign + دستخط دوبارہ چیک کریں (طریقہ 2)
java.lang.VerifyError کے ساتھ انسٹال ہونے کے فوراً بعد کریش ہو جاتا ہے۔ classes.dex بائٹ کوڈ خراب ہے یا ورژن سے مطابقت نہیں رکھتا ہے۔ مرمت کے ذریعے بحال نہیں کیا جا سکتا۔ ایک صاف کاپی دوبارہ حاصل کریں۔

ایک کنکریٹ واک تھرو

تصور کریں کہ آپ نے ایک 320 MB APK کے ساتھ اختتام کیا جس کے ڈاؤن لوڈ میں تقریباً 99% مداخلت ہوئی تھی۔ آپ کا فون اسے انسٹال کرنے سے انکار کرتا ہے "پیکیج کو پارس کرنا ناکام ہو گیا"۔ Windows یا macOS ورک سٹیشن پر اس پر حملہ کرنے کا طریقہ یہاں ہے، جس ترتیب سے آپ واقعی چیزوں کو آزمائیں گے۔

مرحلہ 1۔ تصدیق کریں کہ فائل کم از کم زیادہ تر موجود ہے۔

جو بھی ذریعہ اشتہار دیتا ہے اس کے خلاف فائل کا سائز چیک کریں۔ اگر فائل ڈرامائی طور پر چھوٹی ہے (کہیں، 320 MB کی بجائے 220 MB)، ڈاؤن لوڈ کو شدید طور پر چھوٹا کر دیا گیا تھا اور ریپر کی مرمت میں کوئی خاص بات نہیں ہے: classes.dex کے بڑے حصے یا اثاثے صرف غائب ہیں۔ اس صورت میں، ڈاؤن لوڈ دوبارہ شروع کریں.

مرحلہ 2۔ زپ ڈھانچے کی جانچ کریں۔

APK پر مشتمل فولڈر میں ٹرمینل کھولیں اور macOS یا Linux پر چلائیں:

unzip -t broken.apk

ٹول آرکائیو کے اندر موجود ہر فائل اور کسی بھی CRC کی غلطیوں کی اطلاع دے گا۔ اگر صرف مٹھی بھر اندراجات میں خرابی ہوتی ہے اور وہ classes*.dex یا resources.arsc نہیں ہیں، تو آپ کے پاس کام کرنے والی انسٹال تیار کرنے کا ایک معقول موقع ہے۔

مرحلہ 3۔ مرکزی ڈائریکٹری کو دوبارہ بنائیں

اگر unzip -t خود مرکزی ڈائریکٹری کے بارے میں شکایت کرتا ہے ("سنٹرل ڈائرکٹری کے اختتام کے دستخط نہیں ملے"، "1 EOCD غائب")، "فکس" موڈ استعمال کریں:

zip -FF broken.apk --out fixed.apk

-FF جھنڈا zip سے کہتا ہے کہ فائل کو مقامی فائل ہیڈر کے دستخطوں کے لیے اسکین کرے اور ڈائرکٹری اندراج بہ اندراج کو دوبارہ بنائے۔ آؤٹ پٹ، fixed.apk، وہی ہے جسے آپ اصل میں انسٹال کرنے کی کوشش کرتے ہیں۔

مرحلہ 4۔ اگر ضروری ہو تو دوبارہ ترتیب دیں اور دوبارہ دستخط کریں۔

کسی بھی ساختی تبدیلی کے بعد، APK کا دستخط اب درست نہیں رہے گا، کیونکہ ایک بائٹ میں بھی ترمیم کرنے سے v2/v3 دستخطی بلاکس باطل ہو جاتے ہیں۔ اگر آپ کے پاس اپنی دستخطی کلید ہے (یہ آپ کی اپنی تعمیرات کے لیے ٹھیک ہے)، سیدھ کریں اور دوبارہ دستخط کریں:

zipalign -v 4 fixed.apk aligned.apk
apksigner sign --ks my.keystore aligned.apk

آپ کی اپنی کلید کے بغیر، فائل کو انسٹال کرنے کا واحد طریقہ اسی دستخطی سرٹیفکیٹ کے ساتھ موجودہ انسٹال ہے، جس کا مطلب ہے کہ فریق ثالث کی جانب سے مرمت شدہ APK کسی موجودہ Play Store انسٹال کے اوپر انسٹال نہیں ہوگا، کیونکہ سائننگ چین تبدیل ہوگیا ہے۔

جب مرمت غلط مقصد ہے۔

یہ ایماندار ہونے کے قابل ہے کہ "فکسنگ" کیا کر سکتی ہے اور کیا نہیں کر سکتی:

اگر آپ کا مقصد صرف ایک ایسا گیم کھیلنا تھا جس کا ڈاؤن لوڈ 99 فیصد پر ختم ہو گیا ہو، تو کم از کم مزاحمت کا راستہ تقریباً ہمیشہ ہی جزوی فائل کو صاف کرنے، ڈسک کی جگہ خالی کرنے، اور ایک قابل اعتماد کنکشن سے دوبارہ ڈاؤن لوڈ کرنا ہوتا ہے۔ دوبارہ ڈاؤن لوڈ کرنے کے ناممکن ہونے پر مرمت کے ٹولز چمکتے ہیں: پرانے محفوظ شدہ APK، فلکی LAN ٹرانسفر پر موصول ہونے والی فائلیں، یا بیک اپ جن کا اصل ماخذ ختم ہو چکا ہے۔

اکثر پوچھے گئے سوالات (FAQ)

کیا میں ٹوٹے ہوئے APK سے شبیہیں اور اسکرین شاٹس نکال سکتا ہوں؟

عام طور پر ہاں۔ آئیکن فائلز res/mipmap-* کے تحت رہتی ہیں اور شروع کرنے کے لیے APKs میں اسکرین شاٹ ڈیٹا نایاب ہے۔ یہاں تک کہ جب مرکزی ڈائرکٹری خراب ہو جاتی ہے، انفرادی فائل ہیڈر اکثر اس حد تک برقرار رہتے ہیں کہ 7-Zip کا "Extract with errors نظر انداز کیا گیا" آپشن زیادہ تر تصاویر کو باہر نکال دے گا۔

کیا مرمت شدہ APK انسٹال کردہ ایپ کو اپ ڈیٹ کرے گا؟

صرف اس صورت میں جب مرمت نے اصل دستخط کو محفوظ کیا، جو کہ ساختی درستگی کے بعد عام طور پر ناممکن ہے۔ مرمت شدہ APK کو تازہ انسٹال سمجھیں: پہلے پرانے ورژن کو ان انسٹال کریں (آپ اس کا ڈیٹا کھو دیں گے) یا کسی ایسے ڈیوائس پر انسٹال کریں جس میں ابھی تک ایپ نہیں ہے۔

کیا کوئی آن لائن ٹول ہے جو یہ سب کرتا ہے؟

براؤزر پر مبنی ٹولز APK کے ڈھانچے کو پڑھ سکتے ہیں اور آپ کو بتا سکتے ہیں کہ کیا ٹوٹا ہے (ہمارا APK معلوماتی ٹول بالکل ایسا ہی کرتا ہے)، لیکن اصل میں زپ کو دوبارہ لکھنے اور دوبارہ دستخط کرنے کے لیے ڈیسک ٹاپ ٹول یا سرور کی ضرورت ہوتی ہے۔ ہم جان بوجھ کر سرور پر دوبارہ دستخط کرنے کا مرحلہ نہیں چلاتے کیونکہ اس کا مطلب آپ کی فائل کو اپ لوڈ کرنا ہوگا: اس سائٹ کا رازداری کا وعدہ یہ ہے کہ کوئی بھی چیز آپ کے براؤزر کو نہیں چھوڑتی ہے۔

XAPK فائلوں کا کیا ہوگا جو نکالنے میں ناکام رہیں؟

ایک XAPK صرف ایک زپ ہے، لہذا وہی تکنیکیں لاگو ہوتی ہیں۔ اندرونی APK کے علاوہ کسی بھی OBB فائلوں کو بازیافت کرنے کے لیے اس پر zip -FF چلائیں، پھر اس طرح آگے بڑھیں جیسے آپ کے پاس خراب APK اور علیحدہ OBB ہو۔

اگر آپ کا مقصد صرف ایک ناکام ڈاؤن لوڈ سے گرافکس، آوازیں، یا OBB ڈیٹا حاصل کرنا ہے، 7-Zip استعمال کریں۔ 7-زپ Windows ایکسپلورر زپ ٹول سے زیادہ جارحانہ ہے اور اکثر آپ کو ان فائلوں کو نکالنے کے لیے "غلطیوں کو نظر انداز" کرنے دیتا ہے جو صرف جزوی طور پر ڈاؤن لوڈ ہوتی ہیں۔

اپنے APK کو گہری اسکین کریں۔

فائل کو ہمارے تجزیہ کار پر اپ لوڈ کریں تاکہ معلوم ہو سکے کہ ڈھانچہ درست ہے یا مینی فیسٹ ناقابل پڑھا جا سکتا ہے۔

فائل کی صحت کا تجزیہ کریں۔

نتیجہ

ایک "تجزیہ کی خرابی" OS کا ترک کرنا ہے۔ اوپر بیان کردہ ٹولز کا استعمال کرکے، آپ کنٹرول واپس لے لیتے ہیں۔ اگرچہ آپ ٹوٹی ہوئی ایپ کو چلانے کے لیے اسے ہمیشہ "ٹھیک" نہیں کر سکتے، آپ تقریباً ہمیشہ ڈیٹا کی وصولی اندر ہی رہ سکتے ہیں۔ بڑی فائلوں کے انتظام کے بارے میں مزید نکات کے لیے، Split APKs کو ضم کرنا یا OBB گیم ڈیٹا نکالنا پر ہماری گائیڈ دیکھیں۔

انجینئرڈ اور دستاویزی Mst Shafale کے ذریعہ لیڈ ڈیولپر اور Android پیکیج آرکیٹیکٹ • Android 12–15 پر تصدیق شدہ

Mst Shaefale xapktoapk.com پر کلائنٹ سائڈ XAPK/APKS انضمام، بائنری مینی فیسٹ پارسر، اور APK v1+v2 سائننگ ٹولز کو برقرار رکھتی ہے۔ ایک پرانی کمانڈ یا OS کی تبدیلی کو اسپاٹ کریں؟ ایک ادارتی نوٹ بھیجیں۔