Câmeras do sistema

Em dispositivos com Android 11 ou versões mais recentes, o framework Android oferece suporte a câmeras do sistema, que são dispositivos de câmera visíveis apenas para processos com a permissão android.permission.SYSTEM_CAMERA e permissões de câmera regulares. A permissão android.permission.SYSTEM_CAMERA, introduzida no Android 11, tem um nível de proteção de system|signature. Isso significa que somente apps instalados na partição do sistema com ou assinados com o mesmo certificado do sistema podem receber essa permissão. Apps públicos de terceiros não podem acessar câmeras do sistema.

As câmeras do sistema são úteis para fabricantes de dispositivos que querem implementar recursos que exigem acesso a uma câmera, mas também são restritos a apps privilegiados ou de sistema.

Como os apps do sistema que recebem a permissão android.permission.SYSTEM_CAMERA também precisam ter a permissão android.permission.CAMERA, os usuários podem revogar as permissões normais de CAMERA para impedir que um app desse tipo acesse as câmeras do dispositivo.

Implementação

Para tornar um dispositivo de câmera específico uma câmera do sistema, a HAL da câmera precisa anunciar ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA na lista de recursos.

Para criar um app que tenha acesso a uma câmera do sistema, ele precisa estar na lista de permissões do arquivo privapp-permissions.xml específico do dispositivo, que especifica os apps a que a permissão android.permission.SYSTEM_CAMERA precisa ser concedida.

Validação

Para verificar se nenhuma câmera do sistema no dispositivo pode ser descoberta por um app público, execute o teste android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery do CTS.

Todos os testes CTS de câmera são executados em dispositivos de câmera do sistema.