Google corrige bug do Android que impedia o usuário de ligar para serviços de emergência

Google corrige bug do Android que impedia o usuário de ligar para serviços de emergência

O Patch de segurança do Android de janeiro foi lançado e corrige um dos bugs mais irritantes do Android que podem ocorrer em algum momento: certos aplicativos podem impedir que você entre em contato com o 911 ou outros números de emergência em todo o mundo.

No início de dezembro, uma história angustiante surgiu em um subreddit do GooglePixel de um usuário que teve seu Pixel 3 travado quando mais precisava: ao ligar para o 911 de emergência para sua avó, que “parecia ter sofrido um derrame”. imediatamente após ligar para os serviços de emergência, e o usuário KitchenPicture5849 disse que não conseguiu ligar ou desligar para repetir a chamada. Felizmente, um telefone fixo próximo estava disponível depois que seu telefone Android deu errado e os serviços de emergência foram contatados.

Após o término da crise, o usuário fez outra ligação para o número de emergência de seu smartphone e o Android travou novamente, indicando que não foi um erro pontual. A verificação da conta telefônica também revelou que KitchenPicture5849 nunca se conectou ao serviço 911. Eles dizem que também receberam várias outras mensagens privadas de usuários que disseram estar enfrentando o mesmo erro.

O Google entrou em contato com o usuário e respondeu publicamente à mensagem em 8 de dezembro:

Com base em nossa pesquisa, conseguimos reproduzir o problema em um conjunto limitado de circunstâncias. Acreditamos que o problema está presente apenas em um pequeno número de dispositivos com o aplicativo Microsoft Teams instalado quando o usuário não está conectado e, no momento, estamos cientes de apenas um relatório de usuário sobre a ocorrência desse erro. Determinamos que o problema foi causado por uma interação não intencional entre o aplicativo Microsoft Teams e o sistema operacional Android subjacente. A Microsoft está trabalhando em estreita colaboração com o Google para resolver essa interação não intencional.

O Google disse que a Microsoft lançará uma atualização para o aplicativo o mais rápido possível e que os usuários devem verificar as atualizações na Play Store. A empresa também mencionou que o patch no nível do sistema operacional será lançado um mês depois, no início de janeiro (hoje). Na época, o Google não forneceu mais comentários sobre o assunto.

Por que os aplicativos podem quebrar o serviço 911

Atraso. O Microsoft Teams quebrou o serviço 911? Aplicativos Android aleatórios podem atrapalhar os serviços de emergência? Como? Por que aplicativos de terceiros estariam a milhares de metros de um recurso tão importante? Há algum outro aplicativo interrompendo o serviço 911 ou apenas o Microsoft Teams? Embora o Teams tenha sido corrigido, não há problema em permitir que os usuários do Android fiquem com esse bug no nível do sistema operacional por um mês, especialmente quando não sabemos se outros aplicativos estão fazendo isso? Android é Android, então muitos telefones nunca serão consertados de qualquer maneira. Como os usuários podem saber que os serviços de emergência estarão funcionando? Exceto que o Google não deu nenhuma resposta além de esperar um mês por uma correção.

Felizmente, algumas pessoas muito inteligentes na comunidade Android foram capazes de fornecer respostas que o Google não compartilhou. Mishaal Rahman, editor técnico sênior da Esper, escreveu um post incrível no Medium detalhando como o erro funciona e por que ele ocorre. Aplicativos Android com recurso de chamada telefônica podem registrar uma “PhoneAccount” no sistema, indicando que eles têm a capacidade de fazer chamadas. Existem vários aplicativos que podem ser instalados com PhoneAccount, incluindo um chamado “CAPABILITY_PLACE_EMERGENCY_CALLS”. Quando chega a hora de ligar para o 911, o Android classifica a lista de contas de telefone registradas e seleciona uma. Até agora tudo bem.

Um dos vários bugs identificados na postagem de Rahman é que o Microsoft Teams registrará uma PhoneAccount adicional no sistema toda vez que o Teams for iniciado, desde que você não esteja conectado. Observe que não é incomum instalar o Microsoft Teams e nunca usá-lo – um Uma reclamação comum sobre o aplicativo Android Teams é que ele geralmente desconecta os usuários automaticamente.

Se você estiver desconectado, executar o Microsoft Teams 10 vezes irá encher seu telefone com 10 PhoneAccounts duplicados do Teams. O Teams não deveria estar fazendo isso, e a atualização da Microsoft impediu o Teams de fazer isso, mas muitas PhoneAccounts duplicadas também não deveriam ser suficientes para deixar o sistema de telefonia Android de joelhos.

Próximo bug: ao escolher um PhoneAccount para uma chamada de emergência, o Android passa por um complexo processo de classificação para determinar qual conta usar. A etapa final desse processo de classificação, o resolvedor de conflitos, é a classificação de código hash. A comparação de hashcode simplesmente subtrai um hashcode de outro.

Mas, assim como aquele bug estúpido do Microsoft Exchange 2000 que aconteceu outro dia, isso pode levar a um estouro ou estouro de número inteiro, e agora o subsistema do telefone travará. O código do Google tem bugs, mas como essa é a última maneira de resolver problemas de classificação depois de tentar coisas mais óbvias, como o nome do pacote, ele só deve ser chamado em uma instância muito específica do aplicativo que está gerando PhoneAccounts duplicados. Então, obrigado Microsoft!

A correção do Google para esse erro está aqui , intitulada “Corrigir estouro/subfluxo de número inteiro causado pela classificação de uma conta de telefone duplicada durante uma chamada de número de emergência. Em vez de subtrair um hashcode de outro e potencialmente trabalhar com um número muito grande ou muito pequeno que trava o sistema, o Google agora lida com os dois números por meio da função Java “Integer.compare”. Isso retorna apenas -1, 0 ou 1, indicando um resultado menor, idêntico ou maior da comparação.

Se você for como eu no início e se perguntar por que o Android classifica as contas de telefone e não apenas usa a conta padrão no SIM, farei uma suposição maluca e direi que foi uma tentativa de fazer o serviço 911 funcionar independentemente. Qual. Caso a conta principal não funcione, o Android precisa de uma lista de todas as possíveis contas de telefone que pode tentar e quer fazer isso automaticamente para se conectar ao 911 por qualquer meio necessário. Este sistema de triagem existe apenas para entrar em contato com serviços de emergência, portanto, chamadas telefônicas regulares ainda funcionam para os usuários afetados.

O terceiro bug nessa bagunça é que o Microsoft Teams nem se registra como um manipulador de chamadas de emergência. As equipes criaram um milhão de PhoneAccounts e não usaram o sinalizador CAPABILITY_PLACE_EMERGENCY_CALLS, mas ainda quebraram o 911. O processo de classificação do Google começa solicitando todas as contas de telefone, enquanto o melhor primeiro passo seria começar com todas as contas de telefone que suportam emergência chamadas.

O Google está tomando uma decisão ainda mais drástica antes deste bug mais recente e removendo todas as contas de telefone “autogerenciadas” do procedimento de serviço de emergência 911. As contas de telefone Android “autogerenciadas”, como o Microsoft Teams, obtêm acesso mais direto à pilha de telefonia do Android e podem usar suas próprias funções. O sistema de chamada de emergência do Android agora considera apenas provedores de telefonia mais simples que se conectam ao aplicativo de telefone padrão, como sua conta de operadora.

Todos esses outros aplicativos de VoIP provavelmente ainda podem ser usados ​​para ligar para o 911 (em muitos países, o recurso 911 é exigido por lei). Mas se você abrir o discador padrão e pressionar 911, o Android escolherá apenas contas de telefone padrão gerenciadas pelo sistema.

Quem é corrigido e como você pode verificar se há um erro de serviço 911

Rahman diz que o bug do Google para isso é CVE-2021-39659, que o boletim de segurança mensal classifica como uma vulnerabilidade de negação de serviço de alta gravidade com patches para dispositivos com Android 10, 11 e 12. Na base de código do Android, o Google é Na verdade, essa correção é totalmente compatível com o Android 8.0, que tecnicamente não é mais suportado. Isso é puramente teórico, já que os fornecedores zero não enviam atualizações de segurança para esses dispositivos mais antigos. Mas o código está aí se alguém precisar.

A pilha de telefonia do Android (ainda?) não é um módulo facilmente atualizável do Project Mainline, portanto, a única maneira de obter uma correção é com a atualização mensal de segurança do Android de janeiro de 2022. A Samsung deve atualizar todos os telefones desta lista a partir desta semana, enquanto o Google lança correções para o Pixel 3a, 4, 4a, 5 e 5a. Atualização: também é esperada uma atualização de chamada de emergência para o Pixel 3 fora de serviço.

A atualização ainda não está chegando para o Pixel 6. O mais novo carro-chefe do Google está atualmente em uma crise de atualização. A atualização de dezembro de 2021 foi cancelada devido a problemas de conectividade não móvel (chamadas telefônicas não funcionam). Enquanto o Google luta para consertar as coisas, a próxima atualização do Pixel 6 com essa correção do 911 deve ser “no final de janeiro”. Enquanto isso, não há problema em estar no patch de novembro. Ambos os gráficos do Google: “início de janeiro” e “final de janeiro” parecem incrivelmente lentos devido a um bug que pode levar à morte literal dos usuários.

Vou fazer outro palpite maluco e dizer que o Pixel 6 é um telefone estranho porque é um SoC e modem completamente diferentes (ambos da divisão Exynos da Samsung e todos os outros Pixels usam Qualcomm). A criação de uma temporada de compras natalinas não deu ao Google espaço de manobra em caso de atrasos no lançamento. Isso não torna menos decepcionante para um telefone com muita vantagem inicial, mas espero que seja um problema temporário.

Estou surpreso que seja apenas um bug “alto” (em vez de “crítico”) e que leve de um a dois meses para ser implantado. Atrasar uma ambulância pode ser fatal, então seria bom se tudo chegasse mais rápido, não da forma que o Google resolve resolver esse problema.

Até agora, ouvimos apenas sobre o Microsoft Teams acionando esse erro de contas de telefone duplicadas, mas não se sabe se algum outro aplicativo está cometendo um erro semelhante. Se você vir um aplicativo nesta lista gerando muitas contas duplicadas, é provável que esteja impedindo você de se conectar aos serviços de emergência. Eu recomendo desinstalar o aplicativo, entrar em contato com o desenvolvedor e informar outras pessoas no Twitter ou em qualquer outro lugar.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *