
di rocco spano
Aggiornamento Firmware Tesla - Come funziona?
Oggi andiamo ad affrontare come funziona nel "tecnico" e nel Firmware cosa fa la nostra auto quando gli viene pushato un update nuovo. C'è da fare un piccolo incipit che nella mia "piccola esperienza" non ho mai potuto osservare. Ad oggi non esiste un "remote hack" di Tesla Model 3,Y e nuove S e X, l'architettura è molto ben patchata tanto da far mettere dei premi a chi ci riuscirà, molti dei miei studi sono basati su Model S (che ho avuto per qualche giorno) in quanto il Tegra aveva dei bug oltre ad utilizzare una SD (ottima per Trojan) per diverse funzioni compreso un update LOCAL.
Tesla ha 3 sistemi di rilascio e installazione di un update, non mi riferisco al solo sistema OTA ma a tutto ciò che accade dopo la semplice operazione di download. Cercherò di essere il più semplice possibile.
L'auto ha al suo interno ben 4 bootloader che spiegherò più avanti, in sintesi c'è il boot standard, 2 bootloader che sono di backup in caso il primo fallisce, la prima domanda è perchè due? Beh parlando di un autovettura e non di uno smartphone, la certezza che essa funziona deve essere il più vicina al 100% possibile. Il 2° boot di backup si differenzia solamente per la zona di memoria in cui si trova.
Ma andiamo per ordine e aiutamoci a capire con qualche immagine*:

Si è potuto notare che durante questo processo l'auto mappa queste route:
Durante la connessione alla VPN, sono stati stabiliti automaticamente diversi percorsi:
- 32.0.0 / 16
- 33.0.0 / 16
- 224.0.0 / 24
- 232.75.0 / 24
- 232.79.0 / 24
ringraziando comunque sempre mamma tesla che permette comunque di leggere i path si giunge a questi indirizzi:
- vn.teslamotors.com – dati e stato del veicolo, aggiornamento del token di sicurezza per l’accesso a diagnostica e IC SSH
- vn.teslamotors.com – download e aggiornamenti del firmware
- Firmware-bundles.vn.teslamotors.com – un server di aggiornamento firmware defunto
- vn.teslamotors.com – mappa dati e aggiornamenti
Per darvi un idea grazie alle API anche gli update avvengono con un rilascio mirato ad un certo tot numero di autoveicoli:

un pò come avviene per apple, tesla non "firma" più gli update precedenti (può reinstallare solo l'ultimo di backup presente sull'auto).
I server rispondono con una cosa di molto simile quando si richiede l'update:
Firmware_download_url: la posizione del file che verrà scaricatoFirmware_download_file_md5: il checksum MD5 del file che verrà scaricatoDownload_status_url: un URL per posticipare lo stato dell’aggiornamentoVehicle_job_status_urlUnpack_size – dimensione del file del firmware decompressoInstall_size – dimensione richiesta per installare il file del firmware
La cosa inquietante è che dalla connessione dall'auto è possibile richiedere info per qualsiasi VIN.
Non voglio tediarvi con informazioni piu tecniche che probabilmente affronterò in un altro articolo più "grosso" per quanto riguarda qualche test di hacking per farvi vedere come reagisce lo Shield ma vi prometto che lo farò.

Chiudiamo con una "piccola schermata" per farvi capire come è possibile anche a mano recuperare il vecchio kernel presente sull'auto, oggi questa funzione avviene in maniera completamente automatica in caso il 1boot non andasse a compimento, ovviamente il service tesla può lanciare il comando e forzarlo manualmente in qualsiasi caso si presenti un problema.
Spero di avervi incuriosito spiegandovi per grandi linee come funzionano le nostre splendide auto!
di
rocco spano


