Logo pt.androidermagazine.com
Logo pt.androidermagazine.com

Do google para o seu telefone: a vida de uma atualização de segurança do android

Índice:

Anonim

No início de cada mês, o Google lança o boletim mensal de segurança Android e começa a enviar atualizações para os telefones Pixel. É ótimo que a empresa seja transparente sobre o que está acontecendo e como as coisas estão sendo corrigidas, mesmo que você não seja o tipo de pessoa que gosta de ler o código-fonte.

Há muito trabalho nessas correções antes de serem divulgadas e há ainda mais trabalho envolvido antes de chegar a outros telefones - se houver. Vamos dar uma olhada em como a linguiça é feita e tentar entender melhor por que a linha do tempo dos patches de segurança é um pouco embaçada.

Primeiro você corrige o Android

O Android é uma fera complicada. Mais de 5 milhões de linhas de código, existem para ajudar as empresas que fabricam produtos móveis a começar a operar com uma plataforma de aplicativos completa, incluindo acesso ao Google Play e outros serviços. Não é algo que possa ser usado como está; essas empresas gastam muito tempo tentando adaptar o Android para mesclar-se com o outro software que podem estar usando para criar um bom sistema operacional homogeneizado.

O Google tem algumas regras sobre como isso deve ser feito caso uma empresa queira incluir seus serviços, mas os fabricantes têm uma longa noção de como o produto final é construído.

Esse código é onde um patch de segurança ganha vida. Alguém, seja um pesquisador de segurança ou apenas um Joe comum, encontra uma falha em um telefone que pode ser usado para diminuir a camada de segurança do dispositivo. Se essa falha não é algo que um OEM criou, a equipe do Android tem a tarefa de descobrir o que está acontecendo, por que está acontecendo e como corrigi-lo da maneira menos perturbadora.

Se uma falha de segurança for encontrada e fizer parte do código básico do Android, o Google precisará corrigi-la e enviá-la a todos os outros.

Freqüentemente, a falha não é algo que o Google possa corrigir. Como nós, o Google não tem acesso ao firmware de empresas que fabricam hardware como Qualcomm ou LG. Se a falha precisar ser resolvida no nível do hardware, há uma boa chance de a empresa que fornecer alguns dos componentes utilizados precisar fazer as alterações primeiro. Se for esse o caso, essas alterações são encaminhadas ao Google para que ele possa ver o que precisa ser feito para acomodá-las no código do Android.

Essas mudanças levam tempo, especialmente se um fornecedor de hardware estiver envolvido. Existem patches e testes e mais patches e mais testes para cada falha abordada em um patch. Quando o Google está confiante de que possui uma correção válida para uma falha de segurança, todas as empresas que fabricam telefones Android recebem acesso antecipado (pelo menos 30 dias antes da publicação do patch pelo Google) para poderem trabalhar.

Fase dois

É aqui que a maior parte do trabalho é feita. O Google pode escrever e manter o próprio Android, mas a maior parte dos dispositivos que o utilizam não é fabricada pelo Google. Os que são - telefones Pixel - também estão incluídos aqui. O hardware do Google é um cliente do Android da mesma forma que a Samsung ou a Motorola.

As Samsungs e LGs da indústria móvel, que fazem muitas alterações no Android, têm muito trabalho envolvido na hora de mesclar um patch.

Todas essas empresas começam a trabalhar em algumas coisas assim que obtêm um novo código do Google. A primeira parte - e possivelmente a mais importante - é determinar qual parte do patch não é necessária. E há muitas coisas em cada patch que uma única empresa pode ignorar livremente.

Por exemplo, se a NVIDIA tiver que fazer alterações que retornem ao Android, nenhum telefone Samsung precisará dessa parte do patch. Um exemplo mais extremo seria as mudanças que o BlackBerry ou a Samsung fizeram e que já tratam o problema de uma maneira diferente. Descobrir o que é necessário e o que não é pode ser demorado, especialmente quando uma empresa faz grandes alterações em determinadas partes do sistema operacional. O Google investigou acusações de que os OEMs estavam enviando patches de segurança que não tratavam de algumas coisas que deveriam ter, e foi isso que encontrou.

Nem todas as partes de um patch são necessárias em todos os telefones.

Feito isso, o restante do patch precisa ser mesclado no código Android personalizado de um fornecedor, e então construído e testado. A parte "construída e testada" pode se tornar uma grande dor de cabeça se o patch não puder ser aplicado apenas porque toca nos arquivos que o código personalizado está usando ou depende. Também vemos muito isso. Sempre que o Bluetooth ou o Wi-Fi for corrigido, seja o hardware ou o software por trás deles, ele tocará no código que foi alterado por um grande OEM que torna um sistema operacional mais sofisticado do que o Android "padrão". Há muitas partes do Android que um OEM pode tocar.

Depois que os engenheiros da Samsung ou de outro fornecedor obtiverem um sistema operacional que inicialize e funcione, ele precisará ser testado. E testou um pouco mais. Os testes podem incluir a participação de engenheiros de rede de várias operadoras, além de ter o Google e / ou o fabricante de qualquer componente de volta ao mix. Isto tem que estar certo. Um patch enviado a milhares e milhares de telefones pode potencialmente prejudicar a rede de uma operadora, reduzir o limite de dados de todos os usuários ou até fazer com que o próprio telefone pare de funcionar. Qualquer coisa desse tipo é inaceitável e deve ser encontrada antes de deixar o prédio.

O lançamento

A empresa que fez seu telefone, Google e talvez sua operadora trabalharem juntos para preparar uma atualização em massa sem fio. Se você já viu o URL usado para baixar um patch, notará que ele tem "Google" no endereço da web. Isso ocorre porque o mecanismo dentro do telefone que pode buscar e processar uma atualização OTA está procurando em um local muito específico por um patch. Ele precisa saber que o patch está 100% correto e assinado pela assinatura digital correta. Ele verificará isso novamente assim que o patch estiver totalmente baixado.

Se você comprou seu telefone de uma operadora, ele tem bastante entrada durante toda a vida útil de um patch.

Sua operadora pode ter algumas regras sobre quando e quem pode baixar um patch quando estiver ativo, se o nome estiver no telefone. Empresas como Samsung ou LG fazem versões personalizadas de seus modelos mais populares para cada operadora, o que tem bastante contribuição para a maneira como as coisas são feitas. Deve, já que seu nome está na caixa. Isso pode ser frustrante, mas faz sentido. Se todo mundo em Pittsburgh (por exemplo) que possui um telefone Samsung Galaxy S8 tentar obter um patch de 800 MB ao mesmo tempo, a rede vai desmoronar em alguns pontos. Sua operadora fará o que for necessário para manter a rede ativa.

O Google também suspende as implementações do OTA. Um número específico de usuários receberá um patch e, após um determinado período de tempo, o Google determina se esses usuários tiveram uma experiência boa ou ruim. Se tudo correr bem, um número maior de usuários receberá o patch em uma segunda onda. Isso se repete várias vezes antes de as comportas serem abertas. Os usuários que não desejam esperar pelo teste final podem baixar manualmente um patch através das configurações do dispositivo.

Quando é a sua vez, e você dá ao telefone a luz verde para pegar esse arquivo, ele é baixado e o telefone assume o controle.

Em suas mãos

Um patch é baixado no seu telefone e verificado como sendo o material certo. As versões mais antigas do Android têm um cache dedicado, que é uma seção do seu armazenamento que foi dividida para permitir a instalação de um arquivo de atualização; coisas que estão temporariamente no telefone. Os telefones que usam o recurso de atualização contínua do Android (que deve ser a maioria dos telefones executando o Android Nougat quando vendidos) "inserem" os arquivos baixados nos chamados slots. Em ambos os casos, você precisa ter espaço suficiente para que o arquivo OTA seja extraído e trabalhado.

Telefones com versões mais antigas do Android podem ter uma partição de cache dedicada usada durante uma atualização. Ele precisa ter um tamanho 2, 5 vezes maior que o arquivo OTA que você baixou.

O software atualizador OTA no seu telefone faz parte do Android. Um script no arquivo baixado informa como encontrar os arquivos que precisam ser alterados e copia esses arquivos no cache do dispositivo ou no slot designado. Em seguida, ele compara os arquivos originais do telefone com os arquivos que foram baixados. Alguns podem ser uma troca simples - pegue o arquivo X do telefone e exclua-o e substitua-o pelo arquivo X do download do OTA. Outros não são o arquivo completo e contêm apenas pequenas alterações específicas. O software atualizador e instalador do seu telefone sabe o que fazer aqui.

Muitos arquivos no Android, especialmente os aplicativos e as bibliotecas de software, são realmente muitos arquivos compactados em um arquivo especial. Você pode pegar um arquivo APK e alterá-lo para um arquivo.zip e abri-lo no Windows. Às vezes, esses arquivos precisam ser abertos e partes deles precisam ser trocadas por novas versões baixadas para o patch de segurança. É por isso que você precisa desse espaço de trabalho na partição de cache - é onde esses arquivos são extraídos.

Muitos arquivos no seu telefone são realmente arquivos contendo muitos arquivos - incluindo outros arquivos. É complicado.

Depois que todos os arquivos da atualização do OTA forem processados ​​e as alterações forem feitas nas cópias dos arquivos do sistema, é hora de executar o sistema com eles. Isso acontece quando o telefone solicita que você reinicie após processar o OTA que você recebeu, porque geralmente há arquivos que precisam ser corrigidos, mas que estão sendo usados ​​enquanto o telefone está em execução. Você pode ver uma tela mostrando que há trabalho em andamento durante a reinicialização ou apenas o logotipo do Android. Em ambos os casos, os arquivos estão sendo verificados, movidos para o local e verificados novamente. Os arquivos antigos são mantidos no cache para o caso de haver um problema e você não puder inicializar com os novos arquivos.

Tudo o que resta é que você tenha certeza de que tudo está como você gosta e que você tenha uma data mais nova para a versão do Patch de segurança nas configurações do seu telefone. Agora você está pronto para a próxima atualização!