Câmeras do sistema

Em dispositivos que executam o Android 11 ou superior, a estrutura do 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 regulares de câmera. A permissão android.permission.SYSTEM_CAMERA , introduzida no Android 11, tem um nível de proteção de system|signature . Isso significa que apenas aplicativos instalados na partição do sistema ou assinados com o mesmo certificado do sistema podem receber essa permissão. Aplicativos 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 desejam implementar recursos que exigem acesso a uma câmera, mas que também são restritos a aplicativos privilegiados ou do sistema.

Como os aplicativos de sistema aos quais é concedida a permissão android.permission.SYSTEM_CAMERA também devem ter a permissão android.permission.CAMERA , os usuários podem optar por revogar as permissões normais CAMERA para evitar que esse aplicativo acesse as câmeras no dispositivo.

Implementação

Para transformar um determinado dispositivo de câmera em uma câmera de sistema, o HAL da câmera deve anunciar ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA em sua lista de recursos.

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

Validação

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

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