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.