Google vuole rendere Android più simile a Linux. Durante la Linux Plumbers Conference, gli ingegneri dell’azienda di Mountain View hanno illustrato come il sistema operativo mobile potrebbe essere modificato, in modo da utilizzare il kernel “mainline” di Linux, invece dell’attuale versione custom. L’obiettivo è avere un kernel generico e moduli differenti per ogni dispositivo.
Android è basato sul kernel Linux, ma la versione effettivamente installata su smartphone e tablet subisce tre “fork“. Innanzitutto Google trasforma il kernel Linux LTS (Long Term Support) in Android Common Kernel, ovvero un kernel Linux con tutte le patch specifiche di Android. Quest’ultimo viene quindi consegnato ai chipmaker (ad esempio, Qualcomm e MediaTek) che aggiungono il codice per ogni processore. Il SoC Kernel viene infine inviato ai produttori che aggiungono il codice per i vari componenti hardware (schermo, fotocamere, USB e altro). Si ottiene così il Device Kernel installato sui dispositivi.
È dunque chiaro che il kernel è differente per ogni smartphone e tablet. Inoltre, considerati i vari passaggi, la versione è piuttosto vecchia (Android 10 per Pixel 4 è basato sul kernel 4.14 LTS di novembre 2017) e non è possibile effettuare l’aggiornamento (ecco perché il supporto dura sei anni). Nel corso degli anni, il numero di modifiche apportate al kernel usato da Android sono diminuite, ma sono ancora troppe.
Oltre a rendere il kernel di Android più vicino al kernel “mainline” di Linux, Google vuole introdurre una modularità simile a quella offerta con Project Treble. L’obiettivo è separare il kernel Linux dal supporto hardware, sviluppando un’interfaccia che consente ai driver proprietari di essere caricati come moduli. Google vuole in pratica una GKI (Generic Kernel Image) uguale per tutti i dispositivi ARM64 e una serie di moduli GKI. Ciò dovrebbe velocizzare il rilascio degli aggiornamenti.
Secondo la comunità Linux, invece, sarebbe meglio distribuire i driver con licenza open source e inserire il codice direttamente nel kernel Linux. Ciò permetterebbe di aggiornare il kernel di Android e di installare il sistema operativo su tutti i dispositivi, senza nessuna modifica successiva.