
Reverse engineering del NavCore 9.884 integrato Renault (nome in codice beaumont)
Reverse engineering del NavCore 9.884 integrato Renault (codename
beaumont)
Testato su: Renault Laguna 3 GT Monaco GP 2012 (una bellissima auto, tra l'altro)
flowchart TD
A[Carminat TomTom LIVE] --> B[Samsung S5P6440<br/>Linux 2.6.28 verrouillé]
B --> C[NAND interne]
B --> D[Carte SD externe]
C --> E[Verrouillé]
D --> F[Modifiable]
E -.->|UART| G[shell root théorique ?]
F -.->|fichiers SD| H[Personnalisations<br/>splash · menus · POI]
style A fill:#5B4FBE,color:#fff
style E fill:#A32D2D,color:#fff
style F fill:#3B6D11,color:#fff
style G fill:#EF9F27,color:#000
style H fill:#1D9E75,color:#fff
Il Carminat TomTom LIVE è il sistema di navigazione integrato di Renault che equipaggia i modelli 2009-2014 (Laguna 3, Mégane 3, Scénic 3, Espace 4, Fluence, Latitude, Koleos…). Si distingue dal Carminat TomTom non-Live per:
signedloop verificherebbe l'integrità del rootfs tramite albero di Merkle (non confermato da questa analisi, cfr. §3)Questo repository documenta un'analisi del firmware NavCore 9.884 beaumont, includendo la mappatura del filesystem, l'analisi statica del binario NavCore e l'analisi runtime tramite QEMU/strace.
Metodologia utilizzata:
ttgo.bif, loopdir/ext3_loopback)ttn (strace delle chiamate di sistema, osservazione dei file aperti, comportamento runtime)Nessuna modifica è stata effettuata sul dispositivo fisico del veicolo. Tutte le analisi sono state eseguite su copie dei file della SD e del firmware scaricato.
Tutto il lavoro documentato qui è stato svolto a partire da una scheda SD personale (estratta dal veicolo per l'analisi) e dal firmware ufficiale scaricato dal CDN TomTom.
📌 Documento evolutivo: Questo rapporto rappresenta lo stato attuale delle conoscenze emerse da questa analisi. Potrà essere migliorato, corretto o arricchito nel corso delle future scoperte, dei contributi della community e delle validazioni empiriche sull'hardware reale. Contributi, correzioni e riscontri sono benvenuti.
| Campo | Valore |
|---|---|
| DeviceName | TomTom Carminat LIVE |
| Codename hardware | beaumont (rev 11) |
| NavCore version | 9.884, build 9.884.1609031 |
| Release ufficiale | NFA2.8-RC06, compilata il 27/06/2014 a Dieppe |
| Kernel Linux | 2.6.28.10-tt1574740 |
| Toolchain | gcc 4.3.3 TomTom CipherWizardry 2009q1_203-474426 |
| Libc | uClibc |
| Init system | Upstart (tramite script shell /sbin/init → exec /sbin/upstart) |
Queste informazioni provengono dal ttgo.bif estratto dall'immagine loopdir/ext3_loopback della scheda SD e dal file TomTom-Cfg/release.nfo.
# Extrait ttgo.bif
[TomTomGo]
DeviceName=TomTom Carminat LIVE
DeviceVersionHW=beaumont
ApplicationVersionVersionNumber=9884
ApplicationVersion=1609031.550
RamDiskVersion=20140626
BootLoaderVersion=839378
LinuxVersion=1574740
| Componente | Identificazione |
|---|---|
| SoC | Samsung S5P6440 (confermato tramite /etc/udev/rules.d/20_local-s5p6440.rules) |
| CPU | ARM1176JZF-S · ARMv6 · little-endian · EABI |
| RAM | non determinata dall'analisi statica |
| Memoria interna | NAND flash · eMMC (/dev/mmcblk0) |
| Scheda SD utente | /dev/mmcblk1 (slot accessibile) |
| Schermo | LCD Samsung LTA058B3L0F (secondo il DTB) · 480×272 |
| Framebuffer | /dev/fb0 · RGB16/24 |
| GPS | SiRF3 PRIMA · /dev/ttySAC2 |
| Modem GSM/GPRS | Wavecom WISMO218 · /dev/ttyS0 |
| Sintonizzatore RDS-TMC | BCM4750 · bcm4750_spi |
| Bluetooth | Integrato · hci_uart · solo HFP + PBAP (nessun A2DP) |
| Touchscreen | libts · /dev/input/event0 |
/etc/modules)unionfs · ppp_async · ppp_generic · slhc · hidp · hid · rfcomm
sco · hci_uart · l2cap · bluetooth · bcm4750_spi · vfat · msdos
fat · evdev
⚠️ Il modulo
signedloopè segnalato dalla comunità (gpspower.net) come verificante l'integrità dirootfs.img. Non osservato nel rootfs estratto (né in/etc/modules, né in/lib/modules/2.6.28.10-tt1574740/). Da confermare.
Il firmware è scaricabile senza autenticazione dal CDN Akamai di TomTom:
curl -A "TomTom HOME/2.24.11.8" -O \
"http://download.tomtom.com/sweet/navcore/9.884.1609031_RC06.CAB-Dieppe.cab"
# SHA256 de référence
a4d32daae2cdd6bc23a0660285c4e32e3a098034731eb257172ed7aaef9052d5
Altre versioni disponibili (testate HTTP 200):
| Versione | URL |
|---|---|
| 9.844 | http://download.tomtom.com/sweet/navcore/9844.634510.Carminat_TomTom.cab |
| 9.845 RC10 | http://download.tomtom.com/sweet/navcore/9.845_1115399_RC10.CAB-Camiron-RC10.cab |
| 9.846 RC12 | http://download.tomtom.com/sweet/navcore/9.846_1165624_RC12.CAB-Camiron-RC12.cab |
| 9.847 RC14 | http://download.tomtom.com/sweet/navcore/9.847.1302316_RC14.CAB-Camiron-RC14.cab |
| 9.884 RC06 | http://download.tomtom.com/sweet/navcore/9.884.1609031_RC06.CAB-Dieppe.cab |
brew install cabextract # macOS
mkdir extracted && cabextract 9.884.1609031_RC06.CAB-Dieppe.cab -d extracted/
ls extracted/
# → splashw.bmp ttsystem TomTom-Cfg/release.nfo
Il
ttsystemè una immagine ext2 (non un TTBL), a differenza delle versioni non-Live.
cd extracted/
mkdir rootfs && 7z x ttsystem -o rootfs/
# Le rootfs réel est dans userfs_partition.tar.gz
cd rootfs/
tar xzf userfs_partition.tar.gz
# Contenu :
# _zImage → Linux kernel ARM zImage
# rootfs.img → filesystem Linux complet (ext2, 67 MB)
# WISMO218_*.cla → firmwares modem
mkdir rootfs_mnt
# Sur Linux :
sudo mount -o loop rootfs.img rootfs_mnt/
# Sur macOS (lecture seule) :
7z x rootfs.img -o rootfs_mnt/