Videocamere di sistema

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

Le videocamere di sistema sono utili per i produttori di dispositivi che vogliono implementare funzionalità che richiedono l'accesso a una videocamera, ma sono anche limitate ad 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 un'app di questo tipo di accedere alle videocamere del dispositivo.

Implementazione

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

Per creare un'app che abbia accesso a una fotocamera di sistema, l'app deve essere inclusa nella lista consentita 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 android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery CTS.

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