Um Kernel Linux genérico seria a solução para “unificar” o Android?

A fragmentação é o principal motivo pelo qual NÃO gosto do sistema operacional Android, mesmo apesar dele ser uma incrível plataforma de código aberto e rodar sob o kernel Linux. Mas o problema não é do sistema em si, mas sim da grande dos fabricantes de dispositivos móveis, que teimam em não oferecer as devidas atualizações, com o objetivo de forçar a obsolência (programada) de seus produtos e assim, forçar os seus consumidores a trocá-los por mais novos…

“Google has been working on reducing fragmentation on Android for years, though part of the cause of that is the inherent nature of Android and the dual-edged sword of choice and freedom. There are countless OEMs active in the space, and all of them want to make their own modifications for their own devices. The problem then is that it looks like Android OS updates are slow to roll out across the board, but there’s not a lot that Google can actually do to force OEMs to update their devices. As such, the next best thing that Google can do is make the update process as easy and frictionless as possible.”

XDA Developers.

No entanto, tenho que reconhecer (e elogiar) os louváveis esforços do Google, para tornar o processo de atualização o mais fácil e sem atrito possível. Dentre eles está o Projeto Treble (2017), uma modularização de seus componentes internos (separando a estrutura do sistema das implementações feitas pelos fabricantes), para facilitar o processo de atualização do sistema. Depois foi a vez do Projeto Mainline (2019), designado para agilizar a entrega de atualizações para os principais componentes do Android. Ambas as iniciativas trouxeram grandes melhorias para as atualizações do sistema, já que elas também acabaram minimizando estas ocorrências devido a maior segurança proporcionadas a todo o ecossistema Android.

Mas o problema maior está em relação ao kernel Linux: o Google dispõem de uma base chamada Android Common Kernel (ACK), a qual é mesclada com códigos para cada plataforma específica de hardware (OEM). Os seus fabricantes recebem este kernel e também acabam implementando mais códigos adicionais (muitas vezes, proprietário), para adicionar o suporte a recursos de hardware específicos. Por fim, a base final de código do kernel resultante destas operações, acaba se tornando algo bem “distinto” do kernel Linux LTS original, tornando-se bem difícil, caro e demorado para atualizar. Eis, a principal desculpa por parte dos fabricantes, por manterem o sistema original de fábrica em seus dispositivos.

Por isto, o Projeto Generic Kernel Image (GKI) se tornou especial! Ele é basicamente uma compilação do kernel obtido diretamente a partir de um ramo ACK. O GKI isola os fornecedores de SoCs e as personalizações de fabricantes OEM para módulos de plug-in, eliminando o código fora da árvore e permitindo que o Google envie atualizações do kernel diretamente para o usuário final. Há tempos, o Google vem trabalhando para encontrar uma forma de entregar as atualizações do GKI por meio da Play Store, através da utilização de um KML (Kernel Module Interface). Neste caso, os smartphones deverão dispor do sistema Android 12 e executar o kernel 5.10.43+, com uma imagem de inicialização assinado pelo Google ou com o suporte ao KMI.

O objetivo do Google para os próximos anos, é garantir que os smartphones possam dispor das atualizações críticas para o kernel do sistema sem maiores dificuldades, já que a partir de agora estas mudanças serão promovidas por ela e não por terceiros, acelerando a execução dos processos e reduzindo os seus custos. A idéia central é dispor de um kernel independente, de código limpo e com suporte para todas as plataformas, ao mesmo tempo em que não haverá códigos específicos para cada SoC (que por sua vez poderão ser modularizados e ficarão a cargo de terceiros, se assim desejarem). Isto irá “facilitar” muito a vida dos fabricantes, já que eles não precisarão se preocupar com as atualizações necessárias para manter os seus dispositivos em dia e assim, precisarão arrumar novas desculpas para promoverem a obsolência programada…

Será este, o fim da fragmentação? Espero que sim! &;-D