APK फ़ाइल की संरचना और उसका विश्लेषण
एक एंड्रॉइड एप्लीकेशन पैकेज (APK) वास्तव में एक ज़िप आर्काइव होता है जिसमें ऐप को चलाने के लिए आवश्यक सभी कोड, संसाधन, एसेट और मैनिफेस्ट फ़ाइलें शामिल होती हैं। जब आप किसी APK फ़ाइल को अपने डिवाइस पर इंस्टॉल करते हैं, तो आप सिस्टम को उन सभी निर्देशों और अनुमतियों को लागू करने की अनुमति देते हैं जो डेवलपर ने पैकेज के भीतर घोषित की हैं। इंस्टॉल करने से पहले इन विवरणों की जांच करना सुरक्षा और अनुकूलता दोनों के लिए महत्वपूर्ण है।
"APK इन्फो व्यूअर" एक मुफ्त ऑनलाइन टूल है जो उपयोगकर्ताओं को किसी भी APK फ़ाइल को इंस्टॉल किए बिना उसके आंतरिक विवरणों और मेटाडेटा का विश्लेषण करने की अनुमति देता है। यह टूल पूरी तरह से आपके वेब ब्राउज़र के भीतर एक लोकल वर्कर के माध्यम से काम करता है। इसका मतलब है कि आपकी फ़ाइलें या डेटा किसी बाहरी सर्वर पर अपलोड नहीं किए जाते हैं, और न ही ऐप आपके डिवाइस पर इंस्टॉल या रन होता है। यह टूल 500 MB तक की एकल .apk फ़ाइल को स्वीकार करता है। यदि आप एक साथ कई फ़ाइलें अपलोड करने का प्रयास करते हैं, तो टूल केवल पहली फ़ाइल को प्रोसेस करता है और "एक समय में एक फ़ाइल — पहले वाले की जाँच की जा रही है।" नोट प्रदर्शित करता है।
एंड्रॉइड SDK वर्शन और सिस्टम आवश्यकताएं
प्रत्येक APK फ़ाइल में यह निर्दिष्ट होना चाहिए कि उसे चलने के लिए एंड्रॉइड ऑपरेटिंग सिस्टम के किस संस्करण की आवश्यकता है। टूल के आवश्यकताएं (आवश्यकताएं) अनुभाग में निम्नलिखित महत्वपूर्ण पैरामीटर प्रदर्शित होते हैं:
- न्यूनतम Android (
न्यूनतम Android): यह वह सबसे पुराना एंड्रॉइड संस्करण या API स्तर है जिस पर ऐप चल सकता है। इसेAndroid ‹version› (API ‹level›)या केवलAPI ‹level›के रूप में दिखाया जाता है। - टार्गेट Android (
टारगेट Android): यह उस एंड्रॉइड संस्करण को दर्शाता है जिसके लिए ऐप को डिज़ाइन और टेस्ट किया गया है। यह सिस्टम को बताता है कि ऐप पर कौन से सुरक्षा और व्यवहार संबंधी नियम लागू करने हैं। इसे भीAndroid ‹version› (API ‹level›)याAPI ‹level›के रूप में प्रदर्शित किया जाता। - अधिकतम SDK (
अधिकतम SDK ‹n›): यदि डेवलपर ने ऐप के चलने के लिए कोई अधिकतम सीमा तय की है, तो यह मान यहाँ दिखाई देता है।
इन संस्करणों की जांच करने से यह सुनिश्चित होता है कि ऐप आपके विशिष्ट डिवाइस के एंड्रॉइड वर्शन के साथ संगत है या नहीं।
अनुमतियाँ और "डेंजरस" वर्गीकरण
एंड्रॉइड ऐप्स को संवेदनशील सिस्टम सुविधाओं या उपयोगकर्ता के निजी डेटा तक पहुँचने के लिए अनुमतियों (अनुमतियां) का अनुरोध करना पड़ता है। "APK इन्फो व्यूअर" इन सभी अनुरोधित अनुमतियों को पार्स करता है और उन्हें अनुमतियां (अनुमतियां) अनुभाग में सूचीबद्ध करता है।
सुरक्षा को ध्यान में रखते हुए, टूल अनुमतियों को इस प्रकार व्यवस्थित करता है:
- प्राथमिकता के आधार पर सॉर्टिंग: जिन अनुमतियों को एंड्रॉइड द्वारा उपयोगकर्ता की गोपनीयता के लिए जोखिम भरा माना जाता है, उन्हें सूची में सबसे ऊपर प्राथमिकता दी जाती है।
- डेंजरस बैज: ऐसी अनुमतियों के बगल में एक
डेंजरस(डेंजरस) बैज प्रदर्शित किया जाता है जो निजी डेटा जैसे कि स्थान, संपर्क, कैमरा, माइक्रोफ़ोन या स्टोरेज तक पहुँच सकती हैं।
यह वर्गीकरण उपयोगकर्ताओं को यह तुरंत मूल्यांकन करने में मदद करता है कि क्या ऐप की मांगें उसकी कार्यक्षमता के अनुरूप हैं।
ऐप कंपोनेंट्स और उनकी दृश्यता
एंड्रॉइड एप्लिकेशन चार मुख्य प्रकार के घटकों या कंपोनेंट्स से बने होते हैं। टूल इन कंपोनेंट्स को कंपोनेंट्स (कंपोनेंट्स) अनुभाग के तहत वर्गीकृत करता है:
| कंपोनेंट श्रेणी | विवरण और विशेषताएँ |
|---|---|
| Activities | ऐप के उपयोगकर्ता इंटरफ़ेस (UI) स्क्रीन। यदि कोई स्क्रीन बाहरी ऐप्स द्वारा लॉन्च की जा सकती है, तो उसे एक्सपोर्टेड (एक्सपोर्टेड) लेबल के साथ दिखाया जाता है। |
| Services | पृष्ठभूमि में चलने वाले घटक जो बिना किसी UI के काम करते हैं। बाहरी पहुंच के लिए एक्सपोर्टेड लेबल प्रदर्शित होता है। |
| Receivers | सिस्टम-व्यापी या ऐप-विशिष्ट प्रसारण संदेशों को प्राप्त करने वाले घटक। बाहरी संदेशों को स्वीकार करने पर एक्सपोर्टेड लेबल दिखता है। |
| Providers | ऐप्स के बीच डेटा साझा करने वाले घटक। टूल इनका प्रोवाइडर अथॉरिटी या कोई नहीं (कोई नहीं) मान और एक्सपोर्टेड लेबल दिखाता है। |
इंटरफ़ेस को व्यवस्थित रखने के लिए, टूल प्रत्येक कंपोनेंट श्रेणी में अधिकतम 100 प्रविष्टियाँ प्रदर्शित करता है। यदि संख्या इससे अधिक होती है, तो सूची के अंत में +‹count› अधिक लेबल जोड़ दिया जाता है।
नेटिव कोड, संसाधन और फ़ाइल हैश
आधुनिक एंड्रॉइड डिवाइस विभिन्न प्रोसेसर आर्किटेक्चर पर चलते हैं। टूल का नेटिव कोड (नेटिव कोड) अनुभाग यह दिखाता है कि ऐप किन प्रोसेसर प्रकारों (ABIs) का समर्थन करता है और उसमें कितने नेटिव लाइब्रेरी मौजूद हैं।
इसके अतिरिक्त, संसाधन (संसाधन) अनुभाग पैकेज के भीतर मौजूद संसाधनों का विवरण देता है:
- स्क्रीन डेंसिटी (
स्क्रीन डेंसिटी): ऐप द्वारा समर्थित स्क्रीन रिज़ॉल्यूशन । - संसाधन फ़ाइलें (
संसाधन फ़ाइलें): लेआउट, इमेज और अन्य संसाधन । - एसेट फ़ाइलें (
एसेट फ़ाइलें): ऐप के साथ बंडल की गई अतिरिक्त फ़ाइलें। - कोड फ़ाइलें (
कोड फ़ाइलें (.dex)): कंपाइल किए गए जावा/कोटलिन कोड वाली डेलविक एक्ज़ीक्यूटेबल फ़ाइलें। - पैकेज में फ़ाइलें (
पैकेज में फ़ाइलें): APK के भीतर कुल फ़ाइलों की संख्या।
सुरक्षा और सत्यापन के लिए, टूल फ़ाइल हैश (फ़ाइल हैश) अनुभाग में पूरी APK फ़ाइल के MD5, SHA-1, और SHA-256 क्रिप्टोग्राफिक हैश की गणना करके प्रदर्शित करता है।
कोड साइनिंग स्कीम्स और सिग्नेचर विश्लेषण
एंड्रॉइड सिस्टम पर इंस्टॉल होने वाले प्रत्येक ऐप का डिजिटल रूप से हस्ताक्षरित होना अनिवार्य है। "APK इन्फो व्यूअर" APK साइनिंग ब्लॉक (v1, v2, v3, और v3.1 स्कीम्स) से X.509 सर्टिफिकेट निकालता है और हस्ताक्षर (हस्ताक्षर) अनुभाग में निम्नलिखित विवरण प्रदर्शित करता है:
- हस्ताक्षरकर्ता संख्या:
हस्ताक्षरकर्ता ‹n›के रूप में प्रदर्शित। - सर्टिफिकेट विवरण: विषय (
विषय), जारीकर्ता (जारीकर्ता), और सीरियल नंबर (सीरियल नंबर)। - वैधता अवधि: वैध प्रारंभ तिथि (
वैध प्रारंभ) और वैध समाप्ति तिथि (वैध समाप्ति)। - एल्गोरिदम: सिग्नेचर एल्गोरिद्म (
सिग्नेचर एल्गोरिथ्म) और कुंजी एल्गोरिद्म (कुंजी एल्गोरिथ्म)। - फिंगरप्रिंट्स: सर्टिफिकेट के MD5, SHA-1, और SHA-256 फिंगरप्रिंट।
यदि पैकेज में कोई वैध हस्ताक्षर ब्लॉक नहीं मिलता है, तो टूल चेतावनी देता है: "कोई मान्य सिग्नेचर ब्लॉक नहीं मिला — पैकेज बिना हस्ताक्षर वाला या रीपैकेज्ड हो सकता है।"। ध्यान दें कि टूल केवल इन विवरणों को निकालता है; यह हस्ताक्षरों की क्रिप्टोग्राफिक अखंडता या प्रकाशक की वास्तविक पहचान को सत्यापित नहीं करता है।
त्रुटियाँ और सीमाएँ
टूल का उपयोग करते समय कुछ विशिष्ट त्रुटि संदेश और सीमाएँ सामने आ सकती हैं:
- आकार सीमा: यदि फ़ाइल 500 MB से अधिक है, तो यह संदेश दिखाई देता है:
"यह फ़ाइल 500 MB से अधिक है — ब्राउज़र टैब द्वारा सुरक्षित रूप से जाँचने के लिए बहुत बड़ी है।"। - असमर्थित प्रारूप:
- स्प्लिट पैकेज अपलोड करने पर:
"यह एक XAPK स्प्लिट पैकेज है — कई APK का एक कंटेनर। बेस APK को निकालें और इसके बजाय उस फ़ाइल की जाँच करें।"। - एंड्रॉइड ऐप बंडल अपलोड करने पर:
"यह एक Android App Bundle (.aab) है — एक प्रकाशन प्रारूप, इंस्टॉल होने योग्य APK नहीं। इसके बजाय बिल्ड किए गए APK की जाँच करें।"। - गैर-APK फ़ाइल अपलोड करने पर:
"यह APK जैसा नहीं लगता: अंदर कोई पठनीय AndroidManifest.xml नहीं मिला।"।
- स्प्लिट पैकेज अपलोड करने पर:
- क्षतिग्रस्त फ़ाइलें: यदि फ़ाइल अधूरी या दूषित है:
"पैकेज क्षतिग्रस्त या अधूरा लगता है, इसलिए इसकी सामग्री को पढ़ा नहीं जा सका।"। - रीडिंग और सामान्य विफलता: फ़ाइल पढ़ने में समस्या होने पर
"फ़ाइल को पढ़ा नहीं जा सका। इसे दोबारा चुनें।"या अन्य विफलताओं के लिए"जाँच विफल रही। दूसरी फ़ाइल आज़माएँ।"प्रदर्शित होता है।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
मैं बिना इंस्टॉल किए किसी APK से क्या जान सकता हूँ?
काफी कुछ: ऐप का पैकेज नाम और संस्करण, इसे किन एंड्रॉइड संस्करणों की आवश्यकता है, यह कौन सी अनुमतियाँ मांगता है, यह कौन सी स्क्रीन और बैकग्राउंड कंपोनेंट्स घोषित करता है, यह किन प्रोसेसर प्रकारों के लिए नेटिव कोड रखता है, और यह किन सर्टिफिकेट से साइन किया गया था।
क्या यह टूल मुझे बता सकता है कि कोई APK मैलवेयर है या नहीं?
नहीं — और किसी भी ऐसे टूल से सावधान रहें जो त्वरित स्कैन से निर्णय देने का वादा करता है। यहाँ आपको तथ्य मिलते हैं: अनुमतियाँ, कंपोनेंट्स, साइनर और हैश। डेवलपर द्वारा प्रकाशित जानकारी से इनकी तुलना करें, और आधिकारिक रिलीज़ से अलग साइनर या अप्रत्याशित अनुमतियों को दूर रहने का कारण मानें।
कौन सी फ़ाइलें समर्थित हैं?
500 MB तक की सिंगल APK फ़ाइलें। स्प्लिट पैकेज (XAPK, APKM) और Android App Bundle (.aab) एक इंस्टॉल होने योग्य पैकेज के बजाय कंटेनर या प्रकाशन प्रारूप हैं, इसलिए भ्रमित करने वाली रिपोर्ट के बजाय उन्हें एक स्पष्ट संदेश के साथ अस्वीकार कर दिया जाता है।
साइनिंग विवरण मुझे क्या बताते हैं?
हर एंड्रॉइड ऐप साइन किया होता है, और सर्टिफिकेट पहचानता है कि इसे किसने प्रकाशित किया है। आप देखते हैं कि पैकेज में कौन सी सिग्नेचर स्कीमें (v1, v2, v3) हैं और प्रत्येक साइनर का विषय, वैधता अवधि और MD5, SHA-1 व SHA-256 फिंगरप्रिंट क्या हैं। मिलान करने वाले फिंगरप्रिंट वाले दो APK एक ही प्रकाशक से आए थे — आप उस प्रकाशक पर भरोसा करते हैं या नहीं, यह तय करना आपका काम है।
अनुमतियों पर “Dangerous” बैज का क्या अर्थ है?
यह एंड्रॉइड का अपना वर्गीकरण है: खतरनाक अनुमतियाँ निजी डेटा — स्थान, संपर्क, कैमरा, माइक्रोफ़ोन, स्टोरेज — तक पहुँच सकती हैं, इसलिए सिस्टम अनुमति देने से पहले उपयोगकर्ता से पूछता है। बैज कोई आरोप नहीं है; स्थान मांगने वाला मैप ऐप सामान्य है। यह केवल उन अनुमतियों को चिह्नित करता है जिन्हें दो बार पढ़ने की आवश्यकता है।