Sur les appareils équipés d'Android 11 ou version ultérieure, le framework Android est compatible avec les caméras système, qui ne sont visibles que par les processus disposant de l'autorisation android.permission.SYSTEM_CAMERA
et des autorisations d'appareil photo standards.
L'autorisation android.permission.SYSTEM_CAMERA
, introduite dans Android 11, a un niveau de protection de system|signature
. Cela signifie que seules les applications installées sur la partition système avec ou signées avec le même certificat que le système peuvent se voir accorder cette autorisation. Les applications publiques tierces ne peuvent pas accéder aux caméras système.
Les caméras système sont utiles pour les fabricants d'appareils qui souhaitent implémenter des fonctionnalités nécessitant l'accès à une caméra, mais qui sont également limitées aux applications système ou privilégiées.
Étant donné que les applications système auxquelles l'autorisation android.permission.SYSTEM_CAMERA
est accordée doivent également disposer de l'autorisation android.permission.CAMERA
, les utilisateurs peuvent choisir de révoquer les autorisations CAMERA
normales pour empêcher une telle application d'accéder aux caméras de l'appareil.
Implémentation
Pour faire d'un appareil photo particulier une caméra système, le HAL de l'appareil photo doit annoncer ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
dans sa liste de fonctionnalités.
Pour créer une application ayant accès à une caméra système, celle-ci doit figurer dans la liste d'autorisation du fichier privapp-permissions.xml
spécifique à l'appareil, qui spécifie les applications auxquelles l'autorisation android.permission.SYSTEM_CAMERA
doit être accordée.
Validation
Pour vérifier qu'aucune caméra système de l'appareil n'est détectée par une application publique, exécutez le test CTS android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery
.
Tous les tests CTS de la caméra sont exécutés sur les caméras système.