Google está ameaçando remover aplicativos com serviços de acessibilidade da Play Store

O Google está enviando e-mails alertando os desenvolvedores para não usarem os Serviços de Acessibilidade fora do uso pretendido, ou seus aplicativos serão removidos da Play Store.

Atualizar: LastPass acaba de respondeu a esta notícia e afirma que “não haverá impacto imediato” para seus aplicativos Android. Resta saber se isso significa ou não que outras aplicações receberão clemência.

Alguns dos aplicativos mais inovadores da Play Store são desenvolvidos com base no uso de APIs de maneiras que o Google nunca imaginou. Existem aplicativos que podem remapear as teclas de volume para pular faixas de música, gravar e reproduzir entradas de toque em páginas da web ou jogos e até fornecem teclas de navegação alternativas para que você possa usar todo o seu dispositivo tela. Todos esses exemplos que acabei de mencionar dependem das APIs de acessibilidade do Android. Mas isso pode em breve mudança, já que a equipe da Google Play Store está enviando e-mails aos desenvolvedores informando que eles podem não implementam mais serviços de acessibilidade, a menos que sigam as diretrizes do Google.


O que é um serviço de acessibilidade?

Para entender por que isso é significativo, primeiro precisamos explicar o que é acessibilidade em relação ao Android. Em geral, acessibilidade refere-se a tornar um aplicativo Android mais acessível para usuários com determinadas deficiências, como deficientes visuais. Embora seja do interesse de todos os desenvolvedores tornar seus aplicativos mais acessíveis para usuários com deficiência, existem uma classe especial de aplicativos projetados para aprimorar a usabilidade de todos os aplicativos Android para usuários com deficiências. Eles são chamados de Serviços de Acessibilidade.

Um Serviço de Acessibilidade, comumente referido como a11y, é um aplicativo para o qual o sistema pode alimentar certas informações dependendo do que eventos o Serviço de Acessibilidade se registra para escutar. Um aplicativo que deseja implementar um Serviço de Acessibilidade deve adicionar o android.permission.BIND_ACCESSIBILITY_SERVICE permissão para o arquivo AndroidManifest para que somente o sistema possa se vincular ao serviço do aplicativo.

Por exemplo, se um Serviço de Acessibilidade for criado para escutar TYPE_VIEW_CLICKED eventos, então esse serviço receberá informações do sistema sobre quaisquer botões que o usuário possa pressionar. Um serviço de acessibilidade também pode reagir e consumir determinados gestos e KeyEvents antes que outros aplicativos os recebam. Por fim, um serviço de acessibilidade também pode injetar determinados KeyEvents, como voltar, tela dividida ou botão de aplicativos recentes.

Assim, os Serviços de Acessibilidade podem ser extremamente poderoso e útil. Vários dos aplicativos mais populares e inovadores da Google Play Store contam com a11y para desempenhar suas funções. Aqui estão apenas alguns dos poucos exemplos que descobri de cabeça:

  • Entrada automática - interceptar KeyEvents e executar gestos de tocar/deslizar
  • Mapeador de botões - interceptar KeyEvents e remapeá-los para outros KeyEvents
  • Ecologizar - hibernar aplicativos automaticamente fechando-os à força antes que a tela desligue
  • Inserindo+ - detectar quando o aplicativo de teclado está aberto para mostrar o botão de ação flutuante
  • Última passagem - verifique as páginas em busca de entradas de nome de usuário/senha (necessário antes do Android Oreo)
  • Mudar rapidamente - envie KeyEvent para o botão Voltar
  • Tasker - detecte quando os aplicativos estão abertos para que você possa executar qualquer ação definida pelo usuário
  • Tipo Máquina - registre todas as entradas de texto para nunca perder nenhuma entrada de texto

Nenhum desses aplicativos usa o A11y da maneira que o Google pretendia, que é ajudar usuários com deficiência. Aposto que a grande maioria dos aplicativos que implementam um Serviço de Acessibilidade o fazem para funções fora do alcance do Google. Mas essa é a beleza do Android e de APIs como acessibilidade: o Google geralmente não restringe o que os desenvolvedores podem ou não fazer. Essa abordagem negligente com o uso dos Serviços de Acessibilidade parece estar mudando, no entanto, à medida que o Google Play A equipe da loja tem enviado e-mails aos desenvolvedores avisando-os sobre futuras mudanças em suas políticas em relação a11y.


O que exatamente o Google está fazendo?

A empresa está informando aos desenvolvedores que se seu aplicativo usar um Serviço de Acessibilidade por qualquer motivo que não seja ajudar usuários com deficiência, eles deve remover o uso desta permissão dentro de 30 dias ou seu aplicativo será removido da Play Store. O não cumprimento deste requisito pode resultar em uma infração contra a conta da Play Store de um desenvolvedor, o que pode eventualmente levar ao encerramento da conta.

Para os poucos aplicativos que usam o a11y para ajudar usuários com deficiência, o Google afirma que esses desenvolvedores precisa simplesmente adicionar uma divulgação proeminente e voltada ao usuário sobre o motivo pelo qual seu aplicativo precisa do permissão. No entanto, como mencionei antes, os Serviços de Acessibilidade são usados ​​com muito mais frequência em aplicativos que acabariam violando esta nova política.

E-mail completo enviado aos desenvolvedores

Olá desenvolvedores da ****,

Estamos entrando em contato com você porque seu aplicativo, ****, com nome de pacote **** está solicitando o 'android.permission. BIND_ACCESSIBILITY_SERVICE.' Os aplicativos que solicitam serviços de acessibilidade só devem ser usados ​​para ajudar usuários com deficiência a usar dispositivos e aplicativos Android. Seu aplicativo deve estar em conformidade com nossos Permissões política e os requisitos de divulgação proeminente de nossos Dados do usuário política.

Ação requerida: se ainda não estiver fazendo isso, você deverá explicar aos usuários como seu aplicativo está usando o 'android.permission. BIND_ACCESSIBILITY_SERVICE' para ajudar usuários com deficiência a usar dispositivos e aplicativos Android. Os aplicativos que não atenderem a esse requisito dentro de 30 dias poderão ser removidos do Google Play. Como alternativa, você pode remover quaisquer solicitações de serviços de acessibilidade do seu aplicativo. Você também pode optar por cancelar a publicação do seu aplicativo.

Se você precisar fazer alterações em seus aplicativos, siga estas etapas:

  • Leia o Permissões e Dados do usuário políticas para obter mais detalhes e verifique se seu aplicativo está em conformidade com todas as políticas listadas no Políticas do programa para desenvolvedores.
  • Se você não precisar da permissão BIND_ACCESSIBILITY_SERVICE no seu aplicativo ou se a permissão estiver sendo usada para algo diferente de ajudar usuários com deficiência a usar dispositivos e aplicativos Android:
    1. Remova sua solicitação dessa permissão do manifesto do seu aplicativo.
    2. Faça login no Play Console e carregue seu APK modificado e em conformidade com a política.
  • Ou, se você precisar da permissão BIND_ACCESSIBILITY_SERVICE no seu aplicativo para ajudar usuários com deficiência a usar dispositivos e aplicativos Android:
    1. Inclua o seguinte snippet na descrição dos detalhes do app no ​​app: "Este app usa serviços de acessibilidade".
    2. Forneça uma divulgação destacada desse uso ao usuário antes de solicitar que ele habilite essa permissão em seu aplicativo. Sua divulgação deve atender a cada um dos seguintes requisitos:
      • A divulgação deverá ser feita através do andróide: resumo e andróide: descrição elementos da classe AccessibilityServiceInfo
      • A divulgação deve descrever a funcionalidade que a permissão do Serviço de Acessibilidade está habilitando para seu aplicativo. Cada funcionalidade utilizada com a solicitação do Serviço de Acessibilidade deverá ser declarada em sua divulgação com justificativa.

Como alternativa, você pode optar por cancelar a publicação do aplicativo.

Todas as violações são rastreadas. Violações graves ou repetidas de qualquer natureza resultarão no encerramento de sua conta de desenvolvedor e na investigação e possível encerramento de contas do Google relacionadas.

Se você revisou a política e acha que podemos estar errados, entre em contato com nosso equipe de apoio a políticas. Um de meus colegas entrará em contato com você dentro de dois dias úteis.

Cumprimentos,

A equipe de revisão do Google Play

consulte Mais informação


Por que o Google está removendo os serviços de acessibilidade da Play Store?

Embora o uso dos Serviços de Acessibilidade seja conhecido por causar um pouco de atraso, a verdadeira razão pela qual o Google está começando a reprimir esses aplicativos provavelmente está relacionada ao crescente problema de explorações que tiram vantagem do a11y. Embora os aplicativos mencionados acima usem o a11y para fins benéficos, eles podem ser facilmente explorados por desenvolvedores mal-intencionados para fins nefastos. Por exemplo, um serviço de acessibilidade pode ser usado para implementar um keylogger, ataque de ransomware ou exploração de phishing.

Os esforços do Google para proteger os usuários de serviços de acessibilidade maliciosos giraram principalmente em torno da divulgação. Atualmente, habilitando um Serviço de Acessibilidade que registra determinados eventos, como TYPE_VIEW_TEXT_CHANGED resultará em uma caixa de diálogo de aviso de que o aplicativo pode roubar suas senhas. Você pode pensar que tal mensagem seria eficaz para evitar que os usuários concedam permissão aos aplicativos de forma irresponsável. No entanto, tem havido muitos casos documentados de aplicativos que enganam os usuários para que concedam a11y. Alguns ataques vão ainda mais longe, como o Exploração de Cloak and Dagger e Ataques de sobreposição de mensagens do brinde que projetam socialmente o usuário para conceder a11y, deturpando o que está interagindo na tela.

Ataques como esses são eficazes na grande maioria dos dispositivos Android. O Google fez grandes avanços na prevenção de ataques de sobreposição ou mensagens brinde (como pode ser visto no AOSP se você pesquisar por a11y), mas as coisas chegaram ao ponto em que o Google decidiu que seria melhor restringir o uso dos Serviços de Acessibilidade inteiramente. Faz sentido, mas é realmente é uma merda porque essa mudança eliminará a funcionalidade de muitos aplicativos inovadores.


O que os desenvolvedores podem fazer?

Infelizmente, há não há muito que os desenvolvedores possam fazer em resposta a essas mudanças. Os desenvolvedores podem cumprir as exigências do Google removendo seu serviço de acessibilidade ou enfrentar a ameaça de seu aplicativo ser removido e sua conta possivelmente encerrada. Simplesmente adicionar uma divulgação sobre o motivo pelo qual seu aplicativo usa o a11y só funcionaria se o aplicativo fosse legitimamente destinado a ajudar usuários com deficiência, o que não descreve a maioria dos aplicativos que usam atualmente o a11y.

Refatorar aplicativos para não usarem mais um serviço de acessibilidade é possível para alguns, mas não todos, os aplicativos que mencionamos. Gerenciadores de senhas como o LastPass podem migrar para o Autofill Framework, mas apenas se o usuário estiver executando o Android 8.0 Oreo e superior. Se um aplicativo usar a11y para monitorar quando outros aplicativos estão abertos, esse aplicativo poderá ser escrito com um serviço de pesquisa usando a API UsageStats. Aplicativos como o Tasker podem sobreviver a essa mudança. Outros, como Button Mapper e AutoInput, estão sem sorte – sem root, não há uma boa maneira de interceptar KeyEvents.

Embora reconheçamos o perigo de permitir que um aplicativo malicioso acesse as APIs de acessibilidade, é uma pena ver alguns aplicativos realmente úteis serem neutralizados pelo Google. Esperamos que a política estabelecida pelo Google seja revertida ou eles simplesmente afirmem que foi mal interpretada. Da forma como está, o texto do e-mail é bastante claro – cumpra nossas diretrizes ou saia da Play Store. É um lembrete sombrio de que o Google tem todo o poder sobre quais aplicativos pertencem à Play Store e eles podem puxar o tapete de você a qualquer momento.


Atualização 1: documentação confusa do desenvolvedor

Documentos de desenvolvedor do Google para construindo um serviço de acessibilidade parecem contradizer esse novo foco da equipe da Google Play Store. A página tinha o seguinte texto no momento da redação deste artigo:

Um serviço de acessibilidade é um aplicativo que fornece melhorias na interface do usuário para ajudar usuários com deficiência ou que possam estar temporariamente impossibilitados de interagir totalmente com um dispositivo. Por exemplo, os usuários que estão dirigindo, cuidando de uma criança ou participando de uma festa muito barulhenta podem precisar de feedback adicional ou alternativo da interface.

Além disso, se você comparar o texto da página com um versão arquivada da página de julho, você descobrirá que a observação sobre a criação de Serviços de Acessibilidade apenas para auxiliar usuários com deficiência não existe.

Obrigado João Dias por nos fornecer esta informação.