Google prevede di passare a un modello di sviluppo "upstream first" per le funzionalità del kernel Linux in Android a partire dal 2023. Continuate a leggere per saperne di più.
Quando vedi le parole "Android" e "frammentazione" nella stessa frase, probabilmente la tua mente corre immediatamente al Grafico di distribuzione delle versioni Android. Ci sono alcune entità contro cui la maggior parte delle persone punta il dito quando si lamenta del fatto che gli aggiornamenti del sistema operativo Android sono lenti a essere implementati su tutta la linea, ma Google può fare solo un certo limite forza OEM per sviluppare e implementare gli aggiornamenti più rapidamente. Ciò che Google può fare, tuttavia, è ridurre i tempi di sviluppo e quindi i costi di implementazione degli aggiornamenti.
La prima grande iniziativa nel progetto a lungo termine di Google per ridurre gli oneri di sviluppo è Progetto Treble. Annunciato insieme ad Android 8.0 Oreo nel 2017, Project Treble ha modularizzato Android separando il framework del sistema operativo dall'implementazione del fornitore (HAL e il fork del kernel Linux specifico del dispositivo). Ciò ha reso più semplice per gli OEM Android ribasare i propri sistemi operativi sull'ultimo framework AOSP poiché potevano avviare la versione più recente senza bisogno di codice aggiornato dai fornitori. Di conseguenza, gli OEM potrebbero preparare i loro fork Android personalizzati più rapidamente di prima e, per estensione, implementare più rapidamente i principali aggiornamenti del sistema operativo.
Il passo successivo nei piani di Google era quello di semplificare la distribuzione degli aggiornamenti ai componenti chiave di Android. Google ha chiamato questa iniziativa Linea principale del progetto quando lo ha introdotto insieme ad Android 10 nel 2019. Google ha sostanzialmente preso il controllo dei componenti chiave del sistema operativo e ha vietato agli OEM di modificarli. Hanno quindi impostato un meccanismo di consegna tramite Google Play in modo da poter implementare da remoto gli aggiornamenti a questi componenti chiave senza dover attendere che gli OEM applichino autonomamente le patch. Mainline ha notevolmente migliorato la rapidità con cui i dispositivi ricevono versioni aggiornate di importanti componenti del sistema operativo, migliorando a sua volta la sicurezza dell'ecosistema Android nel suo complesso.
Ma quello che verrà dopo è ancora più importante ed è probabilmente la parte più importante della strategia a lungo termine di Google. Quando abbiamo sottolineato in precedenza come Treble ha modularizzato Android separando il framework del sistema operativo da implementazione del fornitore, abbiamo incluso il "fork del kernel Linux specifico per il dispositivo" come parte di quel fornitore codice. Chiunque abbia familiarità con Linux sui desktop riconoscerà un problema lì: perché è raggruppato con il codice del fornitore closed-source? Il problema è che mentre i dispositivi Android vengono forniti con il kernel Linux, quel kernel presenta a quantità di codice fuori dall'albero.
Come ci siamo arrivati? Il problema, come sottolineato dall'ingegnere del software di Google Todd Kjos su la Linux Plumbers Conference di quest'anno (attraverso ArsTechnica), è perché il kernel Linux principale viene biforcato più volte prima di essere spedito su un dispositivo Android. Google inserisce ciascun kernel Linux principale in un "Kernel comune Android", che segue da vicino la versione principale ma aggiunge alcune patch specifiche per Android. I fornitori di SoC come Qualcomm, MediaTek e Samsung si biforcano Quello kernel per ogni SoC che producono. Gli OEM quindi prendono il kernel specifico del SoC e aggiungono ulteriori patch per implementare il supporto per l'hardware specifico che desiderano fornire.
A causa di questi cambiamenti "fino al 50% del codice in esecuzione su un dispositivo è codice fuori dall'albero (non da kernel Linux upstream o AOSP comuni)", secondo Google. La grande quantità di codice fuori dall'albero su questi dispositivi rende l'unione delle modifiche a monte un processo lungo e impegnativo. Ciò è dannoso per la sicurezza dei dispositivi, poiché gli OEM devono lavorare di più per implementare patch alle vulnerabilità scoperte nel kernel Linux. Inoltre, questo lascia la maggior parte dei dispositivi Android con versioni del kernel vecchie di anni, il che significa che perdono le nuove funzionalità del kernel Linux.
Nel tentativo di risolvere questo problema, Google sta lavorando su Android Generic Kernel Image (GKI), che è essenzialmente un kernel compilato direttamente da un ramo ACK. La GKI isola le personalizzazioni dei fornitori SoC e degli OEM nei moduli plug-in, eliminando il codice fuori struttura e consentendo a Google di inviare gli aggiornamenti del kernel direttamente all'utente finale. Per oltre un anno, Google ha lavorato su un modo per fornire gli aggiornamenti GKI tramite il Play Store, attraverso l'utilizzo di un modulo Mainline.
Secondo le nostre fonti, i dispositivi che si avviano con Androide 12 e fornito con il kernel Linux 5.10 deve distribuire un'immagine di avvio firmata da Google. Di proprietà di Google Pixel 6 La serie verrà lanciata con Android 12 pronto all'uso e verrà fornita con il kernel Linux 5.10, quindi i due telefoni potrebbero essere i primi dispositivi del mercato di massa a essere forniti con un GKI.
Inoltre, Todd Kjos di Google ha rivelato che la società prevede di passare a un modello di sviluppo "upstream first" per le nuove funzionalità del kernel Linux. Ciò aiuterà Google a garantire che il nuovo codice arrivi prima nel kernel Linux principale, riducendo così il futuro debito tecnico accumulato dall’arrivo di più codice fuori dagli schemi sui dispositivi Android.
Alla Linux Plumbers Conference di questa settimana, Kjos ha detto, "Poiché i moduli fuori dall'albero sono davvero importanti per il nostro caso d'uso, ci aspettiamo di avere sempre una serie di esportazioni e alcune cose che sono diverse o in aggiunta a ciò che è a monte, ma l'intero progetto è un progetto pluriennale che mira a eliminare il maggior numero possibile di zone fuori dagli alberi e ad allinearsi il più possibile con a monte." Google mira a completare il proprio lavoro per potenziare le funzionalità esistenti e isolare le modifiche dei fornitori entro la fine del 2022 e, a partire dal 2023, l’azienda prevede di adottare questo modello di sviluppo “upstream first” per evitare tali problematiche nel futuro.