Não é novidade que o Android tem o kernel Linux como base. Mas se engana quem pensa que se trata da versão “pura”: ao longo do tempo, o kernel (núcleo) foi bastante modificado para adequar o sistema operacional a requisitos técnicos vindos de companhias como Qualcomm, de fabricantes de celulares e, claro, do próprio Google. Mas isso pode mudar.

A informação vem do Ars Technica, que explica que, durante a Linux Plumbers Conference 2019, desenvolvedores do Google revelaram planos para fazer o Android ter um kernel o mais próximo possível do Linux genérico, por assim dizer.

Esse cenário traria pelo menos duas grandes vantagens: faria o Google gastar menos tempo cuidando da manutenção de milhares de linhas de código que correspondem às modificações e facilitaria a disponibilização de correções de segurança.

Dá para pensar também em alguma melhora de desempenho e até no aumento da autonomia de bateria dos dispositivos.

Como o Google implementa o Linux no Android?

Mudar para o Linux genérico não é um processo fácil. Isso fica claro quando observamos como o kernel Linux é implementado hoje no Android. Basicamente, é assim: começa com o Google transformando o Linux LTS (Long Term Support) em Android Common, uma versão do kernel complementada com códigos específicos para o Android.

Posteriormente, o Android Common é repassado para fornecedores de SoCs, como Qualcomm e MediaTek. Essas empresas adicionam ao kernel códigos específicos sobre o seu hardware (processador, GPU, modem LTE, entre outros).

Por fim, o kernel resultante é enviado aos fabricantes para que eles adicionem as modificações referentes aos componentes de seus celulares (câmeras, tela, portas e por aí vai).

Na prática, cada dispositivo acaba tendo um kernel próprio. É por isso que é praticamente impossível fazer o kernel de um modelo funcionar em outro sem modificações de código-fonte.

Essa quantidade de etapas é uma das razões pelas quais o Android não é baseado nas versões recentes do kernel Linux. Está aí também o motivo para dispositivos Android geralmente não receberem novas versões do kernel.

Por conta dessa ausência de atualizações, o Google precisa fazer cada nova versão do Android ter suporte a versões antigas do Linux LTS. O Android 10, por exemplo, foi lançado em 2019, mas mantém suporte ao kernel Linux 4.9, disponibilizado no final de 2016.

Por aí já dá para perceber que faz muito sentido que o Google queira trabalhar com um kernel sem modificações.

Como o Google pretende implementar o Linux “puro”?

Você se lembra do Project Treble? Essa iniciativa foi apresentada pelo Google em 2017 como forma de agilizar a disponibilização de atualizações para o Android.

Para tanto, o Google meio que modularizou a arquitetura do sistema para que os fabricantes possam trabalhar em suas implementações quase ao mesmo tempo em que companhias como Qualcomm e MediaTek cuidam da parte delas.

Pois bem, a ideia aqui é parecida. O plano dos desenvolvedores do Google é criar uma espécie de interface no kernel para permitir que drivers e outros componentes possam ser executados como se fossem plugins.

Com isso, não seria necessário adicionar milhares de códigos ao núcleo do sistema em cada novo dispositivo. O Google poderia, portanto, implementar o Linux “puro” no Android e manter a compatibilidade com diversos componentes de hardware por meio de módulos.

Mas é claro que essa é uma explicação simplista. Para que essa tal interface funcione, é importante, por exemplo, que partes fundamentais do kernel modificado para Android passem a compor o kernel Linux em si.

Esse é um projeto de longo prazo, pois requer que o Google trabalhe de modo ainda mais próximo com a comunidade Linux e conte com a colaboração de toda a indústria para esse modelo de implementação do Android funcionar.

Mas, como que para mostrar que essa ideia é viável, Tom Gall, diretor do Linaro Consumer Group, mostrou na Linux Plumbers Conference um Pocophone F1 com Android 10 usando o kernel Linux sem modificações.

É verdade que algumas funções não funcionavam, como a que indica a porcentagem de carga de bateria. Mesmo assim, a demonstração serve para mostrar que, com algum esforço, dá para levar a proposta adiante.

A ideia já encontra alguma resistência, porém. Integrantes da comunidade Linux temem que a interface contenha brechas de segurança que possam comprometer todo o sistema.

Para eles, os fabricantes deveriam abrir o código-fonte de seus drivers para permitir que estes sejam implementados diretamente no kernel, o que possibilitaria a liberação mais rápida de atualizações de núcleo. Mas a gente sabe que isso não vai acontecer.

Com informações: Ars Technica, Android Police.