APK انسٹال کرنے سے پہلے Android ایپ کی اجازتوں کو کیسے دیکھیں
جب آپ Google Play Store سے کوئی ایپ انسٹال کرتے ہیں، تو Android اس بات کا آسان خلاصہ دکھاتا ہے کہ ایپ کس چیز تک رسائی حاصل کر سکتی ہے۔ کسی نان پلے سورس سے ایک APK کو سائیڈ لوڈ کریں اور آپ کے پاس ایسا کوئی حفاظتی جال نہیں ہے، جب تک کہ آپ خود مینی فیسٹ نہ پڑھیں۔ "کیا وال پیپر ایپ کو واقعی SMS اور مائکروفون تک رسائی کی ضرورت ہے؟" بالکل وہی سوال ہے جس کے جواب میں یہ گائیڈ آپ کی مدد کرے گی۔
اس کے بعد وہی ورک فلو ہے جو ہماری ٹیم کسی ناواقف APK کو ٹرائی کرتے وقت استعمال کرتی ہے: اسے کھولیں، uses-permission اندراجات پڑھیں، تحفظ کی سطحوں کو ڈی کوڈ کریں، اور اس کا موازنہ کریں کہ کہتے ہیں ایپ کو کس چیز کی ضرورت ہے اس کے مقابلے میں جو اس کے زمرے کو عام طور پر درکار ہے۔ ہمارا آن لائن APK معلوماتی ٹول آپ کے لیے بائنری-XML ضابطہ کشائی کرتا ہے لہذا اس پورے عمل میں تقریباً دس سیکنڈ لگتے ہیں۔
آڈیٹنگ کی اجازتوں کی زحمت کیوں؟
نقصان دہ ڈیولپرز مشہور مفت ایپس لیتے ہیں، ان میں ردوبدل کرتے ہیں، اور انہیں فریق ثالث کی سائٹس پر دوبارہ جاری کرتے ہیں۔ اگرچہ ایپ عام طور پر نظر آتی ہے اور کام کر سکتی ہے، اس کا پوشیدہ کوڈ آپ کی رابطہ فہرست کو کاپی کر رہا ہو یا آپ کے پس منظر کی آڈیو کو ریکارڈ کر رہا ہو۔ اجازتیں پہلے سے تنصیب دیکھ کر، آپ "اجازت کریپ" کے ان سرخ جھنڈوں کو دیکھ سکتے ہیں۔
کسی بھی APK فائل کا آڈٹ کیسے کریں (آن لائن)
ہمارا APK معلوماتی ٹول آپ کی فائل کا مینی فیسٹ مکمل طور پر آپ کے براؤزر میں پڑھتا ہے۔ فائل کو کبھی بھی سرور پر اپ لوڈ نہیں کیا جاتا ہے، اور کوئی کوڈ نہیں چلتا ہے۔ اسے استعمال کرنے کا طریقہ یہاں ہے:
عمل:
- APK معلوماتی صفحہ پر جائیں۔
- اپنی .apk فائل منتخب کریں۔
- تجزیہ ختم ہونے کا انتظار کریں (عام طور پر 5 سیکنڈ)۔
- اجازتوں کا سیکشن تک نیچے سکرول کریں۔
- زیادہ خطرے والے جھنڈے تلاش کریں جیسے: READ_SMS، PROCESS_OUTGOING_CALLS، یا ACCESS_FINE_LOCATION۔
اجازت سرخ پرچم کی فہرست
اگر کیلکولیٹر یا ٹارچ ایپ READ_CONTACTS یا RECORD_AUDIO مانگتی ہے، تو فائل کو فوری طور پر حذف کر دیں۔ ان ایپس کے پاس ڈیٹا رکھنے کی کوئی جائز وجہ نہیں ہے۔
Android اجازت کی سطح کو سمجھنا
تمام اجازتیں برابر نہیں بنائی گئی ہیں۔ Android انہیں تین سطحوں میں درجہ بندی کرتا ہے:
- عام: کم خطرے کی اجازتیں جو براہ راست رازداری کو خطرہ نہیں دیتی ہیں (جیسے SET_ALARM)۔ Android خود بخود یہ فراہم کرتا ہے۔
- خطرناک: ہائی رسک اجازتیں (رابطے، مقام، کیمرہ)۔ یہ ضروری ہے ایپ کے چلنے پر آپ کے ذریعہ تصدیق کی جائے گی۔
- دستخط/نظام: انتہائی زیادہ خطرہ۔ یہ صرف ڈیوائس بنانے والے یا خود OS کے دستخط شدہ ایپس کے لیے دستیاب ہیں۔
دستی طریقہ (زپ ویور کا استعمال کرتے ہوئے)
اگر آپ کے پاس کچھ تکنیکی مہارت ہے، تو آپ اجازتوں کا خود آڈٹ کر سکتے ہیں:
- app.apk کا نام بدل کر app.zip کر دیں اور اسے کھولیں۔
- AndroidManifest.xml تلاش کریں۔ (نوٹ: یہ بائنری فارمیٹ میں ہے اور ٹیکسٹ ایڈیٹر میں گببرش کی طرح نظر آئے گا)۔
- اسے پڑھنے کے قابل متن میں تبدیل کرنے کے لیے AXMLPrinter جیسے ٹول کا استعمال کریں۔
- <uses-permission> سے شروع ہونے والے ٹیگز تلاش کریں۔
تجویز: ہمارا آن لائن ٹول استعمال کرنا بہت تیز ہے جو آپ کے لیے اسے فوری طور پر ڈی کوڈ کرتا ہے۔
اپنی ایپس کا ابھی آڈٹ کریں۔
بالکل جانیں کہ آپ کی ایپس کیا مانگ رہی ہیں۔ کوئی راز نہیں، کوئی خطرہ نہیں۔
APK کی اجازتیں چیک کریں۔اصل میں AndroidManifest.xml میں کیا ذخیرہ کیا جاتا ہے۔
مینی فیسٹ ہر اجازت، جزو، اور خصوصیت کے لیے سچائی کا ماخذ ہے جس کا کوئی ایپ اعلان کرتا ہے۔ ایک APK کے اندر، فائل بائنری XML فارم میں ہے، وہ سادہ متن نہیں جو آپ سورس کوڈ میں دیکھتے ہیں، لہذا اسے عام ٹیکسٹ ایڈیٹر کے ساتھ نہیں پڑھا جا سکتا۔ ہمارا APK انفارمیشن ٹول بائنری XML کو ڈی کوڈ کرتا ہے اور متعلقہ ٹیگز کو ظاہر کرتا ہے۔ سب سے اہم ہیں:
- <uses-permission android:name="..."/>: ہر وہ اجازت جس کی ایپ کبھی بھی درخواست کر سکتی ہے۔ مکمل فہرست یہاں ہے، بشمول وہ ایپ جو رن ٹائم کے وقت کبھی استعمال نہیں کر سکتی ہیں۔
- <uses-permission-sdk-23 ... />: وہی، لیکن صرف اس وقت درخواست کی جاتی ہے جب ایپ Android 6 یا اس کے بعد کے ورژن پر چلتی ہو۔ پرانے آلات کو بغیر اشارہ کیے خاموشی سے اجازت دی جاتی ہے۔
- <uses-feature android:name="..." android:required="true|false"/>: ہارڈ ویئر کی خصوصیات جو ایپ استعمال کرتی ہے (کیمرہ، GPS، NFC)۔ مطلوبہ کو نشان زد کرنے پر، Play Store ایپ کو ان آلات سے چھپا دیتا ہے جن میں خصوصیت کی کمی ہے۔
- <application android:debuggable="true">: ریلیز APK میں ایک بڑا سرخ پرچم۔ ڈیبگ ایبل ایپ ADB تک رسائی رکھنے والے ہر فرد کے سامنے اپنی میموری اور عمل کی حالت کو ظاہر کرتی ہے۔ رد کرنا۔
- <activity android:exported="true"> حساس سرگرمیوں پر: دوسری ایپس کو اس اسکرین کو لانچ کرنے دیتا ہے۔ پرائیویسی ایپ کے لیے، یہ اکثر میلا کوڈنگ کا اشارہ دیتا ہے۔
پرمیشن پروٹیکشن لیولز: چیٹ شیٹ
Android ہر اجازت کو "تحفظ کی سطح" تفویض کرتا ہے۔ یہ جاننا کہ درخواست کس سطح سے تعلق رکھتی ہے آپ کو بتاتا ہے کہ OS اس کے ساتھ کتنی سنجیدگی سے سلوک کرے گا۔
| تحفظ کی سطح | صارف کا تجربہ | مثالیں |
|---|---|---|
| عام | انسٹال کے وقت خاموشی سے دی گئی۔ کوئی پرامپٹ نہیں۔ | انٹرنیٹ، وائبریٹ، ACCESS_NETWORK_STATE، WAKE_LOCK |
| خطرناک | پہلی بار فیچر استعمال ہونے پر رن ٹائم پرامپٹ۔ ترتیبات میں قابل تنسیخ۔ | کیمرا، RECORD_AUDIO، READ_CONTACTS، ACCESS_FINE_LOCATION |
| دستخط | گرانٹنگ ایپ یا OS جیسے ہی سرٹیفکیٹ کے ساتھ دستخط شدہ ایپس کو ہی دی جاتی ہے۔ | BIND_VPN_SERVICE، INSTALL_PACKAGES (صرف سسٹم) |
| دستخط | مراعات یافتہ | سسٹم امیج کی priv-app ڈائرکٹری میں صرف پہلے سے انسٹال کردہ ایپس کے لیے دستیاب ہے۔ | MANAGE_USERS، READ_LOGS |
| appop / کردار | فعال کرنے کے لیے علیحدہ سیٹنگ فلو کی ضرورت ہے۔ | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (خصوصی سسٹم اجازتیں) |
"چھپی ہوئی" اجازتوں کا اصل مطلب کیا ہے۔
ایک عام غلط فہمی یہ ہے کہ کچھ اجازتیں خفیہ ہوتی ہیں۔ وہ نہیں ہیں: ہر اجازت جو کوئی ایپ استعمال کر سکتی ہے اسے AndroidManifest.xml میں ظاہر کیا جانا چاہیے، اور OS ایسی کوئی اجازت دینے سے انکار کرتا ہے جو وہاں درج نہیں ہے۔ لوگ عام طور پر "پوشیدہ" سے کیا مراد لیتے ہیں دو چیزوں میں سے ایک ہے:
- عام سطح کی اجازتیں خاموش ہیں۔ انہیں بغیر کسی صارف کے تعامل کے انسٹال کے وقت دیا جاتا ہے۔ Play Store کا خلاصہ ان میں سے کچھ کو بھی نہیں دکھاتا ہے۔ وہ "نظر انداز کرنے میں آسان" کے معنی میں "پوشیدہ" ہیں، "غیر ظاہر" کے معنی میں نہیں۔
- ایپ کی وضاحت کردہ حسب ضرورت اجازتیں۔ ایپس اپنے <permission> ٹیگز کا اعلان کر سکتی ہیں اور اندرونی اجزاء پر ان کی ضرورت ہوتی ہے۔ یہ انٹر ایپ کمیونیکیشن کے لیے موجود ہیں اور یہ خود پرائیویسی کا مسئلہ نہیں ہیں، لیکن ان کا غلط استعمال کیا جا سکتا ہے اگر کوئی مقبول ایپ غلط پروٹیکشن لیول کے ساتھ حسب ضرورت اجازت کا اعلان کرتی ہے اور دوسری ایپ اسے بیک ڈور کے طور پر استعمال کرتی ہے۔
کسی بھی طرح سے، جواب ایک ہی ہے: مینی فیسٹ کو پڑھیں، خود ہی پلے اسٹور کی تفصیل پر بھروسہ نہ کریں۔
کام کی مثال: ایک حقیقی APK کا آڈٹ کرنا
فرض کریں کہ آپ کے ڈاؤن لوڈز فولڈر میں example.apk ہے۔ یہاں درست کام کا بہاؤ ہے:
- اپنے براؤزر میں APK معلوماتی ٹول کھولیں۔
- اپ لوڈ ایریا پر APK کو چھوڑ دیں۔ پروسیسنگ مقامی طور پر ہوتی ہے؛ فائل آپ کے آلے کو نہیں چھوڑتی ہے۔
- اجازتیں سیکشن پڑھیں۔ ہر اندراج مستقل نام (android.permission.READ_CONTACTS اور اس کی اجازت دیتا ہے اس کی سادہ زبان کی وضاحت دکھاتا ہے۔)
- ایپ کے زمرے سے فہرست کا موازنہ کریں۔ موٹے طور پر، توقع کریں:
- کیمرہ ایپس: کیمرہ، RECORD_AUDIO (ویڈیو کے لیے)، STORAGE/MEDIA لکھیں
- میسجنگ ایپس: انٹرنیٹ، READ_CONTACTS، SEND_SMS (صرف SMS پر مبنی ہونے پر)، RECORD_AUDIO (صوتی نوٹس کے لیے)، کیمرہ (تصاویر بھیجنے کے لیے)
- گیمز: انٹرنیٹ، کبھی کبھی RECORD_AUDIO (اندر گیم وائس چیٹ کے لیے)، بلنگ سے متعلق اجازتیں؛ شاذ و نادر ہی کچھ اور
- یوٹیلیٹی ایپس (کیلکولیٹر، فلیش لائٹ، موسم): انٹرنیٹ (اشتہارات کے لیے)، ACCESS_NETWORK_STATE، ممکنہ طور پر LOCATION (صرف موسم)۔ اس سے آگے کی کوئی بھی چیز مشکوک ہے۔
- اگر فہرست میں کوئی چیز زمرے کے مطابق نہیں ہے تو انسٹال نہ کریں۔ کیلکولیٹر کو SMS تک رسائی کی ضرورت کی کوئی معقول وجہ نہیں ہے۔
وہی منطق لاگو ہوتی ہے چاہے فائل ایک APK ہو، ایک XAPK (جہاں ہم اندرونی بیس APK کو پڑھتے ہیں)، یا ایک APKS بنڈل (جہاں ہم ہر اسپلٹ کا مینی فیسٹ پڑھتے ہیں)۔
کمانڈ لائن سے کرنا
اگر آپ ٹرمینل روٹ کو ترجیح دیتے ہیں تو، Android SDK aapt2 بھیجتا ہے، جو سادہ XML میں کسی بھی APK سے مینی فیسٹ ڈمپ کرتا ہے:
aapt2 dump badging example.apk | grep "uses-permission"
یا ایک ہی وقت میں دستخطی سرٹیفکیٹ کی تصدیق کے لیے apksigner استعمال کریں:
apksigner verify --print-certs example.apk
براؤزر ٹول ان صارفین کے لیے وہی کام کرتا ہے جو صرف ایک فائل کی جانچ کرنے کے لیے SDK انسٹال نہیں کرتے۔
اکثر پوچھے گئے سوالات (FAQ)
کیا میں APK انسٹال کرنے کے بعد اجازت سے انکار کر سکتا ہوں؟
جی ہاں اینڈروئیڈ 6.0 اور اس سے زیادہ پر، آپ انفرادی خطرناک اجازتوں کو آن یا آف کرنے کے لیے ترتیبات > ایپس > [ایپ کا نام] > اجازتیں۔ پر جا سکتے ہیں۔
کیا XAPK فائلوں کو مختلف اجازتیں ہیں؟
ایک XAPK میں ایک یا زیادہ APKs ہوتے ہیں۔ ہر APK کے اندر اس کا اپنا مینی فیسٹ ہوتا ہے۔ ہمارا ٹول آپ کو متعلقہ اجازتیں دکھانے کے لیے بنڈل کے اندر مین APK کا تجزیہ کرے گا۔
ہر ایپ "نیٹ ورک تک رسائی" کیوں مانگتی ہے؟
تجزیات، بگ رپورٹنگ، یا اشتہارات کے لیے تقریباً تمام ایپس کو انٹرنیٹ تک رسائی کی ضرورت ہوتی ہے۔ اگرچہ یہ ایک عام بات ہے، یہ چوری شدہ ڈیٹا کو ہیکر کے سرور پر بھیجنے کا طریقہ بھی ہے۔
انسٹال کرنے سے پہلے مینی فیسٹ کی اجازتوں کا معائنہ کرنا
آپ جو نہیں دیکھ سکتے اس کا فیصلہ نہیں کر سکتے۔ آپ کو سائڈ لوڈ کرنے سے پہلے APK کی اجازتیں دیکھیں پر دس سیکنڈ خرچ کرنا یہ جاننے کے درمیان فرق ہے کہ کوئی ایپ کس تک پہنچ سکتی ہے اور صرف اس امید میں کہ وہ برتاؤ کرے گی۔ پہلے فہرست پڑھیں، اور دوسری انسٹال کریں۔