Auf Geräten mit Android 11 oder höher unterstützt das Android-Framework Systemkameras. Das sind Kameras, die nur für Prozesse mit der Berechtigung android.permission.SYSTEM_CAMERA und regulären Kameraberechtigungen sichtbar sind.
Die in Android 11 eingeführte Berechtigung android.permission.SYSTEM_CAMERA hat die Schutzstufe system|signature. Das bedeutet, dass diese Berechtigung nur Apps erteilt werden kann, die auf der Systempartition installiert sind oder mit demselben Zertifikat wie das System signiert wurden. Ö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 Apps oder System-Apps beschränkt sind.
Da System-Apps, denen die
android.permission.SYSTEM_CAMERA Berechtigung erteilt wurde, auch die
android.permission.CAMERA
Berechtigung haben müssen, können Nutzer normale CAMERA Berechtigungen widerrufen, um zu verhindern,
dass eine solche App auf die Kameras auf dem Gerät zugreift.
Implementierung
Damit ein bestimmtes Kameragerät zu einer Systemkamera wird, muss die Kamera-HAL
angeben
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
in ihrer Liste der Funktionen.
Wenn eine App Zugriff auf eine Systemkamera haben soll, muss sie auf der Zulassungsliste stehen
in der gerätespezifischen Datei privapp-permissions.xml. In dieser Datei werden die Apps angegeben, denen die
android.permission.SYSTEM_CAMERA
Berechtigung erteilt werden muss.
Validierung
Um zu prüfen, ob keine Systemkameras auf dem Gerät von einer öffentlichen App erkannt werden können, führen Sie den CTS-Test android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery aus.
Alle CTS-Tests für Kameras werden auf Geräten mit Systemkameras ausgeführt.