Sommario:
All'inizio di ogni mese, Google pubblica il bollettino mensile sulla sicurezza di Android e inizia a inviare aggiornamenti ai telefoni Pixel. È fantastico che la società sia trasparente su ciò che sta accadendo e su come le cose vengono risolte anche se non sei il tipo di persona a cui piace leggere il codice sorgente.
C'è molto lavoro da fare in queste patch prima che vengano rese pubbliche, e c'è ancora più lavoro da fare prima che arrivi ad altri telefoni, se non del tutto. Diamo un'occhiata a come viene prodotta la salsiccia e cerchiamo di capire meglio perché la sequenza temporale per le patch di sicurezza è un po 'sfocata.
Per prima cosa aggiusti Android
Android è una bestia complicata. Oltre 5 milioni di righe di codice, esiste per aiutare le aziende che rendono operativi i prodotti mobili con una piattaforma applicativa completa che include l'accesso a Google Play e altri servizi. Non è qualcosa che può essere usato così com'è; queste aziende passano molto tempo a cercare di personalizzare Android per fondersi con l'altro software che potrebbero utilizzare per creare un sistema operativo omogeneo.
Google ha alcune regole su come farlo nel caso in cui un'azienda volesse includere i suoi servizi, ma i produttori hanno un lungo guinzaglio su come viene costruito il prodotto finale.
Questo codice è dove prende vita una patch di sicurezza. Qualcuno, che si tratti di un ricercatore di sicurezza o di un semplice Joe, trova un difetto in un telefono che potrebbe essere utilizzato per ridurre il livello di sicurezza del dispositivo. Se quel difetto non è qualcosa che un OEM ha creato, il team di Android ha il compito di scoprire cosa sta succedendo, perché sta accadendo e come risolverlo nel modo meno dirompente.
Se viene rilevato un difetto di sicurezza ed è parte del codice Android di base, Google deve correggerlo e inviarlo a tutti gli altri.
Spesso, il difetto non è qualcosa che Google può risolvere. Come noi, Google non ha accesso al firmware di aziende che producono hardware come Qualcomm o LG. Se il difetto deve essere risolto a livello hardware, è probabile che l'azienda che fornisce alcuni dei componenti utilizzati debba prima apportare modifiche. In tal caso, tali modifiche vengono inoltrate a Google in modo che possa vedere cosa deve essere fatto per adattarle nel codice di Android.
Queste modifiche richiedono tempo, soprattutto se è coinvolto un fornitore di hardware. Esistono patch e test e più patch e più test per ogni difetto risolto in una patch. Una volta che Google è sicuro di avere una soluzione valida per un difetto di sicurezza, ogni azienda che produce telefoni Android ha accesso anticipato (almeno 30 giorni prima che la patch sia resa pubblica da Google) in modo che possano mettersi al lavoro.
Fase due
Qui è dove gran parte del lavoro viene svolto. Google può scrivere e mantenere Android stesso, ma la maggior parte dei dispositivi che lo utilizzano non sono realizzati da Google. Quelli che sono - telefoni Pixel - sono inclusi anche qui. L'hardware di Google è un cliente di Android allo stesso modo di Samsung o Motorola.
I Samsung e gli LG del settore mobile, che apportano molte modifiche ad Android, hanno molto lavoro da fare quando è il momento di unire una patch.
Tutte queste aziende possono lavorare su un paio di cose non appena hanno un nuovo codice da Google. La prima - e forse la più importante - parte è determinare quale parte della patch non è necessaria. E ci sono molte cose in ogni patch che una singola azienda può ignorare liberamente.
Ad esempio, se NVIDIA dovesse apportare modifiche rimandate ad Android, nessun telefono Samsung avrà bisogno di quella parte della patch. Un esempio più estremo sarebbero le modifiche apportate da BlackBerry o Samsung che già affrontano il problema in modo diverso. Scoprire cosa è necessario e cosa non può richiedere molto tempo, soprattutto quando un'azienda apporta grandi modifiche a determinate parti del sistema operativo. Google ha indagato sulle accuse secondo cui gli OEM stavano inviando patch di sicurezza che non rispondevano ad alcune cose che avrebbero dovuto avere, e questo è ciò che ha scoperto.
Non tutte le parti di una patch sono necessarie su tutti i telefoni.
Una volta fatto, il resto della patch deve essere unito nel codice Android personalizzato di un fornitore, quindi creato e testato. La parte "costruita e testata" può diventare un grosso mal di testa se la patch non può essere semplicemente applicata perché tocca i file che il codice personalizzato sta usando o da cui dipende. Lo vediamo anche molto. Ogni volta che Bluetooth o Wi-Fi vengono patchati, sia che si tratti dell'hardware o del software dietro di loro, toccherà il codice che è stato alterato da un grande OEM che rende un sistema operativo più elaborato di Android "stock". Ci sono molte parti di Android che un OEM può toccare.
Una volta che gli ingegneri Samsung o un altro fornitore ottengono un sistema operativo che si avvia e funziona, deve essere testato. E testato ancora un po '. Il test può includere il coinvolgimento di ingegneri di rete di vari operatori telefonici, oltre a far rientrare nel mix Google e / o il produttore di qualsiasi componente. Deve essere giusto. Una patch inviata a migliaia e migliaia di telefoni potrebbe potenzialmente paralizzare la rete di un operatore telefonico, divorare il limite di dati di tutti gli utenti o persino far smettere di funzionare il telefono stesso. Qualsiasi cosa del genere è inaccettabile e deve essere trovata prima che lasci l'edificio.
L'implementazione
La società che ha reso il telefono, Google e forse il tuo gestore di telefonia mobile lavorano insieme per preparare un aggiornamento via etere in massa. Se hai mai visto l'URL utilizzato per scaricare una patch, noterai che ha "Google" nell'indirizzo web. Questo perché il motore all'interno del telefono in grado di recuperare ed elaborare un aggiornamento OTA sta cercando una patch in un posto molto specifico. Deve sapere che la patch è corretta al 100% e firmata dalla giusta firma digitale. Lo verificherà nuovamente una volta che la patch è stata completamente scaricata.
Se hai acquistato il telefono da un operatore telefonico, ha un sacco di input durante l'intera vita di una patch.
Il tuo operatore potrebbe avere alcune regole su quando e chi può scaricare una patch una volta che è attiva se il loro nome è sul telefono. Aziende come Samsung o LG realizzano versioni personalizzate dei loro modelli più popolari per ogni operatore telefonico, che ha un sacco di input su come vengono fatte le cose. Dovrebbe dal momento che il suo nome è sulla scatola. Questo può essere frustrante, ma ha senso. Se tutti a Pittsburgh (ad esempio) che hanno un telefono Samsung Galaxy S8 provano a recuperare una patch da 800 MB allo stesso tempo, la rete si sgretolerà in punti. Il tuo operatore farà tutto ciò che è necessario per mantenere viva la rete.
Google pone anche una sorta di blocco sui lanci OTA. Un numero specifico di utenti riceverà una patch e dopo un determinato periodo di tempo, Google determina se tali utenti hanno avuto un'esperienza positiva o negativa. Se tutto va bene, un numero maggiore di utenti otterrà la patch in una seconda ondata. Ciò si ripete più volte prima dell'apertura delle porte. Gli utenti che non desiderano attendere questo test finale possono scaricare manualmente una patch attraverso le impostazioni del proprio dispositivo.
Quando è il tuo turno e hai dato al telefono la luce verde per afferrare quel file, viene scaricato e quindi il tuo telefono prende il controllo.
Nelle tue mani
Una patch viene scaricata sul telefono e verificata come roba giusta. Le versioni precedenti di Android hanno una cache dedicata, che è una sezione del tuo archivio che è stata divisa in modo che elementi come un file di aggiornamento vivano; cose che sono solo temporaneamente al telefono. I telefoni che utilizzano la funzionalità di aggiornamento continuo di Android (che dovrebbe essere la maggior parte dei telefoni che eseguono Android Nougat quando venduti) "inseriscono" i file scaricati in quelli che vengono chiamati slot. In entrambi i casi, è necessario disporre di spazio sufficiente per l'estrazione e l'elaborazione del file OTA.
I telefoni con versioni precedenti di Android potrebbero avere una partizione cache dedicata utilizzata durante un aggiornamento. Deve essere 2, 5 volte più grande del file OTA scaricato.
Il software di aggiornamento OTA nel telefono fa parte di Android. Uno script nel file scaricato indica come trovare i file che devono essere modificati e li copia nella cache del dispositivo o nello slot designato. Quindi confronta i file originali sul telefono con i file scaricati. Alcuni potrebbero essere un semplice scambio: prendi il file X dal telefono ed eliminalo, quindi sostituiscilo con il file X dal download OTA. Altri non sono il file completo e contengono solo piccole modifiche specifiche. Il software di aggiornamento e installazione nel telefono sa cosa fare qui.
Molti file in Android, in particolare le applicazioni e le librerie software, sono in realtà molti file compressi in un archivio speciale. Puoi prendere un file APK e cambiarlo in un file.zip e aprirlo con Windows. A volte questi archivi devono essere aperti e parti di essi devono essere scambiati con nuove versioni scaricate per la patch di sicurezza. Ecco perché è necessario quello spazio di lavoro nella partizione della cache: è qui che vengono estratti questi file.
Molti file sul telefono sono in realtà archivi contenenti molti file, inclusi altri archivi di file. È complicato.
Una volta che ogni file nell'aggiornamento OTA è stato elaborato e le modifiche apportate alle copie dei file di sistema, è il momento di eseguire il sistema con loro. Questo accade quando il telefono ti chiede di riavviare dopo aver elaborato l'OTA che hai ricevuto perché spesso ci sono file che devono essere patchati ma sono in uso mentre il telefono è in esecuzione. È possibile che venga visualizzata una schermata che mostra che è in corso un lavoro durante il riavvio oppure è possibile che venga visualizzato il logo Android. In entrambi i casi, i file vengono controllati, spostati in posizione e ricontrollati. I vecchi file vengono conservati nella cache nel caso in cui si verifichi un problema e non è possibile eseguire l'avvio con i nuovi file.
Non ti resta che assicurarti che tutto sia ancora come piace a te e che hai una data più recente per la versione della patch di sicurezza nelle impostazioni del tuo telefono. Ora sei pronto per il prossimo aggiornamento!