Indicadores de privacidade

As permissões de execução no Android 6 e versões mais recentes dão aos usuários controle sobre quando permitem a gravação do áudio do microfone ou do vídeo da câmera de um dispositivo. Antes que um app possa gravar, o usuário precisa conceder ou negar permissão por uma caixa de diálogo apresentada pelo sistema.

O Android 12 oferece transparência aos usuários mostrando indicadores quando um app usa uma fonte de dados particular com as permissões app-op de câmera e microfone. Acesso de registro de operações de aplicativo a APIs protegidas por permissões de execução.

As permissões app-op monitoram o status da atividade e o número de chamadas de API individuais e interagem com os indicadores do microfone e da câmera no Android 12 para mostrar aos usuários quando os apps acessaram dados de áudio e da câmera nos dispositivos. Quando os usuários clicam nos indicadores de câmera ou microfone, eles veem quais apps acessaram os dados. Esse recurso é obrigatório para todos os OEMs.

Requisitos de visibilidade do indicador

Estes são os requisitos para indicadores de microfone e câmera em dispositivos com o Android 12 ou versões mais recentes:

  • Os indicadores precisam aparecer na barra de status e manter a maior prioridade visual (por exemplo, localizados na posição mais à direita, no canto superior direito).
  • Os indicadores precisam estar localizados de forma consistente na mesma posição e não podem ser bloqueados por um app quando ele é iniciado.
  • Os dois indicadores precisam ser verdes (ou uma variação de verde).
  • Clicar em um ou em ambos os indicadores precisa renderizar uma notificação de atribuição de atribuição de app que faça o seguinte:
    • Mostra o nome do app que está usando o microfone e/ou a câmera
    • Mostra o nome do app que usou o microfone e/ou a câmera nos últimos 15 segundos.
    • Leva os usuários à página de permissões do app em Configurações

Uso e recursos

No Android 12, a interface distingue entre os usos em execução e os recentes. Os usos são considerados ativos se forem marcados pelo sistema como em execução ou tiverem menos de 5 segundos.

  • Os ícones da barra de status aparecem sempre que um app tem acesso contínuo ao microfone ou à câmera do usuário.
  • Os usuários podem clicar nesses ícones e conferir quais apps estão acessando o microfone, a câmera ou ambos.

Indicadores de microfone e câmera em uso mostrando que o acesso está ativo

Figura 1. Indicadores de microfone e câmera em uso mostrando o acesso ativo (canto superior direito)

O acesso é considerado ativo enquanto os indicadores estiverem aparecendo. Um ícone aparece primeiro e depois muda para um ponto que persiste até que o app seja dispensado ou fechado.

Quando um usuário toca nos indicadores, uma caixa de diálogo é aberta, mostrando que um app está usando a câmera, o microfone ou ambos.

Indicadores de acesso ativo e recente, e se o acesso foi feito pela câmera ou pelo microfone

Figura 2. Indicadores de acesso ativo e recente

A imagem na Figura 2 mostra indicadores de acesso ativo quando os dados foram acessados nos últimos 5 segundos por um app em execução.

Os indicadores de acesso recente mostram que os dados foram acessados por um app durante os 15 segundos anteriores, mas que o app não está ativo. Todos os apps ativos aparecem na caixa de diálogo, mas apenas um aparece como a origem do acesso recente, mesmo quando mais de um app acessa dados em um período de 15 segundos. A visualização de acesso permanece congelada 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 está na IU do sistema.

  • A interface do sistema reage a uma mudança de configuração do dispositivo: privacy/mic_camera_indicators_enabled.
  • A troca é necessária porque há dois veículos de entrega separados, nesta ordem:
    1. Entregar.
    2. Ative.
  • A IU do sistema não pode falhar se o método em PermissionManager não puder fornecer os dados necessários.

Fluxo de processo

A funcionalidade do Indicador de permissão tem três partes principais:

  • Os apps
  • Os indicadores (gerenciados pelo SystemUI)
  • Uma maneira de determinar quais apps estão usando os dados

O PermissionController fornece o mecanismo para determinar quais apps estão usando dados. O SystemUI detecta apps que usam dados particulares. O SystemUI mostra um ícone na barra de navegação superior que corresponde às permissões usadas. O PermissionController exibe dados sobre usos quando um usuário clica em um ícone.

Fluxo de processo para funções do indicador de permissão

Figura 3. Fluxo de componentes do sistema e transições da interface

As transições numeradas na Figura 3 são descritas abaixo:

1- Um app solicita dados privados 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 em operações de app.

3: o provedor de dados fornece dados ao app.

4 a 5 O usuário clica nos ícones. A interface do sistema solicita dados do PermissionManager e apresenta a caixa de diálogo ao usuário.

Detalhes do processo

  1. Os apps usam o microfone e a câmera, chamando AppOpsManager.startOp, stopOp e (ou) noteOp. Isso cria registros app-op no servidor do sistema.
  2. A interface do sistema detecta novas operações de app usando os listeners AppOpsManager.OnOpActiveChangedInternalListener e OnOpNotedListener. Quando um novo uso é recebido (por uma chamada para startOp ou noteOp), a interface do sistema verifica se o uso é de um app do sistema.
  3. Se a IU do sistema verificar o uso do app do sistema e se o uso for do microfone, a IU do sistema vai verificar se o microfone está desativado.
  4. Se a IU do sistema verificar o uso de apps que não são do sistema (e, para o uso do microfone, que ele está desativado; para o uso da câmera, que ela está ativada), ela vai mostrar um ícone refletindo esse uso.

Se a interface do sistema receber uma noteOp, que não tem duração, ela vai mostrar o ícone por pelo menos cinco segundos. Caso contrário, o ícone vai aparecer até receber um stopOp ou por 5 segundos, o que for mais longo. O usuário clicar em um ícone iniciará uma intent que vai para o PermissionController para iniciar a caixa de diálogo.

O PermissionController carrega todo o uso recente do microfone e da câmera. Ela verifica se algum deles está em execução ou se estava em execução no período definido pela interface do sistema. Se uma correspondência for encontrada, o nome do app que usou a permissão e quais permissões foram usadas serão exibidos.

Devido a essa mudança no Android 12 e versões mais recentes, alguns apps vão precisar mudar o comportamento ou implementar um comportamento especial.

A telefonia precisa implementar o uso de permissões (para considerar a pilha de microfone separada usada em ligações telefônicas) ao trabalhar com o app Pesquisa Google para Android (AGSA, na sigla em inglês) e os Serviços Móveis do Google (GMS).