L’attuale ecosistema Android è inquinato con centinaia di diverse versioni di Android, ognuno con una variante diversa del kernel Linux. Ogni versione è progettata per un telefono diverso ed è diverse configurazioni. Google ha lavorato per risolvere il problema aggiungendo il kernel Linux mainline ad Android.
Come il kernel Linux è attualmente gestito in Android
Prima che ti raggiunga, il kernel Linux sul tuo cellulare passa attraverso tre passaggi principali.
In primo luogo, Google prende la versione LTS (Long Term Support) del kernel Linux e aggiunge tutto il codice specifico per Android. Questo diventa il “kernel comune Android”.
Google invia quindi questo codice alla società che crea il sistema su un Chip (SoC) che esegue il telefono. Questo è di solito Qualcomm.
Una volta che il produttore SoC finisce aggiungere il codice per supportare la CPU e altri chip, il kernel viene poi passato al produttore del dispositivo reale, come Samsung o Motorola. Il produttore del dispositivo aggiunge quindi il codice per supportare il resto del telefono, come il display e la fotocamera.
Ognuno di questi passaggi richiede un po ‘ di tempo per essere completato e si traduce in un kernel che non funzionerà con nessun altro dispositivo. Significa anche che il kernel è molto vecchio, di solito circa due anni. Ad esempio, Google Pixel 4, che è stato spedito il mese scorso, ha un kernel da novembre 2017, che non verrà mai aggiornato.
Google si è impegnato a creare patch di sicurezza per i dispositivi più vecchi, il che significa che sono bloccati tenendo d’occhio un enorme hodge-podge di vecchio codice.
Il futuro
L’anno scorso, Google ha annunciato l’intenzione di risolvere questo pasticcio. Quest’anno hanno rivelato quali progressi hanno fatto alla Linux Plumbers Conference 2019.
“Sappiamo quello che serve per eseguire Android, ma non necessariamente su un dato hardware. Quindi il nostro obiettivo è fondamentalmente trovare tutto ciò, quindi a monte e cercare di essere il più vicino possibile alla linea principale.”
Sandeep Patil, Android Kernel Team Lead
Hanno fatto sfoggiare un Xiaomi Poco F1 con Android con un kernel Linux corretto. Tuttavia, alcune cose non sembrano funzionare, come la percentuale della batteria che è stata bloccata allo 0%.
Quindi, come pensa Google di farlo funzionare? Prendendo una pagina dal loro Progetto Treble playbook. Prima di Project Treble, il codice di basso livello che interagiva con il dispositivo e Android stesso era un grosso pasticcio di codice. Project Treble separava i due e li rendeva modulari in modo che gli aggiornamenti Android potessero essere spediti più velocemente e il codice di basso livello potesse rimanere invariato tra gli aggiornamenti.
Google vuole portare la stessa modularità al kernel. Il loro piano ” prevede la stabilizzazione di Linux in-kernel ABI e avere un’interfaccia stabile per il kernel Linux e fornitori di hardware a cui scrivere. Google vuole disaccoppiare il kernel Linux dal suo supporto hardware.”
Quindi questo significa che Google avrebbe spedito un kernel e i driver hardware sarebbero stati caricati come moduli del kernel. Attualmente, questa è solo una proposta. Ci sono ancora alcuni problemi tecnici che devono essere risolti. quindi, questo non accadrà in tempi brevi.
Opposizione da Open Source
La comunità Open Source non sarà felice con l’idea di mettere codice proprietario nel kernel. Le linee guida del kernel di Linux affermano che i driver devono avere una licenza GPL per essere inclusi nel kernel. Sottolineano inoltre che se una modifica del driver causa un errore, verrà risolta dalla persona che ha creato l’errore. Ciò significa meno lavoro per i produttori di dispositivi a lungo termine.
Considerazioni finali sull’inclusione del kernel mainline in Andorid
Finora, questa è solo una proposta. C’è una buona probabilità che Google inizierà a lavorare sul progetto solo per abbandonarlo una volta che si rendono conto di quanto lavoro questo richiederà. Basta dare un’occhiata a quanti progetti Google ha già abbandonato.
Android Police ha fatto un buon punto menzionando che Google sta lavorando al suo sistema operativo Fucsia, che sembra avere l’obiettivo di sostituire Android un giorno.
Quindi, la domanda è quale compito monumentale cercherà di completare Google, facendo funzionare Android con un kernel Linux principale o completando il lavoro sulla loro sostituzione Android unificata? Solo il tempo può rispondere.