Durante la conferenza degli sviluppatori Google I/O 2019, Google ha annunciato Project Mainline, uno sforzo per accelerare gli aggiornamenti di sicurezza tramite moduli in Android Q.
La frammentazione della versione di Android è una delle maggiori sfide da risolvere per Google. Mentre gli smartphone Google Pixel sono tra gli smartphone più sicuri sul mercato grazie agli incredibili sforzi di Pixel e Ingegneri AOSP, molti altri smartphone sono vulnerabili agli exploit a causa dell'esecuzione di versioni del sistema operativo obsolete o di patch di sicurezza obsolete livelli. L’ultimo rapporto di Gartner mostra che Android 9 Pie è ancora un sistema operativo incredibilmente sicuro solo circa il 10% di tutti gli smartphone sono in fase di rilascio.
Google sta affrontando la frammentazione delle versioni con iniziative come Progetto Treble
, un'importante riprogettazione di Android che ha portato alla separazione tra i componenti del framework del sistema operativo Android e i componenti HAL del fornitore, kernel Linux esteso LTS, aggiornamenti obbligatori delle patch di sicurezza per 2 anni e Consigliato per Android Enterprise. Al Google I/O 2019, l'azienda ha annunciato la sua ultima iniziativa per accelerare gli aggiornamenti di sicurezza: Project Mainline per Android Q.Progetto Mainline: aggiornamento dei moduli del sistema Android Q tramite Google Play
Negli ultimi mesi abbiamo monitorato qualcosa chiamato "APICE"nell'AOSP. APICE, o Android Pony EXPRESS, è un nuovo tipo di pacchetto simile a un APK. Invece di ospitare un'applicazione Android, tuttavia, APEX ospita una libreria nativa o di classi, codice precompilato che può essere chiamato dalle app Android, dall'Hardware Abstraction Layers (HAL) e dal sistema Android Tempo di esecuzione (ARTE). Come l'APK, i pacchetti APEX possono essere offerti agli utenti tramite i tradizionali metodi di installazione dei pacchetti in Android: Google Play Store/gestore pacchetti o ADB.
I moduli APEX possono essere utilizzati molto prima nel processo di avvio rispetto ai moduli basati su APK e sono inoltre supportati da dm-verity e Android Verified Boot per una maggiore sicurezza. Il montaggio delle immagini del payload nel pacchetto APEX richiede il driver di loop del kernel Linux, quindi i dispositivi necessitano della versione 4.9+ del kernel Linux. La gestione dei pacchetti APEX richiede il nuovo demone APEX, introdotto con Android Q. Sebbene sia possibile che i dispositivi che eseguono l'aggiornamento ad Android Q con kernel Linux 4.4 supportino APEX (come Google Pixel 3), gli OEM devono unire patch aggiuntive per farlo funzionare. Nella maggior parte dei casi, solo i dispositivi avviati con Android Q supporteranno Project Mainline.
Le distribuzioni GNU/Linux sono da tempo in grado di aggiornare i componenti di sistema indipendentemente dagli aggiornamenti completi del sistema, ma Android ha sempre richiesto un aggiornamento di sistema per aggiornarli. Google ha scelto di non distribuire questi pacchetti utilizzando i tradizionali sistemi di gestione dei pacchetti Linux come dpkg e rpm perché non proteggono i pacchetti dopo l'installazione utilizzando dm-verity.
Poiché i produttori di dispositivi impiegano molto tempo per implementare gli aggiornamenti, molti dispositivi potrebbero avere componenti di sistema obsoleti da giorni, settimane o addirittura mesi. Distribuendo questi componenti come pacchetti APEX, Google può evitare la lunga attesa per gli OEM per implementare un aggiornamento di sistema.
Google, tuttavia, non esercita il controllo totale su tutti i componenti del sistema. L'azienda ha collaborato con i suoi partner OEM per selezionare una serie di app di sistema (come APK) e componenti di sistema (come APEX pacchetti) da modularizzare in modo da poter migliorare la sicurezza, la privacy e la coerenza per tutti gli utenti con dispositivi avviati con Android Q. Sebbene Google non abbia rivelato esattamente come sia venuta fuori con il set iniziale di componenti del sistema, lo ha fatto ci ha fornito l'elenco dei componenti di sistema sui dispositivi avviati con Android Q che saranno aggiornabili entro Google:
- Sicurezza: Codec multimediali, Componenti del framework multimediale, Risolutore DNS, Conscrypt
- Privacy: Interfaccia utente dei documenti, controller delle autorizzazioni, ExtServices
- Consistenza: Dati sul fuso orario, ANGOLO (attivazione attiva degli sviluppatori), Metadati del modulo, Componenti di rete, Accesso al Captive Portal, Configurazione delle autorizzazioni di rete
Aggiornamenti immediati a Conscrypt, alla libreria di sicurezza Java e ai componenti multimediali, che "rappresentano quasi il 40% delle vulnerabilità recentemente corrette", renderanno i dispositivi Android più sicuri. Gli aggiornamenti al controller delle autorizzazioni miglioreranno la privacy. La standardizzazione dei dati del fuso orario sarà utile per mantenere i dispositivi Android in tutto il mondo sulla stessa pagina ogni volta che un paese decide di cambiare il proprio fuso orario. Inoltre, gli sviluppatori di giochi trarranno vantaggio dalla standardizzazione di ANGOLO.
Google sta iniziando con questi componenti di sistema ma potrebbe aggiungerne altri nelle future versioni di Android. Di questi 13 componenti, Conscrypt, dati del fuso orario, codec multimediali e componenti Media Framework verranno forniti come pacchetti APEX. Gli altri 9 componenti sono APK di sistema. Sebbene sia APEX che gli APK siano disponibili tramite Google Play, l'aggiornamento di un pacchetto APEX richiederà un riavvio. Google non ha ancora condiviso il flusso dell'interfaccia utente su come ciò avverrà, ma una volta che i dispositivi inizieranno a essere lanciati con Android Q probabilmente impareremo maggiori informazioni sui pacchetti Project Mainline e APEX.