במכשירים עם Android מגרסה 11 ואילך, מסגרת Android תומכת במצלמות מערכת, שהן מכשירי מצלמה שגלויים רק לתהליכים עם ההרשאה android.permission.SYSTEM_CAMERA
והרשאות מצלמה רגילות.
ההרשאה android.permission.SYSTEM_CAMERA
, שהוצגה ב-Android 11, היא ברמת הגנה 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
CTS.
כל בדיקות ה-CTS של המצלמה מופעלות במכשירי מצלמה של המערכת.