O Android oferece transparência aos usuários mostrando indicadores de privacidade para os seguintes tipos de acesso:
Acesso à câmera e ao microfone. O indicador aparece quando um app usa uma fonte de dados particular com as permissões app-op de microfone e câmera. Para o requisito relacionado do CDD, consulte 2.2.5. Modelo de segurança.
Acesso à localização. O indicador aparece quando um app acessa a localização do dispositivo. Para o requisito relacionado do CDD, consulte 9.8.8. Localização.
Os usuários tocam em um indicador para ver quais apps acessaram os dados deles.
Usos ativos e recentes
A interface do Android distingue entre usos em execução e recentes:
No Android 17 ou versões mais recentes, os usos de localização são considerados ativos se forem marcados pelo sistema como em execução ou tiverem menos de 10 segundos. Para o ponto de localização, o acesso é considerado ativo se o app não relacionado ao sistema estiver em execução em um estado em primeiro plano.
No Android 12 ou em versões mais recentes, os usos do microfone e da câmera são considerados ativos se forem marcados pelo sistema como em execução ou se tiverem menos de cinco segundos.
Os ícones da barra de status mostram sempre que um app tem acesso contínuo ao microfone, à câmera ou à localização do usuário. Os usuários podem tocar nesses ícones e ver quais apps estão acessando o microfone, a câmera, a localização ou uma combinação desses itens. Confira um exemplo de indicadores em uso:
Figura 1. Indicadores de uso mostrando o acesso ativo (canto superior direito).
O acesso é considerado ativo enquanto os indicadores aparecem. Um ícone aparece primeiro e depois passa para um ponto que persiste até que o app seja dispensado ou fechado. Quando um usuário abre as Configurações rápidas e toca nos indicadores, uma caixa de diálogo aparece mostrando se o app está usando o microfone, a câmera, a localização ou uma combinação desses itens.
A Figura 2 ilustra os indicadores de acesso ativo quando os dados foram acessados em um período ativo por um app em execução.
Figura 2. Indicadores de acesso ativo e recente.
Os indicadores de acesso recente mostram que um app acessou dados nos 15 segundos anteriores (ou 20 segundos para dados de local), mas que o app não está ativo. Todos os apps ativos aparecem na caixa de diálogo, mas apenas um app é mostrado como a fonte de acesso recente, mesmo quando mais de um app acessou dados em um período anterior de 15 ou 20 segundos. Todos os apps que acessaram dados de local no período ativo ou recente são mostrados na caixa de diálogo. A visualização de acesso permanece até que o usuário dispense a caixa de diálogo de notificação.
Entregar e ativar
A classe PermissionManager oferece um método para preencher a caixa de diálogo (que
fica na interface do sistema). A interface do sistema reage à chave de configuração
do dispositivo privacy/mic_camera_indicators_enabled. Essa chave é necessária porque
há dois veículos de entrega separados: (1) Entregar e (2) Ativar.
Fluxo de processo
A funcionalidade do indicador de permissão tem três partes principais:
- Os apps
- Os indicadores (processados pela interface do sistema)
- Uma maneira de determinar quais apps estão usando os dados
O PermissionController fornece o mecanismo para determinar quais apps estão usando dados. A interface do sistema fica atenta a apps que usam dados particulares. A interface do sistema
mostra um ícone na barra de navegação superior que corresponde às permissões
usadas. O PermissionController mostra dados sobre usos quando um usuário clica em um ícone.
Figura 3. Componentes do sistema e fluxo de transições (de UI).
1: um app solicita dados particulares do sistema.
2 O sistema verifica as permissões. Se as permissões forem permitidas, o sistema vai notificar o provedor de dados e registrar o uso nas operações de apps.
3 O provedor de dados fornece dados ao app.
4-5 O usuário clica nos ícones. A interface do sistema solicita dados do
PermissionManagere apresenta a caixa de diálogo ao usuário.
Detalhes do processo
As permissões app-op registram acessos a APIs protegidas por permissões de execução, monitorando o status da atividade e o número de chamadas de API individuais, além de interagir com a câmera, o microfone e os indicadores para mostrar aos usuários quando os apps acessaram dados de áudio e da câmera nos dispositivos deles.
Os apps usam o microfone, a câmera ou a localização chamando
AppOpsManager.startOp,stopOpounoteOp. Isso cria registros de operações de app no servidor do sistema. No Android 17 e em versões mais recentes, o indicador de localização também usa esses registros de operação de app.A interface do sistema detecta novas operações de app usando os listeners
AppOpsManager.OnOpActiveChangedInternalListenereOnOpNotedListener. Quando um novo uso chega (por uma chamada parastartOpounoteOp), a interface do sistema verifica se o uso é feito por um app do sistema:Se a interface do sistema verificar o uso de apps do sistema e se o uso for do microfone, a interface do sistema vai verificar se ele está desativado.
Se a interface do sistema verificar o uso de apps que não são do sistema (e, para o uso do microfone, que ele não está silenciado; para o uso da câmera, que ela está ativada), um ícone refletindo esse uso será mostrado.
Se a interface do sistema verificar o uso de apps que não são do sistema, ela vai mostrar um ícone que reflete esse uso, desde que as opções relevantes estejam ativas:
- Para o microfone: ele está ativado.
- Para a câmera: ela está ativada.
- Para localização: o app está em execução em primeiro plano.
Se a interface do sistema receber um noteOp sem duração, o ícone será mostrado por pelo menos 5 segundos (10 segundos para localização). Caso contrário, o ícone vai aparecer até receber stopOp ou pelo tempo mínimo de 5 ou 10 segundos, o que for maior. Quando o usuário clica em um ícone, um intent é iniciado e
vai para PermissionController para iniciar a caixa de diálogo.
O PermissionController carrega todo o uso recente do microfone, da câmera e da localização. Ele verifica se algum deles está ou estava em execução dentro do
período definido pela interface do sistema (15 segundos para microfone ou câmera, 20 segundos
para localização). Se ele encontrar uma correspondência, vai mostrar o nome do app e as permissões usadas.
A telefonia precisa implementar o uso de permissões (para considerar a pilha de microfone separada usada em ligações) ao trabalhar com o app Android Google Pesquisa (AGSA) e o GMS.