Indicadores de privacidade

As permissões de tempo de execução no Android 6 e superior dão aos usuários controle sobre quando permitem que o áudio do microfone de um dispositivo ou o vídeo da câmera de um dispositivo seja gravado. Antes que um aplicativo possa gravar, um usuário deve conceder ou negar permissão por meio de uma caixa de diálogo que o sistema apresenta.

O Android 12 oferece aos usuários transparência exibindo indicadores quando um aplicativo usa uma fonte de dados privada por meio das permissões de operação do aplicativo de câmeras e microfone . App-ops registram acessos a APIs protegidas por permissão de tempo de execução.

App-op rastreia o status da atividade e o número de chamadas de API individuais e interage com os indicadores de microfone e câmera no Android 12 para mostrar aos usuários quando os aplicativos acessaram dados de áudio e câmera em seus dispositivos. Quando os usuários clicam nos indicadores de microfone ou câmera, eles veem quais aplicativos acessaram seus 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 Android 12 ou superior:

  • Os indicadores devem aparecer na barra de status e manter a prioridade visual mais alta (por exemplo, localizado na posição mais à direita no canto superior direito).
  • Os indicadores devem estar consistentemente localizados na mesma posição e não devem ser bloqueados por um aplicativo quando ele for iniciado.
  • Ambos os indicadores devem ser verdes (ou uma variação de verde) na cor.
  • Clicar em um ou ambos os indicadores deve render uma notificação de affordance de atribuição de aplicativo que faz o seguinte:
    • Exibe o nome do aplicativo que está usando o microfone e (ou) câmera
    • Exibe o nome do aplicativo que usou o microfone e (ou) câmera nos últimos 15 segundos
    • Leva os usuários para a página de permissão do aplicativo em Configurações

Uso e recursos

No Android 12, a interface do usuário distingue entre usos em execução e usos 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 são exibidos sempre que um aplicativo tem acesso contínuo ao microfone ou câmera sensível ao usuário.
  • Os usuários podem clicar nesses ícones e ver quais aplicativos estão acessando o microfone, a câmera ou ambos.

Microphone and camera in-use indicators showing that access is active

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

O acesso é considerado ativo enquanto os indicadores mostrarem. Um ícone é exibido primeiro e depois passa para um ponto que persiste até que o aplicativo seja dispensado ou fechado.

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

Indicators for both active and recent access, and whether the access was from camera or microphone

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 aplicativo em execução.

Os indicadores de acesso recentes mostram que os dados foram acessados ​​por um aplicativo durante os 15 segundos anteriores, mas que o aplicativo não está ativo. Todos os aplicativos ativos são exibidos na caixa de diálogo, mas apenas um aplicativo é exibido como fonte de acesso recente, mesmo quando mais de 1 aplicativo acessou dados em um período anterior de 15 segundos. A visualização de acesso permanece congelada até que o usuário descarte a caixa de diálogo de notificação.

Entregue e habilite

A classe PermissionManager fornece um método para preencher a caixa de diálogo, que reside na interface do usuário do sistema.

  • A interface do usuário do sistema reage a uma opção de configuração do dispositivo: privacy/mic_camera_indicators_enabled .
  • A troca é necessária porque existem dois veículos de entrega separados, nesta ordem:
    1. Entregue.
    2. Permitir.
  • A interface do usuário do sistema não deve falhar se o método no 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 aplicativos
  • Os indicadores (manipulados pelo SystemUI)
  • Uma maneira de determinar quais aplicativos estão usando os dados

O PermissionController fornece o mecanismo para determinar quais aplicativos estão usando dados. SystemUI escuta aplicativos usando dados privados. 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.

Process flow for Permission Indicator functions

Figura 3. Componentes do sistema e fluxo de transições (IU)

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

1- Um aplicativo solicita dados privados do sistema.

2- O sistema verifica as permissões. Se as permissões forem permitidas, o sistema notificará o provedor de dados e observará o uso em operações de aplicativos

3- O provedor de dados fornece dados ao aplicativo.

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

Detalhes do processo

  1. Os aplicativos usam o microfone e a câmera, chamando AppOpsManager.startOp , stopOp e (ou) noteOp . Isso cria registros de operação do aplicativo no servidor do sistema.
  2. A interface do usuário do sistema escuta novas operações de aplicativo usando os ouvintes AppOpsManager.OnOpActiveChangedInternalListener e OnOpNotedListener . Quando um novo uso chega (por meio de uma chamada para startOp ou noteOp ), a interface do usuário do sistema verifica se o uso é feito por um aplicativo do sistema.
  3. Se a IU do sistema verificar o uso do aplicativo do sistema e se o uso for para o microfone, a IU do sistema verificará se o microfone está sem som.
  4. Se a IU do sistema verificar o uso do aplicativo fora do sistema (e, para uso do microfone, que o microfone está ativado; para uso da câmera, que a câmera está ativada), ela mostra um ícone refletindo esse uso.

Se a interface do usuário do sistema receber um noteOp , que não tem duração, ele mostrará o ícone por pelo menos 5 segundos. Caso contrário, o ícone será exibido até receber um stopOp ou por 5 segundos, o que for mais longo. O usuário clicando em um ícone inicia uma intenção que vai para o PermissionController para iniciar o Diálogo.

O PermissionController carrega todos os usos recentes de microfone e câmera. Ele verifica se algum deles está em execução no momento ou estava em execução dentro do prazo definido pela interface do usuário do sistema. Se encontrar uma correspondência, ele exibirá o nome do aplicativo que usou a permissão e quais permissões o aplicativo usou.

Devido a essa mudança no Android 12 e superior, alguns aplicativos devem alterar seu comportamento ou implementar um comportamento especial.

A telefonia deve implementar o uso de permissão (para considerar a pilha de microfone separada usada em chamadas telefônicas), enquanto trabalha com o aplicativo Android Google Search (AGSA) e o Google Mobile Services (GMS).