Em dispositivos com o Android 11 ou mais recente,
um framework que oferece suporte a
câmeras, que são dispositivos de câmera visíveis apenas para processos com o
android.permission.SYSTEM_CAMERA
e permissões normais da câmera.
A permissão android.permission.SYSTEM_CAMERA
, introduzida no
O Android 11 tem
um nível de proteção de system|signature
. Ou seja, só os apps instalados
a partição do sistema com ou assinado com o mesmo certificado que o sistema pode
receber essa permissão. Apps públicos de terceiros não podem acessar as 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 recursos ou apps do sistema.
Como os apps do sistema que recebem o
A permissão android.permission.SYSTEM_CAMERA
também precisa ter o
android.permission.CAMERA
permissão, os usuários podem optar por revogar as permissões CAMERA
normais para evitar
um desses apps acesse as câmeras do dispositivo.
Implementação
Para transformar um dispositivo específico em 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 com acesso a uma câmera do sistema, ele precisa estar na lista de permissões
no arquivo privapp-permissions.xml
específico do dispositivo, que especifica os apps
que 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 público
app, execute o
android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery
CTS
teste.
Todos testes CTS da câmera executados nos dispositivos de câmera do sistema.