Robert Triggs / Autoridade Android
Resumo
- O Google se comprometeu a oferecer um suporte de quatro anos para suas bifurcações do kernel Linux, começando com o kernel 6.6.
- Dispositivos Android utilizam o kernel Linux e precisam ser atualizados periodicamente para receber correções de problemas de segurança.
- O projeto upstream do kernel Linux encerrou recentemente seu compromisso de suporte vitalício de seis anos para versões LTS, o que seria ruim para a segurança dos dispositivos Android, então o Google teve que intervir.
O Android, como muitos outros sistemas operacionais, usa o kernel Linux de código aberto. Existem vários tipos diferentes de lançamentos do kernel Linux, mas o tipo mais importante para o Android é o de suporte de longo prazo (LTS), pois eles são atualizados regularmente com correções de bugs importantes e patches de segurança. A partir de 2017, o tempo de vida útil do suporte de lançamentos LTS do Linux foi estendido de dois anos para seis anos, mas no início do ano passado, essa extensão foi revertida. Felizmente, o Google anunciou que, daqui para frente, eles darão suporte aos seus próprios lançamentos do kernel LTS por quatro anos. Veja por que isso é importante para a segurança dos dispositivos Android.
O kernel Linux encontrado na maioria dos dispositivos Android é derivado de uma das ramificações do Android Common Kernel (ACK) do Google. Essas ramificações ACK são criadas a partir da ramificação do kernel principal do Android sempre que uma nova versão LTS é declarada upstream. Por exemplo, a ramificação ACK android15-6.6 foi criada logo após a versão 6.6 ser declarada como a versão LTS mais recente, com o “android15” no nome referenciando a versão do Android à qual o kernel está associado (neste caso, Android 15).
O Google lista três razões pelas quais ele mantém seu próprio fork de cada versão LTS do kernel Linux. Primeiro, os forks do Google podem conter backports e cherry-picks de funcionalidade upstream necessária para recursos do Android. Segundo, eles podem enviar recursos que estão prontos para dispositivos Android mesmo quando ainda estão em desenvolvimento upstream. Por fim, eles podem incluir certos recursos de fornecedores ou OEM que são úteis para outros parceiros Android.
Após sua criação, os ACKs continuam a ser atualizados pelo Google para receber correções de bugs para código específico do Android, bem como mesclagens LTS dos branches do kernel upstream. As vulnerabilidades que impactam o kernel Linux que são divulgadas no Android Security Bulletin mensal, como aquelas listadas no boletim de julho de 2024, são abordadas por essas atualizações.
No entanto, nem sempre é possível identificar quando uma correção de bug é uma correção de segurança, porque um patch que corrige um bug pode, na verdade, estar fechando uma brecha de segurança que o remetente não sabia ou optou por não divulgar que estava lá. O Google tenta identificar esses casos quando eles acontecem, mas é impossível pegá-los todos, levando a situações em que as correções chegaram ao Linux upstream meses antes de chegarem aos dispositivos Android. É por isso que o Google pressiona os OEMs do Android a executar regularmente atualizações LTS para que eles não sejam pegos desprevenidos por uma divulgação surpresa de vulnerabilidade de segurança.
Claramente, os lançamentos LTS do kernel Linux são incrivelmente importantes para a segurança de dispositivos Android, pois ajudam o Google e os OEMs a lidar com vulnerabilidades de segurança conhecidas e desconhecidas. Quanto maior o tempo de vida útil do suporte de um lançamento LTS do kernel Linux, mais tempo o Google e, subsequentemente, os OEMs podem manter seus dispositivos atualizados com correções de segurança.
Infelizmente, embora esse tempo de vida útil de suporte mais longo seja bom para o Google e os OEMs, ele coloca uma pressão enorme sobre os desenvolvedores e mantenedores do kernel do Linux, muitos dos quais são voluntários não remunerados. Além disso, se você excluir o Android e os dispositivos embarcados, não há muitos dispositivos executando versões mais antigas do Linux.
Basicamente, os mantenedores do Linux decidiram que os períodos de suporte de seis anos para lançamentos do kernel LTS não faziam mais sentido para eles, então decidiram reduzir essa janela para dois anos novamente. Essa mudança foi tornada pública no início de 2023, deixando muitos observadores se perguntando o que isso significaria para o mundo Android. Alguns acreditavam que isso forçaria os OEMs a finalmente começar a realizar grandes atualizações de versão do kernel para se manterem atualizados, enquanto outros acreditavam que o Google ou os fornecedores de silício estenderiam o LTS por conta própria.
O último é o que o Google está fazendo. Em sua página de desenvolvedor para o ACK, o Google escreveu que “começando com o kernel 6.6, o tempo de vida do suporte para os kernels estáveis é de 4 anos”. Isso é precedido por uma declaração que diz que “os ACKs podem ser suportados por mais tempo do que o kernel estável upstream correspondente em kernel.org. Nesse caso, o Google fornece suporte estendido até a data de fim de vida (EOL) mostrada nesta seção”. Quando um kernel é EOLed, eles obviamente não são mais suportados pelo Google, mas, mais importante, os “dispositivos que os executam são considerados vulneráveis”.
O ciclo de vida anterior do Linux LTS de seis anos permitiu que os OEMs do Android lançassem dispositivos um, dois ou até três anos após o início do ciclo de vida e ainda desfrutassem de alguns anos de suporte upstream.
No entanto, como o Google só está dando suporte a novas ramificações ACK por quatro anos, os OEMs não podem mais fazer isso. É por isso que, a partir do Android 15, os dispositivos só podem ser lançados com android14-6.1 ou android15-6.6, ou seja, as duas versões mais recentes do kernel. O primeiro terá suporte até julho de 2029, enquanto o último até julho de 2028, então os dispositivos podem ser lançados com eles este ano e ainda receber de três a cinco anos de suporte antes de precisarem atualizar seu kernel.
Daqui para frente, o Google diz que haverá apenas uma nova ramificação ACK para cada lançamento do kernel, por isso não há uma ramificação android15-6.1. Isso simplifica um pouco as coisas, mas, no final das contas, os OEMs eventualmente precisarão começar a fazer grandes atualizações de versão do kernel se quiserem se comprometer com políticas de atualização de telefone cada vez mais longas.