Telecamere di sistema

Sui dispositivi che eseguono Android 11 o versioni successive, il framework Android supporta le fotocamere di sistema, che sono dispositivi fotocamera visibili solo ai processi con l'autorizzazione android.permission.SYSTEM_CAMERA e le normali autorizzazioni della fotocamera. L'autorizzazione android.permission.SYSTEM_CAMERA , introdotta in Android 11, ha un livello di protezione di system|signature . Ciò significa che solo le app installate nella partizione di sistema con o firmate con lo stesso certificato del sistema possono ottenere questa autorizzazione. Le app pubbliche di terze parti non possono accedere alle fotocamere di sistema.

Le fotocamere di sistema sono utili per i produttori di dispositivi che desiderano implementare funzionalità che richiedono l'accesso a una fotocamera ma sono anche limitate alle app privilegiate o di sistema.

Poiché le app di sistema a cui viene concessa l'autorizzazione android.permission.SYSTEM_CAMERA devono disporre anche dell'autorizzazione android.permission.CAMERA , gli utenti possono scegliere di revocare le normali autorizzazioni CAMERA per impedire a tale app di accedere alle videocamere sul dispositivo.

Implementazione

Per rendere un particolare dispositivo fotocamera una fotocamera di sistema, l'HAL della fotocamera deve pubblicizzare ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA nel suo elenco di funzionalità.

Per creare un'app che abbia accesso a una videocamera di sistema, l'app deve essere autorizzata nel file privapp-permissions.xml specifico del dispositivo, che specifica le app a cui deve essere concessa l'autorizzazione android.permission.SYSTEM_CAMERA .

Convalida

Per verificare che nessuna videocamera di sistema sul dispositivo possa essere rilevata da un'app pubblica, esegui il test CTS android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery .

Tutti i test CTS della fotocamera vengono eseguiti sui dispositivi della fotocamera di sistema.