APK इंस्टॉल करने से पहले Android ऐप अनुमतियां कैसे देखें
जब आप Google Play Store से कोई ऐप इंस्टॉल करते हैं, तो Android एक सरल सारांश दिखाता है कि ऐप क्या एक्सेस कर सकता है। किसी गैर-प्ले स्रोत से APK को साइडलोड करें और आपके पास ऐसा कोई सुरक्षा जाल नहीं है, जब तक कि आप स्वयं मैनिफेस्ट नहीं पढ़ते। "क्या वॉलपेपर ऐप को वास्तव में एसएमएस और माइक्रोफ़ोन एक्सेस की आवश्यकता होनी चाहिए?" बिल्कुल उसी प्रकार का प्रश्न है जिसका उत्तर देने में यह मार्गदर्शिका आपकी सहायता करेगी।
इस प्रकार वही वर्कफ़्लो है जिसका उपयोग हमारी टीम किसी अपरिचित 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 खोजें। (नोट: यह बाइनरी फॉर्मेट में है और टेक्स्ट एडिटर में अस्पष्ट जैसा दिखेगा)।
- इसे पढ़ने योग्य टेक्स्ट में बदलने के लिए XMLप्रिंटर जैसे टूल का उपयोग करें।
- <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"/>: हार्डवेयर सुविधाएँ जो ऐप उपयोग करता है (कैमरा, जीपीएस, एनएफसी)। आवश्यक के रूप में चिह्नित होने पर, Play Store उन डिवाइसों से ऐप को छुपा देता है जिनमें यह सुविधा नहीं है।
- <application android:debuggable="true">: रिलीज़ APK में एक विशाल लाल झंडा। एक डिबग करने योग्य ऐप ADB पहुंच वाले किसी भी व्यक्ति के लिए अपनी मेमोरी और प्रक्रिया स्थिति को उजागर करता है। अस्वीकार करना।
- संवेदनशील गतिविधियों पर <activity android:exported="true">: अन्य ऐप्स को वह स्क्रीन लॉन्च करने देता है। गोपनीयता ऐप के लिए, यह अक्सर ख़राब कोडिंग का संकेत देता है।
अनुमति सुरक्षा स्तर: धोखा शीट
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 में घोषित किया जाना चाहिए, और ओएस वहां सूचीबद्ध नहीं होने वाली किसी भी अनुमति को देने से इंकार कर देता है। लोग आमतौर पर "छिपे हुए" से जो मतलब रखते हैं वह दो चीजों में से एक है:
- सामान्य-स्तर की अनुमतियाँ मौन हैं. उन्हें बिना किसी उपयोगकर्ता सहभागिता के इंस्टॉल समय पर अनुमति मिल जाती है। प्ले स्टोर सारांश उनमें से कुछ को भी नहीं दिखाता है। वे "अनदेखा करना आसान" के अर्थ में "छिपे हुए" हैं, "अप्रकट" के अर्थ में नहीं।
- ऐप-परिभाषित कस्टम अनुमतियाँ। ऐप्स अपने स्वयं के <permission> टैग घोषित कर सकते हैं और उन्हें आंतरिक घटकों पर आवश्यक कर सकते हैं। ये अंतर-ऐप संचार के लिए मौजूद हैं और अपने आप में गोपनीयता की चिंता का विषय नहीं हैं, लेकिन इनका दुरुपयोग किया जा सकता है यदि कोई लोकप्रिय ऐप गलत सुरक्षा स्तर के साथ कस्टम अनुमति की घोषणा करता है और कोई अन्य ऐप इसे पिछले दरवाजे के रूप में उपयोग करता है।
किसी भी तरह, उत्तर एक ही है: मैनिफेस्ट पढ़ें, प्ले स्टोर विवरण पर अकेले भरोसा न करें।
कार्यान्वित उदाहरण: एक वास्तविक APK का ऑडिट करना
मान लीजिए कि आपके डाउनलोड फ़ोल्डर में example.apk है। यहां सटीक वर्कफ़्लो है:
- अपने ब्राउज़र में APK जानकारी उपकरण खोलें।
- APK को अपलोड क्षेत्र पर छोड़ें। प्रसंस्करण स्थानीय स्तर पर होता है; फ़ाइल आपके डिवाइस को नहीं छोड़ती है.
- अनुमतियां अनुभाग पढ़ें. प्रत्येक प्रविष्टि स्थिर नाम (android.permission.READ_CONTACTS और यह जो अनुमति देती है उसका एक सरल भाषा विवरण दिखाती है)।
- ऐप की श्रेणी के विरुद्ध सूची की तुलना करें। मोटे तौर पर, उम्मीद करें:
- कैमरा ऐप्स: कैमरा, RECORD_AUDIO (वीडियो के लिए), स्टोरेज/मीडिया लेखन
- मैसेजिंग ऐप्स: इंटरनेट, READ_CONTACTS, SEND_SMS (केवल यदि SMS-आधारित हो), RECORD_AUDIO (वॉइस नोट्स के लिए), कैमरा (फोटो भेजने के लिए)
- खेल: इंटरनेट, कभी-कभी RECORD_AUDIO (इन-गेम वॉयस चैट के लिए), बिलिंग-संबंधित अनुमतियाँ; शायद ही कुछ और
- उपयोगिता ऐप्स (कैलकुलेटर, टॉर्च, मौसम): इंटरनेट (विज्ञापनों के लिए), ACCESS_NETWORK_STATE, संभवतः स्थान (केवल मौसम)। इससे आगे कुछ भी संदिग्ध है.
- यदि सूची में कुछ भी श्रेणी में फिट नहीं बैठता है, तो इंस्टॉल न करें। ऐसा कोई उचित कारण नहीं है कि कैलकुलेटर को एसएमएस एक्सेस की आवश्यकता हो।
वही तर्क लागू होता है चाहे फ़ाइल एक 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 की अनुमतियाँ देखें पर दस सेकंड खर्च करना यह जानने के बीच का अंतर है कि कोई ऐप किस तक पहुंच सकता है और बस यह उम्मीद करना कि यह व्यवहार करेगा। पहले सूची पढ़ें, और दूसरा इंस्टॉल करें।