Como o Android Q melhora os controles de privacidade e permissão no Android Pie

O Android Q trará uma reformulação no gerenciamento de permissões e melhorias para proteger a privacidade do usuário. Aqui está o que o Google mudou desde o Android Pie.

A penetração do Android 9 Pie no mercado é apenas uma ponto no radar em comparação com versões mais antigas do Android, mas isso não atrasará os planos do Google de lançar a próxima versão do Android, o Android Q. Esperamos que o Google revele o primeiro Developer Preview do Android Q no próximo mês, mas antes do Google anúncio de que conseguimos uma versão do Android Q que provavelmente está bem avançada no desenvolvimento do Google ciclo. Em nosso primeiro artigo detalhando as mudanças que ocorrerão no próximo lançamento da sobremesa, falamos sobre a nova interface de controle de permissão. No entanto, mostrei apenas algumas capturas de tela do sistema de gerenciamento de permissões renovado, então gostaria de continuar com mais detalhes. Também fiz mais testes e reuni mais informações sobre as novas permissões no Android Q, o recurso “funções”, o novo instalador de pacotes e muito mais. Mas primeiro, aqui está uma breve recapitulação do gerenciamento de permissões no Android.

Uma breve história do gerenciamento de permissões no Android

Android 4.3 Jelly Bean introduzido pela primeira vez gerenciamento granular de permissões por meio do recurso "App Ops", embora estivesse oculto do usuário. O Android 4.4 KitKat até introduziu novas permissões controláveis ​​pelo usuário na interface App Ops, embora você precisava de acesso root e um módulo Xposed para acessá-lo. Finalmente, o Android 6.0 Marshmallow introduziu o sistema de permissões com o qual todos estamos familiarizados, embora com limitações sobre quais permissões você pode restringir. O recurso App Ops mais antigo ainda existe no Android, embora só possa ser acessado via linha de comando (cmd appops). Certas aplicações na Google Play Store aproveite a implementação da linha de comando do App Ops para fornecer uma interface de gerenciamento de permissões mais poderosa. O Google não expõe App Ops aos usuários, pois o usuário pode não saber o que está fazendo, resultando na negação de algumas permissões de um aplicativo que ele pode realmente precisar para funcionar corretamente. Infelizmente, desde a introdução do gerenciamento de permissões no Android Marshmallow, não vimos grandes mudanças no recurso – isto é, até o Android Q.

Operações de aplicativos no Android 4.3 Jelly Bean

O Android 6.0 Marshmallow também sofreu uma grande mudança na forma como certas permissões são concedidas aos aplicativos. Antes do Android 6.0, todos permissões definidas em um arquivo de manifesto do aplicativo são concedidos na instalação. Com o Android 6.0, o Google introduziu o gerenciamento de permissões de tempo de execução para certas permissões consideradas perigosas, como acesso ao armazenamento externo, acesso à câmera, acesso à localização e muito mais. As permissões de tempo de execução só são concedidas após a instalação de um aplicativo, e o usuário deve consentir explicitamente com a concessão dessas permissões tocando em "permitir" em uma caixa de diálogo de permissão quando solicitado. Até o Google reprimido em aplicativos direcionados a um nível de API mais antigo, os desenvolvedores de aplicativos podem ignorar as permissões de tempo de execução visando o nível de API 22 ou inferior (Android Lollipop ou anterior). Android Q avisará os usuários tentar executar um aplicativo direcionado ao nível de API 22 ou inferior, incentivando ainda mais os desenvolvedores a atualizar seus aplicativos para evitar serem envergonhados pelo sistema operacional. Assim, quando o Android Q chegar aos dispositivos, quase todos os aplicativos no dispositivo de um usuário deverão estar sujeitos aos controles de gerenciamento de permissão introduzidos no Android 6.0+. Com isso em mente, o Google está limpando os controles de permissão no Android Q para tornar mais fácil para os usuários gerenciarem o nível de acesso que os aplicativos têm em seus dispositivos.

Gerenciamento de permissões mais fácil no Android Q versus Android Pie

Do Android 6.0 Marshmallow ao Android 9 Pie, o gerenciamento de permissões de tempo de execução existente permite apenas que o usuário conceda ou negue determinadas permissões a um aplicativo. Observamos em nosso artigo anterior que o Android Q permitirá que o usuário restrinja uma permissão apenas enquanto o aplicativo estiver em uso. Esse recurso deixou muita gente entusiasmada, mas temos que esclarecer isso apenas a permissão de localização pode ser restrita quando um aplicativo está em uso. Isso significa que você não pode restringir o microfone ou a câmera apenas enquanto o aplicativo estiver em uso. Você não deve ficar desapontado com isso, já que o Android Pie já introduzido algumas restrições sobre o uso em segundo plano do Câmera e microfone exigindo que os aplicativos estejam em primeiro plano ou usem um serviço em primeiro plano. Além disso, o Android Q expande isso divulgar ao usuário sempre que algum aplicativo estiver usando o microfone, a câmera ou acessando a localização do dispositivo. Isso é mostrado ao usuário como ícones da barra de status no canto superior direito. Quando a barra de status é expandida, o texto mostrado ao lado dos ícones informa ao usuário qual aplicativo está usando uma dessas três permissões confidenciais. Finalmente, se o usuário tocar neste ícone, uma caixa de diálogo será exibida informando ao usuário quais aplicativos estão usando quais permissões. Novamente, isso se aplica apenas às permissões de câmera, localização e microfone.

O Google parece estar incentivando os usuários a restringir o acesso à localização apenas quando um aplicativo estiver em uso, já que eles criaram um lembrete no Android Q quando o usuário concedeu a um aplicativo para sempre acessar sua localização. Esse lembrete vem na forma de uma notificação que informa ao usuário que um aplicativo está usando sua localização e que sempre pode fazer isso. Tocar na notificação leva você à página de permissão de localização desse aplicativo, permitindo que o usuário opte por restringir a permissão de localização apenas enquanto o aplicativo estiver em uso. Parabéns por isso, Google.

Por último, na versão que possuo, a interface do usuário para permissões especiais de acesso ao aplicativo (como otimização de bateria, administração de dispositivos, acesso Não perturbe, acesso a notificações, etc.) permanece inalterada. No entanto, uma nova permissão especial "Acesso a aplicativos financeiros por SMS" foi adicionada à lista, embora não tenha certeza de como é diferente da permissão "Acesso SMS premium", que é o que os aplicativos precisam para enviar mensagens de texto para premium números. É possível que esta nova permissão seja destinada a aplicativos bancários que utilizam SMS para determinadas transações, de acordo com Novas políticas do Google Play restringindo permissões de SMS e registro de chamadas.

Gerenciando permissões no Android Q

Aqui está uma galeria de capturas de tela mostrando as novas alterações na interface de gerenciamento de permissões no Android Q. Incluí descrições detalhadas de cada página nas legendas de cada imagem.

Concedendo permissões no Android Q

Aqui estão as capturas de tela que mostram o gerenciamento de permissões de tempo de execução no Android Q. Já falamos sobre o que as duas primeiras capturas de tela mostram, mas a terceira captura de tela é um recurso totalmente novo do Android Q que não discuti antes. A capacidade do Android de permitir que o usuário controle as permissões antes de executar um aplicativo legado (definido como um aplicativo direcionado ao nível de API <23) é algo que já é possível no Android Pie com o configuração correta, mas o Google finalmente mudou a opção e o ativou no Android Q.

Monitoramento em tempo real de permissões no Android Q

Aqui estão capturas de tela que mostram como o Android Q alertará o usuário quando um aplicativo estiver acessando uma das várias permissões sensíveis/perigosas, incluindo câmera, localização e microfone.

Novas restrições de acesso à área de transferência e acesso a arquivos externos

Restrições de acesso à área de transferência em segundo plano

Em meu artigo anterior, observei uma nova permissão na estrutura do Android Q que sugeria que aplicativos que não são do sistema executados em segundo plano não poderão mais ler a área de transferência do sistema. Depois que a Google Play Store funcionou, decidi instalar alguns aplicativos populares de gerenciamento de área de transferência, como Gerenciador de área de transferência, Tosquiadeira, e Pilha de clipes para testar se eu estava certo. Para o bem ou para o mal, o Google está bloqueando o acesso à área de transferência em segundo plano no Android Q, como nenhum dos aplicativos que testei conseguiu detectar qualquer texto que copiei para a área de transferência. Eu até confirmei que esses aplicativos têm o "READ_CLIPBOARD"permissão solicitada usando o seguinte comando App Ops:

adb shell cmd appops query-op --user 0 READ_CLIPBOARD allow

Felizmente, copiar e colar texto de e para qualquer aplicativo ainda funciona, mas os aplicativos executados em segundo plano não conseguem mais ler o texto que está sendo copiado. É muito cedo para dizer se essa mudança eliminará os aplicativos gerenciadores de área de transferência porque existe a possibilidade de o Google introduzir uma nova API para tornar um aplicativo um manipulador padrão de “gerenciador de área de transferência”. No entanto, não vejo nenhuma evidência de que isso aconteça no Android Q.

Acesso a arquivos de armazenamento externo

Abordei praticamente tudo sobre essa mudança em meu artigo anterior, mas aqui está um resumo do que o Google está mudando no Android Q em relação ao acesso a arquivos de armazenamento externo. Primeiro, precisamos definir o que significa “armazenamento externo”. No Android, o armazenamento externo é o local onde são armazenados todos os arquivos e pastas que você pode ver ao conectar seu telefone a um computador, como Downloads, DCIM, Música, Filmes e Imagens. Supõe-se que os aplicativos armazenem apenas arquivos em armazenamento externo que outros aplicativos possam querer acessar, como músicas, imagens, vídeos, documentos, etc.

Para que um aplicativo acesse arquivos no armazenamento externo, ele precisa manter o READ_EXTERNAL_STORAGE e/ou WRITE_EXTERNAL_STORAGE permissões, que são permissões de tempo de execução. Depois que um aplicativo tiver essas permissões, não haverá restrições sobre quais arquivos no armazenamento externo ele pode ler ou modificar. No Android Q, o Google está dividindo essas duas permissões em permissões mais granulares, permitindo ao usuário restringir um aplicativo para que ele possa ler ou gravar apenas determinados tipos de arquivo. Especificamente, as novas permissões no Android Q permitirão que o usuário restrinja um aplicativo para que ele possa apenas:

  • Leia os locais da sua mídia.
  • Leia ou grave arquivos de música.
  • Leia ou grave fotos/arquivos de imagem.
  • Leia ou grave arquivos de vídeo.

Um aplicativo que já recebeu a permissão READ_EXTERNAL_STORAGE antes do usuário atualizar para O Android Q receberá automaticamente as permissões de “leitura” listadas acima, mas não as de “gravação” permissões.

Acesso à localização em segundo plano

No ano passado, um relatório da O jornal New York Times destacou a difusão de aplicativos que rastreiam a localização dos usuários para vender aos anunciantes. O rastreamento de localização inadequado é um problema que o Google conhece bem, tendo sido acusados ​​​​de isso eles mesmos. Android 8.0 Oreo introduzido restrições sobre a frequência com que os aplicativos executados em segundo plano podem acessar a localização de um dispositivo. As solicitações de localização de aplicativos executados em segundo plano são fortemente limitadas, portanto, se um aplicativo quiser rastrear sua localização com qualquer grau de precisão, ele precisa revelar que está fazendo isso com uma atividade visível ou um serviço em primeiro plano e um persistente notificação.

No entanto, sempre que o Google altera a forma como as principais APIs do Android funcionam, os desenvolvedores cujos aplicativos usaram legitimamente essas APIs conforme pretendido são afetados. Vimos isso acontecer recentemente com as restrições do Google Play às permissões de SMS e registro de chamadas, resultando em muitos aplicativos populares perdendo funcionalidades importantes. A mesma situação aconteceu quando o Google limitou o acesso à localização em segundo plano, com usuários de um popular aplicativo de golfereclamando que eles não poderiam mais usá-lo para rastrear seus tiros. Felizmente, o Android Q está adicionando um novo "ACCESS_BACKGROUND_LOCATION"permissão que, quando concedida, sempre permite que um aplicativo tenha acesso à localização de um dispositivo, mesmo quando o aplicativo está sendo executado em segundo plano. Assim, a nova versão do Android não só continuará a proteger os usuários contra acessos indesejados à localização em segundo plano, mas também fornecerá um mecanismo para que os usuários permitam aplicativos de sua escolha para monitorar sua localização em segundo plano.

A adição de “funções” no Android Q

Em Daniel vídeo prático para nós Canal XDATV no YouTube, você deve tê-lo ouvido mencionar uma nova seção “Funções” nas configurações de aplicativos padrão (Configurações -> Aplicativos e notificações -> Aplicativos padrão). As únicas “funções” mostradas no vídeo foram Navegador, Telefone e Mensagens, o que parecia redundante, pois já existem categorias de aplicativos padrão para navegador, aplicativos de telefone e aplicativos de SMS. Depois de passar mais algum tempo com o Android Q no Pixel 3 XL, descobri um serviço de “função” para o qual poderia descartar o estado por meio do ‘dumpsys role' comando. Depois de fazer isso, encontrei várias "funções" que não correspondem a nenhuma das categorias de aplicativos padrão já existentes: CAR_MODE_DIALER_APP, CALL_COMPANION_APP, CALL_SCREENING_APP, e PROXY_CALLING_APP. Depois de instalar alguns dos aplicativos originais do Google, consegui fazer com que o “aplicativo de telefone do modo carro” e o “aplicativo de triagem de chamadas” aparecessem nas páginas “funções”, conforme mostrado abaixo.

Descompilei o novo APK do sistema responsável pela interface de gerenciamento de permissões do Android Q, um novo app chamado "PermissionController" e encontrei um arquivo role.xml que sugere o que "funções" farão no próximo Android versão. Não vou colar o XML inteiro aqui, mas compartilharei um trecho de uma das funções que deve ajudar você a entender o que as funções farão.

PermissionController.apk/res/xml/roles.xml

Digamos que eu selecione um aplicativo para ter a função de "galeria". Para que um aplicativo apareça como um aplicativo de galeria válido, ele precisa ter um componente obrigatório: uma atividade que seja iniciada com os filtros de ação e intenção de categoria android.intent.action.MAIN e android.intent.category.APP_GALLERY respectivamente. Se isso for verdade e o aplicativo receber a função de "galeria" do usuário, o aplicativo receberá permissões automaticamente no conjunto de permissões "media_visual", que acredito se referir à nova permissão de áudio, vídeo e imagens que descrevi mais cedo. Na verdade, o novo WRITE_MEDIA_VIDEO e WRITE_MEDIA_IMAGES as permissões são explicitamente permitidas para um aplicativo com o rolo de "galeria". Por último, o aplicativo se torna o manipulador preferencial quando outro aplicativo envia uma intenção de chamar um aplicativo de galeria.

Basicamente, qualquer aplicativo que receba uma determinada “função” e tenha os componentes e permissões necessários declarados recebe automaticamente outros conjuntos de permissões relevantes para seus casos de uso. No exemplo que postei acima, um aplicativo com a "função" da galeria recebe automaticamente permissão para acessar conjuntos de permissões relacionados ao acesso a arquivos necessários para funcionar. Presumivelmente, isso significa que um aplicativo ao qual o usuário recebeu a função de galeria não precisaria pedir permissão ao usuário para ler ou gravar arquivos de imagem ou vídeo.

A julgar pelos nomes, o CAR_MODE_DIALER_APP, CALL_COMPANION_APP, CALL_SCREENING_APP, e PROXY_CALLING_APP funções permitirão que o usuário escolha um aplicativo discador diferente quando estiver dirigindo, um aplicativo para executar várias funções enquanto o usuário estiver em um chamada telefônica, um aplicativo para filtrar chamadas antes que o usuário atenda e um aplicativo para facilitar chamadas com um número intermediário, respectivamente. Não acreditamos que a função de triagem de chamadas esteja diretamente relacionada ao Google Pixel Tela de chamada recurso, a julgar pelo que vimos no AOSP. Em vez disso, destina-se a aplicativos que desejam atuar como segurança para chamadas de spam, como um filtro de chamadas.

Instalador de pacotes renovado

O instalador de pacotes padrão do Android (o aplicativo que gerencia a instalação de novos aplicativos) está sendo reformulado. Em vez de mostrar uma atividade em tela cheia sempre que você quiser instalar um novo aplicativo, o instalador de pacote atualizado no Android Q exibe uma pequena caixa de diálogo no meio da tela. Esta interface de mini instalador de pacote é usada em tablets Android há muito tempo, mas é a primeira vez que a vemos em smartphones Android.

No Android Q, a execução de qualquer aplicativo direcionado ao nível de API 22 ou inferior (Android 5.0 Lollipop) mostrará um aviso de que o aplicativo está desatualizado. Suspeito que esse aviso seja suficiente para impedir a maioria dos usuários de se preocupar com aplicativos direcionados a versões anteriores ao Android Marshmallow. Junte isso ao fato de que o Google exigirá que todos os aplicativos enviados à Play Store após agosto de 2019 sejam direcionados API de nível 28, você pode ver como os desenvolvedores com aplicativos desatualizados são forçados a retrabalhar seus aplicativos para direcionar uma API mais recente nível. Como tudo isso se relaciona com o novo instalador de pacotes? Bem, como o Android 5.0 Lollipop é o último nível de API sem solicitações obrigatórias de permissão de tempo de execução para determinadas permissões confidenciais, a eventual morte de aplicativos direcionados API de nível 22 e inferior significa que o Google não precisa mais abrir espaço na mensagem do instalador do pacote para mostrar uma longa lista de permissões concedidas a um aplicativo instalação.

Você provavelmente não verá este instalador de pacote simplificado em todos os dispositivos Android Q. A Huawei, por exemplo, personaliza o instalador do pacote com um scanner integrado de vírus e malware (algo que odeio), bem como um gerenciador de permissões integrado (algo que adoro). EMUI 10, portanto, provavelmente se limitará ao instalador de pacote em tela cheia que todos nós costumava ser.

Novas opções de bloqueio de chamadas

Uma característica pensamos que estava chegando no Android Pie na verdade, chegou ao Android Q, mostrando o quão perto estamos da finalização dos principais recursos do Android Q. O recurso que encontramos naquela época permitia bloquear chamadas de números de telefone públicos desconhecidos, privados ou de qualquer número que não estivesse na sua lista de contatos. Aqui está uma captura de tela do recurso do aplicativo discador AOSP. O aplicativo Google Phone ainda não foi atualizado com esse recurso, mas presumimos que ele será disponibilizado em breve.

Todos os aplicativos instalados agora mostram ícones do iniciador (possível bug?)

A maioria dos aplicativos no seu dispositivo tem ícones de inicialização porque eles servem como gateways para a interface do usuário. No entanto, nem todo aplicativo tem uma IU. Nesse caso, um desenvolvedor pode optar por não declarar uma atividade com os filtros de ação e intenção de categoria android.intent.action.MAIN e android.intent.category.LAUNCHER respectivamente. Não tenho certeza se isso é apenas um bug, mas no Android Q, todos os aplicativos, mesmo aqueles que tentam ocultar os ícones do inicializador da maneira descrita acima, mostrarão ícones no inicializador. Eu testei isso no AOSP Launcher, Pixel Launcher e Nova Launcher padrão em um Google Pixel 3 XL rodando a versão vazada do Android Q e comparou-a com um Google Pixel 2 XL executando o Android 9 Pie mais recente construir. Quando você toca em um desses ícones, você simplesmente acessa a página de informações do aplicativo em Configurações.

O Hyperion dock, um complemento do Hyperion Launcher, normalmente não mostra um ícone do inicializador. No entanto, isso acontece no Android Q.

Se isso não for apenas um bug, seria uma maneira de os usuários saberem rapidamente se um novo aplicativo foi instalado, mesmo que esse aplicativo esteja tentando se esconder do usuário.

Bloco de configurações rápidas "Sensores desligados"

Há um novo bloco de configurações rápidas chamado "sensores desligados", que não apenas ativa o modo avião, mas também desativa todas as leituras do sensor no dispositivo. Eu confirmei isso instalando DevCheck do XDA Recognized Developer flar2 e comparando a saída das leituras do sensor com e sem a alternância "sensores desligados". Quando o bloco "sensores desligados" é ativado, o dispositivo para de reportar todos os sensores no dispositivo. Não tenho certeza se este bloco de configuração rápida é apenas para os engenheiros do Google depurarem, mas isso seria um recurso útil para qualquer pessoa realmente preocupada com quais dados seu dispositivo está coletando sobre seu ambiente.

Informações do dispositivo e do sistema DevCheckDesenvolvedor: flar2

Preço: Grátis.

4.6.

Download

Mais sobre Android Q

Isso é tudo relacionado à privacidade e permissão que encontrei até agora no Android Q. Fique ligado no meu artigo final cobrindo todos os pequenos ajustes de UI e UX. Siga nosso Marca Android Q para mais artigos como este. Aqui está um link para alguns dos artigos aos quais me referi com mais frequência, bem como alguns outros que acho que você deveria ler:

  • Exclusivo: a versão inicial do Android Q tem um tema escuro para todo o sistema, renovação de permissões, dicas de “modo desktop” e muito mais
  • Exclusivo: o Google está trabalhando em um recurso semelhante ao Face ID para Android Q
  • O Android Q pode bloquear leituras da área de transferência em segundo plano, proteger melhor seus arquivos de mídia, oferecer suporte ao downgrade de aplicativos e muito mais
  • O Android Q pode ser fornecido com novas sobreposições de fonte, formato de ícone e cores de destaque
  • “Android dinâmico” pode permitir que os desenvolvedores testem um GSI AOSP em qualquer dispositivo Android Q
  • Modo escuro do Android Q: como o próximo sistema operacional Android do Google abordará temas ofuscantemente claros