Telecamere di sistema

Sui dispositivi con Android 11 o versioni successive, il framework Android supporta le fotocamere di sistema, ovvero 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 system|signature . Ciò significa che solo le app installate sulla partizione di sistema o firmate con lo stesso certificato del sistema possono ottenere questa autorizzazione. Le app pubbliche di terze parti non possono accedere alle fotocamere del 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 è concessa l'autorizzazione android.permission.SYSTEM_CAMERA devono avere anche l'autorizzazione android.permission.CAMERA , gli utenti possono scegliere di revocare le normali autorizzazioni CAMERA per impedire a tale app di accedere alle fotocamere del 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 fotocamera di sistema, l'app deve essere inserita nella whitelist nel file privapp-permissions.xml specifico del dispositivo, che specifica le app a cui deve essere concessa l'autorizzazione android.permission.SYSTEM_CAMERA .

Validazione

Per verificare che nessuna fotocamera 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 del sistema.