एंड्रॉइड अनुमतियाँ

एंड्रॉइड अनुमतियाँ नियंत्रण प्रदान करती हैं जो उपयोगकर्ता जागरूकता बढ़ाती हैं और संवेदनशील डेटा तक ऐप की पहुंच को सीमित करती हैं। एंड्रॉइड 8.0 और उससे पहले के संस्करण पर अनुमतियों को कॉन्फ़िगर करने में अनुमति सूची शामिल है, जिसके बिना विशेषाधिकार प्राप्त ऐप्स अक्षम हो जाते हैं, भले ही वे priv-app पथ में हों। एंड्रॉइड 9 और उच्चतर पर, एक डिवाइस जो उन ऐप्स का उपयोग करने का प्रयास करता है जो उचित रूप से अनुमति सूची में नहीं हैं, बूट नहीं होगा।

एंड्रॉइड 10 ने एक भूमिका की अवधारणा पेश की, जो कुछ आवश्यकताओं और विशेषाधिकारों से जुड़े सिस्टम के भीतर एक अनूठा नाम है। किसी विशिष्ट उद्देश्य के लिए अनुमतियाँ प्रदान करने के लिए ऐप्स को भूमिकाएँ निर्दिष्ट करें, और प्लेटफ़ॉर्म कॉन्फ़िगरेशन संसाधनों का उपयोग करके डिफ़ॉल्ट भूमिकाएँ कॉन्फ़िगर करें।

संभावित रूप से हानिकारक ऐप्स (पीएचए) के खिलाफ बढ़ी हुई सुरक्षा में सुधार होता है

  • संभावित रूप से हानिकारक ऐप व्यवहार में पारदर्शिता।
  • ऐप व्यवहार पर उपयोगकर्ता का नियंत्रण।
  • निजी डेटा का उपयोग करते समय ऐप डेवलपर्स का विवेक, अनुमतियों द्वारा संरक्षित।

पैकेज स्थापना और अनुमति

एंड्रॉइड 9 और उससे पहले के संस्करण में, पैकेज इंस्टाल और अनुमति नियंत्रण कार्यक्षमताएं PackageInstaller पैकेज ( //packages/apps/PackageInstaller ) में समाहित थीं। Android 10 और उच्चतर में, अनुमति नियंत्रण कार्यक्षमता एक अलग पैकेज, PermissionController ( //packages/apps/PermissionController ) में रहती है। चित्र 1 दर्शाता है कि एंड्रॉइड 10 में दो पैकेज कहाँ स्थित हैं।

सिस्टम ऐप्स के लिए पैकेज इंस्टॉल और अनुमति नियंत्रण कार्यात्मकताओं को अलग करना और जैसा कि उपयोगकर्ता द्वारा इंस्टॉल किए गए ऐप्स द्वारा उपयोग किया जाता है
चित्र 1. एंड्रॉइड 10 में पैकेज इंस्टॉल और अनुमति-नियंत्रण कार्यक्षमताएं

अनुमति सूचियाँ और पहुंच

एंड्रॉइड 6.0 और उच्चतर में, ऐप्स रनटाइम पर खतरनाक अनुमतियों तक पहुंच का अनुरोध करते हैं। एंड्रॉइड 10 गतिविधि पहचान (एआर) रनटाइम अनुमतियां जोड़ता है, जो उपयोगकर्ता को खतरनाक अनुमतियों को संशोधित करने या अनुमति देने के लिए प्रेरित करता है।

एंड्रॉइड 8.0 के लिए आपको /etc/permissions निर्देशिका में सिस्टम कॉन्फ़िगरेशन XML फ़ाइलों में विशेषाधिकार प्राप्त ऐप्स को स्पष्ट रूप से अनुमति देने की आवश्यकता है। एंड्रॉइड 9 और उच्चतर में, विशेषाधिकार प्राप्त अनुमतियों को अनुमति दी जानी चाहिए अन्यथा डिवाइस बूट नहीं हो सकता है।

आंतरिक एपीआई दृश्यता को सीमित करने और ऐप्स को प्लेटफ़ॉर्म लाइब्रेरीज़ तक गलती से पहुंचने से रोकने के लिए, एंड्रॉइड 7.0 ने नेटिव लाइब्रेरीज़ के लिए नेमस्पेस पेश किया। यह सिस्टम लाइब्रेरी को एप्लिकेशन लाइब्रेरी से अलग करता है, और डिवाइस निर्माता अपनी स्वयं की मूल लाइब्रेरी जोड़ सकते हैं।

एंड्रॉइड 10 में शुरू होने वाले ऐप्स के पास डिवाइस की स्क्रीन सामग्री तक पहुंचने के लिए हस्ताक्षर अनुमतियां और उपयोगकर्ता की सहमति दोनों होनी चाहिए। विशेषाधिकार प्राप्त ऐप्स जो स्क्रीनशॉट लेने जैसी साइलेंट कैप्चर कार्यक्षमता पर भरोसा करते हैं, उन्हें इसके बजाय मीडियाप्रोजेक्शन क्लास का उपयोग करना चाहिए।

पारदर्शिता और गोपनीयता

एंड्रॉइड 6.0 और उच्चतर में, एक डिवाइस फ़ैक्टरी मैक पता वाई-फाई सेवा प्रदाताओं और पैकेट विश्लेषकों द्वारा पहुंच से सुरक्षित है। एंड्रॉइड 10 के अतिरिक्त प्रतिबंध ऐप्स को अपरिवर्तनीय डिवाइस पहचानकर्ताओं (आईडी) तक पहुंचने से रोकते हैं, जब तक कि उन्हें विशेषाधिकार प्राप्त अनुमतियों के लिए अनुमति नहीं दी जाती है । ( कनेक्टिविटी अनुभाग डिवाइस पहचानकर्ताओं के बारे में संबंधित चर्चा प्रदान करता है, क्योंकि यह वाहकों को प्रभावित करता है।)

एंड्रॉइड 9 और उससे पहले के संस्करण पर, उपयोगकर्ता ऐप्स को स्थान पहुंच प्रदान करते समय लगातार विकल्प चुनते हैं। एंड्रॉइड 10 में शुरू होकर, एक ट्रिस्टेट स्थान अनुमति सुविधा उपयोगकर्ताओं को डिवाइस के स्थान तक ऐप पहुंच की अनुमति देने के लिए तीन विकल्प देती है। ये अनुमति आवश्यकताएं लक्ष्य एसडीके की परवाह किए बिना एंड्रॉइड 10 में ऐप्स पर लागू होती हैं।

एंड्रॉइड 10 में शुरू होने वाली अन्य पारदर्शिता और गोपनीयता सुविधाओं के लिए अनुमतियाँ कॉन्फ़िगर करें

  • बैकग्राउंड एक्सेस लोकेशन रिमाइंडर उपयोगकर्ताओं को दिखाता है कि जब कोई ऐप बैकग्राउंड में ACCESS_FINE_LOCATION अनुमति का उपयोग करके उनके डिवाइस स्थान तक पहुंचता है।
  • संपर्क प्रदाता घटक द्वारा प्रबंधित संपर्क-एफ़िनिटी संबंधी डेटा को अलग तरीके से एक्सेस किया जाता है: ऐप्स डेटाबेस में संपर्क एफ़िनिटी डेटा को लिख या पढ़ नहीं सकते हैं। यह कॉलर-संबंधित एपीआई को प्रभावित करता है।

सुव्यवस्थित विन्यास

एंड्रॉइड 6.0 और उच्चतर के लिए अनुमति कॉन्फ़िगरेशन को सुव्यवस्थित किया गया है।

  • init द्वारा लॉन्च की गई सेवाओं के लिए परिवेशीय क्षमताएं सेवा कॉन्फ़िगरेशन के सभी पहलुओं को एक .rc फ़ाइल में रखती हैं। init द्वारा लॉन्च नहीं की गई सेवाओं के लिए क्षमताएं सेट करते समय, इसके बजाय fs_config.c उपयोग करके फ़ाइल सिस्टम क्षमताओं को कॉन्फ़िगर करें।
  • एंड्रॉइड 7.x और निचला संस्करण फ़ाइल सिस्टम क्षमताओं और/या कस्टम डिवाइस-निर्माता एआईडी को निर्दिष्ट करने के लिए डिवाइस-विशिष्ट android_filesystem_config.h फ़ाइल का उपयोग करके एंड्रॉइड आईडी (एआईडी) तंत्र का विस्तार करता है। एंड्रॉइड 8.0 और उच्चतर फ़ाइल सिस्टम क्षमताओं को बढ़ाने के लिए एक नई विधि का समर्थन करता है।
  • एंड्रॉइड 8.0 में, यूएसबी कमांड को संभालना डिवाइस-विशिष्ट init स्क्रिप्ट (एचएएल परतों के लिए एक प्रतिस्थापन) से बाहर और एक मूल यूएसबी डेमॉन में चला गया। यूएसबी एचएएल इंटरफ़ेस को एंड्रॉइड 8.0 और उच्चतर पर लॉन्च होने वाले प्रत्येक डिवाइस पर लागू किया जाना चाहिए।