ऐप्लिकेशन के एलिमेंट
Android, मोबाइल डिवाइसों के लिए ओपन सोर्स प्लैटफ़ॉर्म और ऐप्लिकेशन एनवायरमेंट उपलब्ध कराता है. मुख्य ऑपरेटिंग सिस्टम, Linux kernel पर आधारित है. Android ऐप्लिकेशन अक्सर Java प्रोग्रामिंग भाषा में लिखे जाते हैं और Android Runtime (ART) वर्चुअल मशीन में चलते हैं. हालांकि, ऐप्लिकेशन को नेटिव कोड में भी लिखा जा सकता है. ऐप्लिकेशन, APK फ़ाइल एक्सटेंशन वाली एक फ़ाइल से इंस्टॉल किए जाते हैं.
Android ऐप्लिकेशन बनाने के लिए, ये मुख्य चीज़ें ज़रूरी हैं:
-
AndroidManifest.xml: AndroidManifest.xml फ़ाइल, कंट्रोल फ़ाइल होती है. इससे सिस्टम को पता चलता है कि ऐप्लिकेशन के सभी टॉप-लेवल कॉम्पोनेंट (खास तौर पर गतिविधियां, सेवाएं, ब्रॉडकास्ट रिसीवर, और कॉन्टेंट देने वाली कंपनियां, जिनके बारे में नीचे बताया गया है) के साथ क्या करना है. इससे यह भी पता चलता है कि किन अनुमतियों की ज़रूरत है.
-
गतिविधियां: आम तौर पर, गतिविधि एक कोड होता है. यह
Activity
क्लास का इस्तेमाल करके, उपयोगकर्ता पर फ़ोकस करने वाले किसी एक टास्क के लिए होता है. आम तौर पर, किसी गतिविधि में उपयोगकर्ता को यूज़र इंटरफ़ेस (यूआई) दिखाना शामिल होता है. हालांकि, ऐसा ज़रूरी नहीं है. कुछ गतिविधियां कभी भी यूआई नहीं दिखाती हैं. आम तौर पर, ऐप्लिकेशन की कोई एक गतिविधि, ऐप्लिकेशन का एंट्री पॉइंट होती है. -
सेवाएं: सेवा एक कोड का ग्रुप होता है, जो बैकग्राउंड में चलता है. यह अपनी प्रोसेस में या किसी दूसरे ऐप्लिकेशन की प्रोसेस के संदर्भ में चल सकता है. अन्य कॉम्पोनेंट, किसी सेवा से "बाइंड" होते हैं और रिमोट प्रोसेस कॉल के ज़रिए उस पर तरीके लागू करते हैं. सेवा का उदाहरण, मीडिया प्लेयर है: जब उपयोगकर्ता मीडिया चुनने वाले यूज़र इंटरफ़ेस (यूआई) से बाहर निकलता है, तब भी हो सकता है कि वह संगीत चलाना जारी रखना चाहे. सेवा, यूज़र इंटरफ़ेस (यूआई) के बंद होने के बाद भी, संगीत को चलाती रहती है.
-
ब्रॉडकास्ट रिसीवर: BroadcastReceiver एक ऐसा ऑब्जेक्ट है जिसे तब इंस्टैंशिएट किया जाता है, जब ऑपरेटिंग सिस्टम या किसी दूसरे ऐप्लिकेशन से Intent के तौर पर जाना जाने वाला आईपीसी (इंटर-प्रोसेस कम्यूनिकेशन) मैकेनिज्म जारी किया जाता है. उदाहरण के लिए, कोई ऐप्लिकेशन कम बैटरी वाले मैसेज के लिए रिसीवर रजिस्टर कर सकता है और उस जानकारी के आधार पर अपना व्यवहार बदल सकता है.
Android की अनुमति का मॉडल: सुरक्षित एपीआई ऐक्सेस करना
Android पर सभी ऐप्लिकेशन, ऐप्लिकेशन सैंडबॉक्स में चलते हैं. डिफ़ॉल्ट रूप से, Android ऐप्लिकेशन सिर्फ़ सीमित सिस्टम संसाधनों को ऐक्सेस कर सकता है. यह सिस्टम, Android ऐप्लिकेशन के उन संसाधनों के ऐक्सेस को मैनेज करता है जिनका इस्तेमाल गलत तरीके से या नुकसान पहुंचाने के मकसद से करने पर, डिवाइस पर उपयोगकर्ता अनुभव, नेटवर्क या डेटा पर बुरा असर पड़ सकता है.
ये पाबंदियां अलग-अलग तरीकों से लागू की जाती हैं. कुछ सुविधाओं पर पाबंदी इसलिए लगाई गई है, क्योंकि संवेदनशील फ़ंक्शन के लिए एपीआई उपलब्ध नहीं हैं. उदाहरण के लिए, सीधे तौर पर सिम कार्ड में बदलाव करने के लिए कोई Android एपीआई उपलब्ध नहीं है. कुछ मामलों में, भूमिकाओं को अलग करने से सुरक्षा से जुड़ी सुविधा मिलती है. जैसे, हर ऐप्लिकेशन के लिए स्टोरेज को अलग करना. अन्य मामलों में, संवेदनशील एपीआई का इस्तेमाल भरोसेमंद ऐप्लिकेशन करते हैं. साथ ही, इन्हें अनुमतियों के तौर पर जाने वाली सुरक्षा व्यवस्था से सुरक्षित रखा जाता है.
इन सुरक्षित एपीआई में ये शामिल हैं:
- कैमरे की सुविधाएं
- जगह की जानकारी का डेटा (जीपीएस)
- ब्लूटूथ फ़ंक्शन
- टेलीफ़ोनी फ़ंक्शन
- एसएमएस/एमएमएस के फ़ंक्शन
- नेटवर्क/डेटा कनेक्शन
इन संसाधनों को सिर्फ़ ऑपरेटिंग सिस्टम से ऐक्सेस किया जा सकता है. डिवाइस पर सुरक्षित एपीआई का इस्तेमाल करने के लिए, ऐप्लिकेशन को अपने मेनिफ़ेस्ट में उन सुविधाओं के बारे में बताना होगा जिनकी उसे ज़रूरत है. Android के 6.0 और उसके बाद के सभी वर्शन में, रनटाइम की अनुमतियों का मॉडल इस्तेमाल किया जाता है. अगर कोई उपयोगकर्ता किसी ऐसे ऐप्लिकेशन की सुविधा का अनुरोध करता है जिसके लिए Protected Audience API की ज़रूरत होती है, तो सिस्टम एक डायलॉग दिखाता है. इसमें उपयोगकर्ता को अनुमति अस्वीकार करने या अनुमति देने के लिए कहा जाता है.
अनुमतियां मिलने के बाद, वे ऐप्लिकेशन पर तब तक लागू रहती हैं, जब तक वह ऐप्लिकेशन इंस्टॉल है. उपयोगकर्ता को भ्रम से बचाने के लिए, सिस्टम ऐप्लिकेशन को दी गई अनुमतियों के बारे में, उपयोगकर्ता को फिर से सूचना नहीं देता. साथ ही, मुख्य ऑपरेटिंग सिस्टम में शामिल या OEM के ज़रिए बंडल किए गए ऐप्लिकेशन, उपयोगकर्ता से अनुमतियों का अनुरोध नहीं करते. किसी ऐप्लिकेशन को अनइंस्टॉल करने पर, उससे मिली अनुमतियां हट जाती हैं. इसलिए, उसे फिर से इंस्टॉल करने पर, आपको अनुमतियां फिर से दिखती हैं.
डिवाइस की सेटिंग में जाकर, उपयोगकर्ता उन ऐप्लिकेशन के लिए अनुमतियां देख सकते हैं जिन्हें उन्होंने पहले इंस्टॉल किया है. उपयोगकर्ता, अपनी पसंद के मुताबिक कुछ सुविधाओं को पूरी तरह से बंद भी कर सकते हैं. जैसे, जीपीएस, रेडियो या वाई-फ़ाई बंद करना.
अगर कोई ऐप्लिकेशन, सुरक्षित की गई ऐसी सुविधा का इस्तेमाल करने की कोशिश करता है जिसका एलान ऐप्लिकेशन के मेनिफ़ेस्ट में नहीं किया गया है, तो आम तौर पर अनुमति न मिलने की वजह से, ऐप्लिकेशन को सुरक्षा से जुड़ा अपवाद दिखता है. सुरक्षित एपीआई की अनुमति की जांच, कम से कम लेवल पर की जाती है, ताकि इसकी प्रक्रिया को गच्चा न दिया जा सके. दूसरी इमेज में, उपयोगकर्ता को दिखने वाले मैसेज का उदाहरण दिया गया है. इसमें, Protected Audience API का ऐक्सेस पाने के लिए अनुरोध करते समय, ऐप्लिकेशन इंस्टॉल होने के दौरान दिखने वाले मैसेज के बारे में बताया गया है.
सिस्टम की डिफ़ॉल्ट अनुमतियों के बारे में जानकारी, https://developer.android.com/reference/android/Manifest.permission.html पर दी गई है. ऐप्लिकेशन, अन्य ऐप्लिकेशन के इस्तेमाल के लिए अपनी अनुमतियां तय कर सकते हैं. ऐसी अनुमतियां, ऊपर दी गई जगह पर नहीं दी गई हैं.
किसी अनुमति की जानकारी देते समय, protectionLevel एट्रिब्यूट से सिस्टम को यह पता चलता है कि उपयोगकर्ता को, अनुमति की ज़रूरत वाले ऐप्लिकेशन के बारे में कैसे बताया जाए या किस व्यक्ति को अनुमति रखने की अनुमति है. ऐप्लिकेशन के लिए खास अनुमतियां बनाने और इस्तेमाल करने के बारे में जानकारी, https://developer.android.com/guide/topics/security/security.html पर दी गई है.
डिवाइस की कुछ सुविधाएं, तीसरे पक्ष के ऐप्लिकेशन के लिए उपलब्ध नहीं हैं. जैसे, एसएमएस ब्रॉडकास्ट के इंटेंट भेजने की सुविधा. हालांकि, OEM के पहले से इंस्टॉल किए गए ऐप्लिकेशन इन सुविधाओं का इस्तेमाल कर सकते हैं. ये अनुमतियां, signatureOrSystem अनुमति का इस्तेमाल करती हैं.
उपयोगकर्ता, तीसरे पक्ष के ऐप्लिकेशन को कैसे समझते हैं
Android, उपयोगकर्ताओं को यह साफ़ तौर पर बताने की कोशिश करता है कि वे तीसरे पक्ष के ऐप्लिकेशन के साथ इंटरैक्ट कर रहे हैं. साथ ही, उपयोगकर्ता को उन ऐप्लिकेशन की सुविधाओं के बारे में भी बताता है. किसी भी ऐप्लिकेशन को इंस्टॉल करने से पहले, उपयोगकर्ता को उन अलग-अलग अनुमतियों के बारे में साफ़ तौर पर मैसेज दिखाया जाता है जिनका अनुरोध ऐप्लिकेशन कर रहा है. इंस्टॉल होने के बाद, उपयोगकर्ता को किसी भी अनुमति की पुष्टि करने के लिए फिर से कहा नहीं जाता.
इंस्टॉलेशन के समय से पहले अनुमतियां दिखाने की कई वजहें हो सकती हैं. यह तब होता है, जब उपयोगकर्ता ऐप्लिकेशन, डेवलपर, और फ़ंक्शन के बारे में जानकारी की समीक्षा कर रहा हो. इससे यह पता चलता है कि ऐप्लिकेशन उनकी ज़रूरतों और उम्मीदों के मुताबिक है या नहीं. यह भी ज़रूरी है कि उपयोगकर्ता ने अब तक ऐप्लिकेशन के लिए, मानसिक या वित्तीय तौर पर कोई प्रतिबद्धता न ली हो. साथ ही, वह ऐप्लिकेशन की तुलना आसानी से अन्य ऐप्लिकेशन से कर सके.
कुछ अन्य प्लैटफ़ॉर्म, उपयोगकर्ता को सूचना देने के लिए एक अलग तरीके का इस्तेमाल करते हैं. ये हर सेशन की शुरुआत में या ऐप्लिकेशन के इस्तेमाल के दौरान, अनुमति का अनुरोध करते हैं. Android का मकसद, उपयोगकर्ताओं को ऐप्लिकेशन के बीच आसानी से स्विच करने की सुविधा देना है. हर बार पुष्टि करने से, उपयोगकर्ता को धीमे अनुभव मिलता है और Android को बेहतर उपयोगकर्ता अनुभव देने में समस्या आती है. इंस्टॉल करते समय, उपयोगकर्ता को अनुमतियों की समीक्षा करने की सुविधा देने पर, अगर उपयोगकर्ता को कोई समस्या होती है, तो वह ऐप्लिकेशन को इंस्टॉल नहीं कर सकता.
साथ ही, यूज़र इंटरफ़ेस से जुड़ी कई स्टडी से पता चला है कि उपयोगकर्ता से बार-बार अनुरोध करने पर, वह दिखने वाले किसी भी डायलॉग के लिए "ठीक है" कहने लगता है. Android की सुरक्षा से जुड़े लक्ष्यों में से एक, उपयोगकर्ता को सुरक्षा से जुड़ी अहम जानकारी को असरदार तरीके से बताना है. ऐसा, ऐसे डायलॉग का इस्तेमाल करके नहीं किया जा सकता जिन्हें उपयोगकर्ता अनदेखा कर देगा. ज़रूरी जानकारी को सिर्फ़ तब दिखाएं, जब वह ज़रूरी हो. इससे उपयोगकर्ता को यह सोचने का समय मिलता है कि वह किस बात पर सहमत हो रहा है.
कुछ प्लैटफ़ॉर्म, ऐप्लिकेशन के फ़ंक्शन के बारे में कोई जानकारी नहीं दिखाते. इस तरीके से, उपयोगकर्ताओं को ऐप्लिकेशन की सुविधाओं को आसानी से समझने और उनके बारे में बातचीत करने में परेशानी होती है. हालांकि, सभी उपयोगकर्ताओं के लिए, पूरी जानकारी के आधार पर फ़ैसला लेना हमेशा संभव नहीं होता. हालांकि, Android के अनुमति मॉडल की मदद से, ऐप्लिकेशन के बारे में जानकारी को कई तरह के उपयोगकर्ता आसानी से ऐक्सेस कर सकते हैं. उदाहरण के लिए, अचानक अनुमतियों के अनुरोध मिलने पर, हो सकता है कि ज़्यादा अनुभवी उपयोगकर्ता, ऐप्लिकेशन के काम करने के तरीके के बारे में अहम सवाल पूछें. साथ ही, Google Play जैसी जगहों पर अपनी समस्याएं शेयर करें. ये समस्याएं सभी उपयोगकर्ताओं को दिखती हैं.
ऐप्लिकेशन इंस्टॉल करते समय मांगी जाने वाली अनुमतियां — Google Translate | इंस्टॉल किए गए ऐप्लिकेशन की अनुमतियां — Gmail |
---|---|
![]() |
![]() |
पहली इमेज. ऐप्लिकेशन के लिए अनुमतियां दिखाना
इंटरप्रोसेस कम्यूनिकेशन
प्रोसेस, UNIX-टाइप के किसी भी पारंपरिक तरीके का इस्तेमाल करके, एक-दूसरे से संपर्क कर सकती हैं. उदाहरण के लिए, फ़ाइल सिस्टम, लोकल सॉकेट या सिग्नल. हालांकि, Linux की अनुमतियां अब भी लागू होंगी.
Android, IPC के नए तरीके भी उपलब्ध कराता है:
-
बाइंडर: यह एक लाइटवाइट क्षमता पर आधारित रिमोट प्रोसेस कॉल मैकेनिज्म है. इसे प्रोसेस में और एक प्रोसेस से दूसरी प्रोसेस में कॉल करते समय बेहतर परफ़ॉर्मेंस के लिए डिज़ाइन किया गया है. बाइंडर को कस्टम Linux ड्राइवर का इस्तेमाल करके लागू किया जाता है. https://developer.android.com/reference/android/os/Binder.html देखें.
-
सेवाएं: ऊपर बताई गई सेवाएं, इंटरफ़ेस उपलब्ध करा सकती हैं. इन्हें सीधे तौर पर, बिंडर का इस्तेमाल करके ऐक्सेस किया जा सकता है.
-
इंटेंट: इंटेंट एक आसान मैसेज ऑब्जेक्ट है, जो किसी काम को करने के लिए "इरादे" को दिखाता है. उदाहरण के लिए, अगर आपका ऐप्लिकेशन कोई वेब पेज दिखाना चाहता है, तो वह यूआरएल देखने के लिए अपना "इंटेंट" दिखाता है. इसके लिए, वह इंटेंट का एक इंस्टेंस बनाता है और उसे सिस्टम को सौंप देता है. सिस्टम, कोड के किसी ऐसे हिस्से का पता लगाता है जो उस इंटेंट को मैनेज कर सकता है. इस मामले में, ब्राउज़र कोड का इस्तेमाल किया जाता है. इंटेंट का इस्तेमाल, पूरे सिस्टम में दिलचस्प इवेंट (जैसे, सूचना) ब्रॉडकास्ट करने के लिए भी किया जा सकता है. https://developer.android.com/reference/android/content/Intent.html देखें.
-
ContentProvider: ContentProvider एक डेटा स्टोरहाउस है, जो डिवाइस पर मौजूद डेटा का ऐक्सेस देता है. इसका सबसे अच्छा उदाहरण, ContentProvider है, जिसका इस्तेमाल उपयोगकर्ता की संपर्क सूची को ऐक्सेस करने के लिए किया जाता है. कोई ऐप्लिकेशन, ContentProvider की मदद से, दूसरे ऐप्लिकेशन का ज़ाहिर किया गया डेटा ऐक्सेस कर सकता है. साथ ही, वह अपना डेटा ज़ाहिर करने के लिए, अपने ContentProvider भी तय कर सकता है. https://developer.android.com/reference/android/content/ContentProvider.html देखें.
नेटवर्क सोकेट या सभी के लिए लिखने की अनुमति वाली फ़ाइलों जैसे अन्य तरीकों का इस्तेमाल करके, आईपीसी को लागू किया जा सकता है. हालांकि, Android के लिए ये आईपीसी फ़्रेमवर्क इस्तेमाल करने का सुझाव दिया जाता है. Android डेवलपर को उपयोगकर्ताओं के डेटा को सुरक्षित रखने और सुरक्षा से जुड़ी समस्याओं से बचने के लिए, सबसे सही तरीकों का इस्तेमाल करने के लिए बढ़ावा दिया जाएगा.
लागत के हिसाब से काम करने वाले एपीआई
'लागत के हिसाब से संवेदनशील एपीआई', ऐसा कोई भी फ़ंक्शन होता है जिससे उपयोगकर्ता या नेटवर्क के लिए लागत जनरेट हो सकती है. Android प्लैटफ़ॉर्म ने, लागत से जुड़े संवेदनशील एपीआई को, ऑपरेटिंग सिस्टम के कंट्रोल वाले सुरक्षित एपीआई की सूची में शामिल किया है. उपयोगकर्ता को तीसरे पक्ष के उन ऐप्लिकेशन को साफ़ तौर पर अनुमति देनी होगी जो लागत से जुड़े संवेदनशील एपीआई का इस्तेमाल करने का अनुरोध करते हैं. इन एपीआई में ये शामिल हैं:
- टेलीफ़ोनी
- SMS/MMS
- नेटवर्क/डेटा
- ऐप्लिकेशन के अंतर्गत बिलिंग
- एनएफ़सी ऐक्सेस
Android 4.2 में, एसएमएस के इस्तेमाल पर ज़्यादा कंट्रोल जोड़ा गया है. अगर कोई ऐप्लिकेशन, प्रीमियम सेवाओं का इस्तेमाल करने वाले किसी ऐसे शॉर्ट कोड पर मैसेज भेजने की कोशिश करता है जिसकी वजह से आपसे अतिरिक्त शुल्क लिया जा सकता है, तो Android आपको इसकी सूचना देगा. उपयोगकर्ता यह चुन सकता है कि ऐप्लिकेशन को मैसेज भेजने की अनुमति देनी है या उसे ब्लॉक करना है.
सिम कार्ड का ऐक्सेस
तीसरे पक्ष के ऐप्लिकेशन के लिए, सिम कार्ड का लो लेवल ऐक्सेस उपलब्ध नहीं है. ओएस, सिम कार्ड के साथ होने वाले सभी कम्यूनिकेशन को मैनेज करता है. इसमें सिम कार्ड की मेमोरी में मौजूद निजी जानकारी (संपर्क) का ऐक्सेस भी शामिल है. ऐप्लिकेशन भी AT निर्देशों को ऐक्सेस नहीं कर सकते, क्योंकि इन्हें रेडियो इंटरफ़ेस लेयर (आरआईएल) ही मैनेज करता है. आरआईएल, इन निर्देशों के लिए कोई हाई लेवल एपीआई उपलब्ध नहीं कराता.
निजी जानकारी
Android ने उपयोगकर्ता के डेटा को ऐक्सेस करने वाले एपीआई को, सुरक्षित एपीआई के सेट में रखा है. सामान्य इस्तेमाल के दौरान, Android डिवाइसों पर उपयोगकर्ताओं के इंस्टॉल किए गए तीसरे पक्ष के ऐप्लिकेशन में भी उपयोगकर्ता का डेटा इकट्ठा किया जाएगा. इस जानकारी को शेयर करने वाले ऐप्लिकेशन, तीसरे पक्ष के ऐप्लिकेशन से डेटा को सुरक्षित रखने के लिए, Android OS की अनुमति की जांच का इस्तेमाल कर सकते हैं.

दूसरी इमेज. उपयोगकर्ता के संवेदनशील डेटा को सिर्फ़ सुरक्षित एपीआई के ज़रिए ऐक्सेस किया जा सकता है
सिस्टम कॉन्टेंट की सेवा देने वाली ऐसी कंपनियों को साफ़ तौर पर बताई गई अनुमतियों के साथ बनाया गया है जिनके पास संपर्क और कैलेंडर जैसी निजी या व्यक्तिगत पहचान से जुड़ी जानकारी हो सकती है. इस जानकारी से उपयोगकर्ता को यह साफ़ तौर पर पता चलता है कि ऐप्लिकेशन को किस तरह की जानकारी दी जा सकती है. इंस्टॉलेशन के दौरान, तीसरे पक्ष का ऐप्लिकेशन इन संसाधनों को ऐक्सेस करने की अनुमति का अनुरोध कर सकता है. अनुमति मिलने पर, ऐप्लिकेशन को इंस्टॉल किया जा सकता है. साथ ही, इंस्टॉल होने के बाद, ऐप्लिकेशन के पास उस डेटा का ऐक्सेस होगा जिसके लिए अनुमति मांगी गई थी.
निजी जानकारी इकट्ठा करने वाले किसी भी ऐप्लिकेशन में, डिफ़ॉल्ट रूप से वह डेटा सिर्फ़ उस ऐप्लिकेशन के लिए उपलब्ध होगा. अगर कोई ऐप्लिकेशन, आईपीसी के ज़रिए डेटा को अन्य ऐप्लिकेशन के लिए उपलब्ध कराना चाहता है, तो ऐक्सेस देने वाला ऐप्लिकेशन, आईपीसी के उस तरीके पर अनुमतियां लागू कर सकता है जिसे ऑपरेटिंग सिस्टम लागू करता है.
संवेदनशील डेटा के इनपुट डिवाइस
Android डिवाइसों में अक्सर संवेदनशील डेटा इनपुट डिवाइस होते हैं. इनकी मदद से, ऐप्लिकेशन आस-पास के वातावरण के साथ इंटरैक्ट कर सकते हैं. जैसे, कैमरा, माइक्रोफ़ोन या जीपीएस. तीसरे पक्ष के ऐप्लिकेशन को इन डिवाइसों को ऐक्सेस करने के लिए, उपयोगकर्ता को पहले साफ़ तौर पर अनुमति देनी होगी. इसके लिए, Android OS की अनुमतियों का इस्तेमाल किया जाएगा. इंस्टॉल होने के बाद, इंस्टॉलर उपयोगकर्ता से नाम के हिसाब से सेंसर की अनुमति मांगेगा.
अगर किसी ऐप्लिकेशन को उपयोगकर्ता की जगह की जानकारी चाहिए, तो उसे उपयोगकर्ता की जगह की जानकारी ऐक्सेस करने की अनुमति लेनी होगी. इंस्टॉल करने के बाद, इंस्टॉलर उपयोगकर्ता से पूछेगा कि क्या ऐप्लिकेशन को उसकी जगह की जानकारी ऐक्सेस करने की अनुमति दी जा सकती है. अगर उपयोगकर्ता को किसी भी ऐप्लिकेशन को अपनी जगह की जानकारी ऐक्सेस करने की अनुमति नहीं देनी है, तो वह किसी भी समय "सेटिंग" ऐप्लिकेशन को चलाकर, "जगह की जानकारी और सुरक्षा" पर जा सकता है. इसके बाद, "वायरलेस नेटवर्क का इस्तेमाल करें" और "जीपीएस सैटलाइट चालू करें" से सही का निशान हटाया जा सकता है. इससे, उपयोगकर्ता के डिवाइस पर मौजूद सभी ऐप्लिकेशन के लिए, जगह की जानकारी पर आधारित सेवाएं बंद हो जाएंगी.
डिवाइस का मेटाडेटा
Android, ऐसे डेटा के ऐक्सेस पर भी पाबंदी लगाने की कोशिश करता है जो अपने-आप तो संवेदनशील नहीं होता, लेकिन इससे उपयोगकर्ता की विशेषताओं, उपयोगकर्ता की प्राथमिकताओं, और डिवाइस के इस्तेमाल के तरीके के बारे में पता चल सकता है.
डिफ़ॉल्ट रूप से, ऐप्लिकेशन के पास ऑपरेटिंग सिस्टम के लॉग, ब्राउज़र के इतिहास, फ़ोन नंबर या हार्डवेयर / नेटवर्क की पहचान करने वाली जानकारी का ऐक्सेस नहीं होता. अगर कोई ऐप्लिकेशन इंस्टॉल के समय इस जानकारी का ऐक्सेस पाने का अनुरोध करता है, तो इंस्टॉलर उपयोगकर्ता से पूछेगा कि क्या ऐप्लिकेशन को यह जानकारी ऐक्सेस करने की अनुमति दी जा सकती है. अगर उपयोगकर्ता ऐक्सेस की अनुमति नहीं देता है, तो ऐप्लिकेशन इंस्टॉल नहीं होगा.
सर्टिफ़िकेट देने वाली संस्थाएं
Android में, सर्टिफ़िकेट देने वाली संस्थाओं के इंस्टॉल किए गए सर्टिफ़िकेट का एक सेट शामिल होता है. ये सर्टिफ़िकेट, सिस्टम में भरोसेमंद माने जाते हैं. Android 7.0 से पहले, डिवाइस बनाने वाली कंपनियां अपने डिवाइसों पर शिप किए गए सीए के सेट में बदलाव कर सकती थीं. हालांकि, Android 7.0 और इसके बाद के वर्शन वाले डिवाइसों में, सिस्टम सीए का एक जैसा सेट होगा. ऐसा इसलिए, क्योंकि डिवाइस बनाने वाली कंपनियों को अब बदलाव करने की अनुमति नहीं है.
Android के स्टॉक सेट में नए सार्वजनिक सीए के तौर पर जोड़े जाने के लिए, सीए को Mozilla सीए को शामिल करने की प्रोसेस पूरी करनी होगी. इसके बाद, Android Open Source Project (AOSP) में मौजूद स्टॉक Android सीए सेट में सीए को जोड़ने के लिए, Android के ख़िलाफ़ सुविधा का अनुरोध दर्ज करना होगा ( https://code.google.com/p/android/issues/entry).
अब भी कुछ सीए ऐसे हैं जो डिवाइस के हिसाब से होते हैं और जिन्हें AOSP सीए के मुख्य सेट में शामिल नहीं किया जाना चाहिए. जैसे, मोबाइल और इंटरनेट सेवा देने वाली कंपनियों के निजी सीए. इनकी ज़रूरत, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के इन्फ़्रास्ट्रक्चर के कॉम्पोनेंट को सुरक्षित तरीके से ऐक्सेस करने के लिए पड़ सकती है. जैसे, एसएमएस/एमएमएस गेटवे. डिवाइस बनाने वाली कंपनियों को हमारा सुझाव है कि वे निजी CA को सिर्फ़ उन कॉम्पोनेंट/ऐप्लिकेशन में शामिल करें जिन पर इन CA का भरोसा करना ज़रूरी है. ज़्यादा जानकारी के लिए, नेटवर्क सुरक्षा कॉन्फ़िगरेशन देखें.
ऐप पर हस्ताक्षर
कोड साइन करने की सुविधा की मदद से, डेवलपर ऐप्लिकेशन के लेखक की पहचान कर सकते हैं. साथ ही, वे मुश्किल इंटरफ़ेस और अनुमतियों के बिना, अपने ऐप्लिकेशन को अपडेट कर सकते हैं. Android प्लैटफ़ॉर्म पर चलने वाले हर ऐप्लिकेशन पर, डेवलपर को साइन करना होगा. ऐसे ऐप्लिकेशन जिन्हें साइन किए बिना इंस्टॉल करने की कोशिश की जाती है उन्हें Google Play या Android डिवाइस पर मौजूद पैकेज इंस्टॉलर, दोनों में से किसी एक की ओर से अस्वीकार कर दिया जाता है.
Google Play पर, ऐप्लिकेशन साइनिंग की सुविधा से, Google और डेवलपर के बीच भरोसा बढ़ता है. साथ ही, डेवलपर को यह भी पता चलता है कि उनके ऐप्लिकेशन को Android डिवाइस पर बिना किसी बदलाव के उपलब्ध कराया गया है. साथ ही, डेवलपर को अपने ऐप्लिकेशन के व्यवहार के लिए ज़िम्मेदार माना जा सकता है.
Android पर, ऐप्लिकेशन को उसके ऐप्लिकेशन सैंडबॉक्स में डालने के लिए, ऐप्लिकेशन साइनिंग पहला चरण है. हस्ताक्षर किए गए ऐप्लिकेशन के सर्टिफ़िकेट से यह पता चलता है कि कौनसा उपयोगकर्ता आईडी, किस ऐप्लिकेशन से जुड़ा है. अलग-अलग ऐप्लिकेशन, अलग-अलग उपयोगकर्ता आईडी के तहत चलते हैं. ऐप्लिकेशन साइनिंग की सुविधा से यह पक्का होता है कि कोई ऐप्लिकेशन, अच्छी तरह से तय किए गए आईपीसी के अलावा किसी अन्य ऐप्लिकेशन को ऐक्सेस न कर सके.
जब किसी Android डिवाइस पर कोई ऐप्लिकेशन (APK फ़ाइल) इंस्टॉल किया जाता है, तो पैकेज मैनेजर इस बात की पुष्टि करता है कि APK में शामिल सर्टिफ़िकेट से APK को सही तरीके से साइन किया गया है या नहीं. अगर सर्टिफ़िकेट (या ज़्यादा सटीक तरीके से, सर्टिफ़िकेट में मौजूद सार्वजनिक कुंजी) डिवाइस पर किसी दूसरे APK पर हस्ताक्षर करने के लिए इस्तेमाल की गई कुंजी से मेल खाता है, तो नए APK के पास मेनिफ़ेस्ट में यह बताने का विकल्प होता है कि वह इसी तरह हस्ताक्षर किए गए अन्य APKs के साथ यूआईडी शेयर करेगा.
ऐप्लिकेशन पर तीसरे पक्ष (OEM, ऑपरेटर, अन्य मार्केट) के ज़रिए या खुद साइन किया जा सकता है. Android, खुद से हस्ताक्षर किए गए सर्टिफ़िकेट का इस्तेमाल करके कोड साइन करने की सुविधा देता है. डेवलपर, बाहरी मदद या अनुमति के बिना इसे जनरेट कर सकते हैं. ऐप्लिकेशन पर किसी केंद्रीय प्राधिकरण का हस्ताक्षर होना ज़रूरी नहीं है. फ़िलहाल, Android ऐप्लिकेशन के सर्टिफ़िकेट के लिए, सीए की पुष्टि नहीं करता.
ऐप्लिकेशन, सिग्नेचर के सुरक्षा लेवल पर सुरक्षा अनुमतियां भी तय कर सकते हैं. इससे, अलग-अलग यूआईडी और ऐप्लिकेशन सैंडबॉक्स बनाए रखते हुए, सिर्फ़ उन ऐप्लिकेशन को ऐक्सेस करने की अनुमति दी जा सकती है जिन्हें एक ही कुंजी से साइन किया गया हो. एक ही यूआईडी शेयर करने की सुविधा की मदद से, शेयर किए गए ऐप्लिकेशन सैंडबॉक्स के साथ ज़्यादा बेहतर तरीके से जुड़ा जा सकता है. इस सुविधा की मदद से, एक ही डेवलपर पासकोड से साइन किए गए दो या उससे ज़्यादा ऐप्लिकेशन, अपने मेनिफ़ेस्ट में एक ही यूआईडी शेयर कर सकते हैं.
ऐप्लिकेशन की पुष्टि करना
Android 4.2 और इसके बाद के वर्शन पर, ऐप्लिकेशन की पुष्टि की जा सकती है. उपयोगकर्ता, "ऐप्लिकेशन की पुष्टि करें" सुविधा को चालू करने का विकल्प चुन सकते हैं. साथ ही, ऐप्लिकेशन इंस्टॉल करने से पहले, ऐप्लिकेशन की पुष्टि करने वाले किसी व्यक्ति या संस्था से ऐप्लिकेशन की पुष्टि कराई जा सकती है. ऐप्लिकेशन की पुष्टि करने की सुविधा, उपयोगकर्ता को तब चेतावनी दे सकती है, जब वह ऐसा ऐप्लिकेशन इंस्टॉल करने की कोशिश करता है जो नुकसान पहुंचा सकता है. अगर कोई ऐप्लिकेशन काफ़ी खराब है, तो यह सुविधा उसे इंस्टॉल होने से रोक सकती है.
डिजिटल राइट मैनेजमेंट
Android प्लैटफ़ॉर्म, डिजिटल राइट मैनेजमेंट (डीआरएम) का ऐसा फ़्रेमवर्क उपलब्ध कराता है जिसे ज़रूरत के हिसाब से बढ़ाया जा सकता है. इसकी मदद से, ऐप्लिकेशन, कॉन्टेंट से जुड़ी लाइसेंस की पाबंदियों के हिसाब से, कॉन्टेंट के अधिकारों को सुरक्षित रख सकते हैं. डीआरएम फ़्रेमवर्क, कई डीआरएम स्कीम के साथ काम करता है. हालांकि, यह तय करना कि किसी डिवाइस पर कौनसी डीआरएम स्कीम काम करें, यह डिवाइस बनाने वाली कंपनी तय करती है.
Android डीआरएम फ़्रेमवर्क को दो लेयर में लागू किया गया है (नीचे दी गई इमेज देखें):
-
डीआरएम फ़्रेमवर्क एपीआई, जो Android ऐप्लिकेशन फ़्रेमवर्क के ज़रिए ऐप्लिकेशन के लिए उपलब्ध कराया जाता है. साथ ही, यह स्टैंडर्ड ऐप्लिकेशन के लिए ART VM के ज़रिए काम करता है.
-
एक नेटिव कोड डीआरएम मैनेजर, जो डीआरएम फ़्रेमवर्क को लागू करता है और डीआरएम प्लग-इन (एजेंट) के लिए इंटरफ़ेस दिखाता है, ताकि अलग-अलग डीआरएम स्कीम के लिए, एनक्रिप्ट (सुरक्षित) किए गए कॉन्टेंट को डिक्रिप्ट (सुरक्षित) करने और उसके अधिकारों को मैनेज करने की सुविधा दी जा सके
तीसरी इमेज. Android प्लैटफ़ॉर्म पर डीआरएम का आर्किटेक्चर