Auf Geräten mit Android 11 oder höher unterstützt das Android-Framework Systemkameras. Das sind Kamerageräte, die nur für Prozesse mit der Berechtigung android.permission.SYSTEM_CAMERA
und den regulären Kameraberechtigungen sichtbar sind.
Die Berechtigung android.permission.SYSTEM_CAMERA
, die in Android 11 eingeführt wurde, hat ein Schutzniveau von system|signature
. Das bedeutet, dass nur Apps, die mit demselben Zertifikat wie das System auf der Systempartition installiert oder signiert wurden, diese Berechtigung erhalten können. Öffentliche Apps von Drittanbietern können nicht auf Systemkameras zugreifen.
Systemkameras sind nützlich für Gerätehersteller, die Funktionen implementieren möchten, für die der Zugriff auf eine Kamera erforderlich ist, die aber auch auf privilegierte oder System-Apps beschränkt sind.
Da System-Apps, denen die Berechtigung android.permission.SYSTEM_CAMERA
gewährt wird, auch die Berechtigung android.permission.CAMERA
benötigen, können Nutzer normale CAMERA
-Berechtigungen widerrufen, um zu verhindern, dass eine solche App auf die Kameras des Geräts zugreift.
Implementierung
Damit ein bestimmtes Kameragerät als Systemkamera verwendet werden kann, muss die HAL der Kamera ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
in der Liste der Funktionen angeben.
Wenn Sie eine App erstellen möchten, die Zugriff auf eine Systemkamera hat, muss die App in der gerätespezifischen privapp-permissions.xml
-Datei auf die Zulassungsliste gesetzt werden. In dieser Datei werden die Apps angegeben, für die die Berechtigung android.permission.SYSTEM_CAMERA
erteilt werden muss.
Zertifizierungsstufe
Führen Sie den android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery
CTS-Test aus, um zu prüfen, ob keine Systemkameras auf dem Gerät von einer öffentlichen App erkannt werden können.
Alle CTS-Tests für Kameras werden auf Geräten mit Systemkameras ausgeführt.