APK इंस्टॉल करने से पहले Android ऐप अनुमतियां कैसे देखें

A smartphone showing a list of app permissions with a magnifying glass

जब आप Google Play Store से कोई ऐप इंस्टॉल करते हैं, तो Android एक सरल सारांश दिखाता है कि ऐप क्या एक्सेस कर सकता है। किसी गैर-प्ले स्रोत से APK को साइडलोड करें और आपके पास ऐसा कोई सुरक्षा जाल नहीं है, जब तक कि आप स्वयं मैनिफेस्ट नहीं पढ़ते। "क्या वॉलपेपर ऐप को वास्तव में एसएमएस और माइक्रोफ़ोन एक्सेस की आवश्यकता होनी चाहिए?" बिल्कुल उसी प्रकार का प्रश्न है जिसका उत्तर देने में यह मार्गदर्शिका आपकी सहायता करेगी।

इस प्रकार वही वर्कफ़्लो है जिसका उपयोग हमारी टीम किसी अपरिचित APK को ट्राइ करते समय करती है: इसे खोलें, uses-permission प्रविष्टियाँ पढ़ें, सुरक्षा स्तरों को डीकोड करें, और तुलना करें कि ऐप कहते हैं को इसकी श्रेणी के लिए आमतौर पर क्या आवश्यकता होती है। हमारा ऑनलाइन APK जानकारी उपकरण आपके लिए बाइनरी-XML डिकोडिंग करता है इसलिए पूरी प्रक्रिया में लगभग दस सेकंड लगते हैं।

पढ़ने का समय: ~9 मिनट. आवश्यक उपकरण: एक ब्राउज़र; वैकल्पिक रूप से apksigner और aapt2 यदि आप किसी टर्मिनल से समान जाँच करना चाहते हैं तो Android SDK से। आख़िर में आप क्या कर पाएंगे: किसी भी APK की पूर्ण अनुमति सूची पढ़ें, चार या पांच "उच्च-प्रभाव" अनुरोधों को देखें जो लगभग हमेशा परेशानी का संकेत देते हैं, और तय करें कि इंस्टॉल करने से पहले इंस्टॉल करना है, बाद में नहीं।

ऑडिटिंग अनुमतियों को लेकर परेशानी क्यों?

दुर्भावनापूर्ण डेवलपर लोकप्रिय निःशुल्क ऐप्स लेते हैं, उनमें बदलाव करते हैं और उन्हें तृतीय-पक्ष साइटों पर पुनः जारी करते हैं। हालाँकि ऐप सामान्य रूप से दिख सकता है और काम कर सकता है, लेकिन इसका छिपा हुआ कोड आपकी संपर्क सूची की प्रतिलिपि बना सकता है या आपके पृष्ठभूमि ऑडियो को रिकॉर्ड कर सकता है। अनुमतियाँ पूर्व स्थापना देखकर, आप "अनुमति रेंगना" के इन लाल झंडों को देख सकते हैं।

किसी APK फ़ाइल का ऑडिट कैसे करें (ऑनलाइन)

हमारा APK जानकारी उपकरण आपकी फ़ाइल का मेनिफेस्ट पूरी तरह से आपके ब्राउज़र में पढ़ता है; फ़ाइल कभी भी सर्वर पर अपलोड नहीं की जाती है, और कोई कोड निष्पादित नहीं किया जाता है। इसका उपयोग कैसे करें यहां बताया गया है:

प्रक्रिया:

  1. APK जानकारी पृष्ठ पर जाएं.
  2. अपनी .apk फ़ाइल चुनें।
  3. विश्लेषण समाप्त होने तक प्रतीक्षा करें (आमतौर पर 5 सेकंड)।
  4. अनुमति अनुभाग तक नीचे स्क्रॉल करें।
  5. उच्च जोखिम वाले झंडे देखें जैसे: READ_SMS, PROCESS_OUTGOING_CALLS, या ACCESS_FINE_LOCATION।

अनुमति लाल झंडा सूची

यदि कोई कैलकुलेटर या टॉर्च ऐप READ_CONTACTS या RECORD_AUDIO मांगता है, तो फ़ाइल को तुरंत हटा दें। इन ऐप्स के पास वह डेटा होने का कोई वैध कारण नहीं है।

Android अनुमति स्तर को समझना

सभी अनुमतियाँ समान नहीं बनाई गई हैं। Android उन्हें तीन स्तरों में वर्गीकृत करता है:

मैन्युअल विधि (ज़िप व्यूअर का उपयोग करके)

यदि आपके पास कुछ तकनीकी कौशल है, तो आप स्वयं अनुमतियों का ऑडिट कर सकते हैं:

  1. app.apk का नाम बदलकर app.zip करें और इसे खोलें।
  2. AndroidManifest.xml खोजें। (नोट: यह बाइनरी फॉर्मेट में है और टेक्स्ट एडिटर में अस्पष्ट जैसा दिखेगा)।
  3. इसे पढ़ने योग्य टेक्स्ट में बदलने के लिए XMLप्रिंटर जैसे टूल का उपयोग करें।
  4. <uses-permission> से शुरू होने वाले टैग खोजें।

सिफ़ारिश: हमारे ऑनलाइन उपकरण का उपयोग करना बहुत तेज़ है जो इसे आपके लिए तुरंत डिकोड करता है।

अभी अपने ऐप्स का ऑडिट करें

ठीक-ठीक जानें कि आपके ऐप्स क्या मांग रहे हैं। कोई रहस्य नहीं, कोई जोखिम नहीं.

APK अनुमतियाँ जाँचें

वास्तव में AndroidManifest.xml में क्या संग्रहीत है

मेनिफेस्ट ऐप द्वारा घोषित प्रत्येक अनुमति, घटक और सुविधा के लिए सत्य का स्रोत है। APK के अंदर, फ़ाइल बाइनरी XML फॉर्म में है, न कि सादा टेक्स्ट जो आप स्रोत कोड में देखते हैं, इसलिए इसे सामान्य टेक्स्ट एडिटर के साथ नहीं पढ़ा जा सकता है। हमारा APK इन्फो टूल बाइनरी XML को डीकोड करता है और प्रासंगिक टैग प्रदर्शित करता है। सबसे महत्वपूर्ण ये हैं:

अनुमति सुरक्षा स्तर: धोखा शीट

Android प्रत्येक अनुमति को "सुरक्षा स्तर" निर्दिष्ट करता है। यह जानना कि अनुरोध किस स्तर का है, आपको बताता है कि ओएस इसे कितनी गंभीरता से लेगा।

सुरक्षा स्तर प्रयोगकर्ता का अनुभव उदाहरण
सामान्य इंस्टालेशन के समय चुपचाप अनुमति दे दी गई। कोई संकेत नहीं. इंटरनेट, वाइब्रेट, ACCESS_NETWORK_STATE, WAKE_LOCK
खतरनाक पहली बार सुविधा का उपयोग करने पर रनटाइम प्रॉम्प्ट। सेटिंग्स में प्रतिसंहरणीय. कैमरा, RECORD_AUDIO, पढ़ें_संपर्क, ACCESS_FINE_LOCATION
हस्ताक्षर केवल अनुदान देने वाले ऐप या ओएस के समान प्रमाणपत्र के साथ हस्ताक्षरित ऐप्स को ही अनुदान दिया जाता है। BIND_VPN_सेवा, INSTALL_PACKAGES (केवल सिस्टम)
हस्ताक्षर|विशेषाधिकार प्राप्त केवल सिस्टम छवि की priv-app निर्देशिका में पहले से इंस्टॉल किए गए ऐप्स के लिए उपलब्ध है। उपयोगकर्ता प्रबंधित करें, लॉग पढ़ें
एपोप/भूमिका सक्षम करने के लिए एक अलग सेटिंग प्रवाह की आवश्यकता है। सिस्टम_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE

"छिपी हुई" अनुमतियों का वास्तव में क्या मतलब है

एक आम ग़लतफ़हमी यह है कि कुछ अनुमतियाँ गुप्त होती हैं। वे नहीं हैं: ऐप द्वारा उपयोग की जाने वाली प्रत्येक अनुमति को AndroidManifest.xml में घोषित किया जाना चाहिए, और ओएस वहां सूचीबद्ध नहीं होने वाली किसी भी अनुमति को देने से इंकार कर देता है। लोग आमतौर पर "छिपे हुए" से जो मतलब रखते हैं वह दो चीजों में से एक है:

किसी भी तरह, उत्तर एक ही है: मैनिफेस्ट पढ़ें, प्ले स्टोर विवरण पर अकेले भरोसा न करें।

कार्यान्वित उदाहरण: एक वास्तविक APK का ऑडिट करना

मान लीजिए कि आपके डाउनलोड फ़ोल्डर में example.apk है। यहां सटीक वर्कफ़्लो है:

  1. अपने ब्राउज़र में APK जानकारी उपकरण खोलें।
  2. APK को अपलोड क्षेत्र पर छोड़ें। प्रसंस्करण स्थानीय स्तर पर होता है; फ़ाइल आपके डिवाइस को नहीं छोड़ती है.
  3. अनुमतियां अनुभाग पढ़ें. प्रत्येक प्रविष्टि स्थिर नाम (android.permission.READ_CONTACTS और यह जो अनुमति देती है उसका एक सरल भाषा विवरण दिखाती है)।
  4. ऐप की श्रेणी के विरुद्ध सूची की तुलना करें। मोटे तौर पर, उम्मीद करें:
    • कैमरा ऐप्स: कैमरा, RECORD_AUDIO (वीडियो के लिए), स्टोरेज/मीडिया लेखन
    • मैसेजिंग ऐप्स: इंटरनेट, READ_CONTACTS, SEND_SMS (केवल यदि SMS-आधारित हो), RECORD_AUDIO (वॉइस नोट्स के लिए), कैमरा (फोटो भेजने के लिए)
    • खेल: इंटरनेट, कभी-कभी RECORD_AUDIO (इन-गेम वॉयस चैट के लिए), बिलिंग-संबंधित अनुमतियाँ; शायद ही कुछ और
    • उपयोगिता ऐप्स (कैलकुलेटर, टॉर्च, मौसम): इंटरनेट (विज्ञापनों के लिए), ACCESS_NETWORK_STATE, संभवतः स्थान (केवल मौसम)। इससे आगे कुछ भी संदिग्ध है.
  5. यदि सूची में कुछ भी श्रेणी में फिट नहीं बैठता है, तो इंस्टॉल न करें। ऐसा कोई उचित कारण नहीं है कि कैलकुलेटर को एसएमएस एक्सेस की आवश्यकता हो।

वही तर्क लागू होता है चाहे फ़ाइल एक 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 इंस्टॉल करने के बाद अनुमति देने से इनकार कर सकता हूं?

हाँ। Android 6.0 और उच्चतर पर, आप व्यक्तिगत खतरनाक अनुमतियों को चालू या बंद करने के लिए सेटिंग्स > ऐप्स > [ऐप का नाम] > अनुमतियाँ पर जा सकते हैं।

क्या XAPK फ़ाइलों की अलग-अलग अनुमतियाँ हैं?

एक XAPK में एक या अधिक APK होते हैं। अंदर मौजूद प्रत्येक APK का अपना मेनिफेस्ट होता है। हमारा टूल आपको प्रासंगिक अनुमतियाँ दिखाने के लिए बंडल के भीतर मुख्य APK का विश्लेषण करेगा।

प्रत्येक ऐप "नेटवर्क एक्सेस" क्यों मांगता है?

लगभग सभी ऐप्स को एनालिटिक्स, बग रिपोर्टिंग या विज्ञापनों के लिए इंटरनेट एक्सेस की आवश्यकता होती है। हालाँकि यह सामान्य है, लेकिन यह वह तरीका भी है जिससे चुराया गया डेटा हैकर के सर्वर पर भेजा जाता है।

इंस्टॉल पर टैप करने से पहले प्रकट अनुमतियों का निरीक्षण करना

आप जो नहीं देख सकते उसका निर्णय नहीं कर सकते। साइडलोड करने से पहले APK की अनुमतियाँ देखें पर दस सेकंड खर्च करना यह जानने के बीच का अंतर है कि कोई ऐप किस तक पहुंच सकता है और बस यह उम्मीद करना कि यह व्यवहार करेगा। पहले सूची पढ़ें, और दूसरा इंस्टॉल करें।

एमएसटी शेफेल द्वारा इंजीनियर और प्रलेखित लीड डेवलपर और Android पैकेज आर्किटेक्ट • Android 12-15 पर सत्यापित

Mst Shaefale xapktoapk.com पर क्लाइंट-साइड XAPK/APKS मर्जर, बाइनरी मेनिफेस्ट पार्सर और APK v1+v2 साइनिंग टूल्स का रखरखाव करता है। क्या आपको कोई पुराना कमांड या OS परिवर्तन दिखाई देता है? एक संपादकीय नोट भेजें.