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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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