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