Android 11 या इसके बाद के वर्शन वाले डिवाइसों पर, Android फ़्रेमवर्क, सिस्टम कैमरों के साथ काम करता है. ये ऐसे कैमरे होते हैं जो सिर्फ़ उन प्रोसेस को दिखते हैं जिनके पास android.permission.SYSTEM_CAMERA की अनुमति और सामान्य कैमरे की अनुमतियां होती हैं.
Android 11 में जोड़ी गई android.permission.SYSTEM_CAMERA अनुमति का सुरक्षा लेवल system|signature है. इसका मतलब है कि इस अनुमति को सिर्फ़ उन ऐप्लिकेशन को दिया जा सकता है जो सिस्टम पार्टीशन पर इंस्टॉल किए गए हों या जिन्हें सिस्टम के सर्टिफ़िकेट से साइन किया गया हो. तीसरे पक्ष के सार्वजनिक ऐप्लिकेशन, सिस्टम कैमरों को ऐक्सेस नहीं कर सकते.
सिस्टम कैमरे, डिवाइस बनाने वाली कंपनियों के लिए काम के होते हैं. इनकी मदद से, वे ऐसी सुविधाएं लागू कर सकती हैं जिनके लिए कैमरे का ऐक्सेस ज़रूरी है. हालांकि, इन सुविधाओं को सिर्फ़ खास अधिकारों वाले या सिस्टम ऐप्लिकेशन तक सीमित रखा जा सकता है.
सिस्टम ऐप्लिकेशन को
android.permission.SYSTEM_CAMERA की अनुमति देने के लिए, उनके पास
android.permission.CAMERA
की अनुमति भी होनी चाहिए. इसलिए, उपयोगकर्ता सामान्य CAMERA अनुमतियां रद्द कर सकते हैं, ताकि
ऐसे ऐप्लिकेशन को डिवाइस पर मौजूद कैमरों को ऐक्सेस करने से रोका जा सके.
लागू करना
किसी कैमरे को सिस्टम कैमरा बनाने के लिए, कैमरा HAL को
अपनी क्षमताओं की सूची में
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
का विज्ञापन करना होगा.
सिस्टम कैमरे को ऐक्सेस करने वाला ऐप्लिकेशन बनाने के लिए, उसे डिवाइस के हिसाब से अनुमति वाली सूची में शामिल करना होगा
privapp-permissions.xml फ़ाइल में. इस फ़ाइल में उन ऐप्लिकेशन के बारे में बताया जाता है
जिन्हें
android.permission.SYSTEM_CAMERA
की अनुमति दी जानी चाहिए.
सत्यापन
यह पुष्टि करने के लिए कि डिवाइस पर मौजूद किसी भी सिस्टम कैमरे को सार्वजनिक ऐप्लिकेशन से खोजा नहीं जा सकता, android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery सीटीएस टेस्ट चलाएं.
कैमरे से जुड़े सभी सीटीएस टेस्ट , सिस्टम कैमरे वाले डिवाइसों पर चलते हैं.