
Ingeniería inversa del NavCore 9.884 embebido de Renault (nombre en clave beaumont)
Ingeniería inversa del NavCore 9.884 embebido en Renault (nombre en clave
beaumont)
Probado en: Renault Laguna 3 GT Monaco GP 2012 (un coche magnífico, por cierto)
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
El Carminat TomTom LIVE es el sistema de navegación integrado de Renault que equipa los modelos 2009-2014 (Laguna 3, Mégane 3, Scénic 3, Espace 4, Fluence, Latitude, Koleos…). Se distingue del Carminat TomTom no-Live por:
signedloop verificaría la integridad del rootfs mediante un árbol de Merkle (no confirmado por este análisis, cf. §3)Este repositorio documenta un análisis del firmware NavCore 9.884 beaumont, incluyendo la cartografía del filesystem, el análisis estático del binario NavCore y el análisis en tiempo de ejecución mediante QEMU/strace.
Metodología utilizada:
ttgo.bif, loopdir/ext3_loopback)ttn (strace de las llamadas al sistema, observación de los archivos abiertos, comportamiento en tiempo de ejecución)No se ha realizado ninguna modificación sobre el dispositivo físico del vehículo. Todos los análisis se han realizado sobre copias de los archivos de la SD y del firmware descargado.
Todo el trabajo documentado aquí se ha realizado a partir de una tarjeta SD personal (extraída del vehículo para su análisis) y del firmware oficial descargado desde el CDN de TomTom.
📌 Documento evolutivo: Este informe representa el estado actual de los conocimientos derivados de este análisis. Podrá mejorarse, corregirse o enriquecerse a lo largo de futuros descubrimientos, contribuciones de la comunidad y validaciones empíricas sobre el hardware real. Las contribuciones, correcciones y comentarios son bienvenidos.
| Campo | Valor |
|---|---|
| DeviceName | TomTom Carminat LIVE |
| Codename hardware | beaumont (rev 11) |
| NavCore version | 9.884, build 9.884.1609031 |
| Release oficial | NFA2.8-RC06, compilada el 27/06/2014 en Dieppe |
| Kernel Linux | 2.6.28.10-tt1574740 |
| Toolchain | gcc 4.3.3 TomTom CipherWizardry 2009q1_203-474426 |
| Libc | uClibc |
| Init system | Upstart (mediante script shell /sbin/init → exec /sbin/upstart) |
Esta información proviene del ttgo.bif extraído de la imagen loopdir/ext3_loopback de la tarjeta SD, y del archivo 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 | Identificación |
|---|---|
| SoC | Samsung S5P6440 (confirmado vía /etc/udev/rules.d/20_local-s5p6440.rules) |
| CPU | ARM1176JZF-S · ARMv6 · little-endian · EABI |
| RAM | no determinada por el análisis estático |
| Almacenamiento interno | NAND flash · eMMC (/dev/mmcblk0) |
| Tarjeta SD de usuario | /dev/mmcblk1 (ranura accesible) |
| Pantalla | LCD Samsung LTA058B3L0F (según DTB) · 480×272 |
| Framebuffer | /dev/fb0 · RGB16/24 |
| GPS | SiRF3 PRIMA · /dev/ttySAC2 |
| Módem GSM/GPRS | Wavecom WISMO218 · /dev/ttyS0 |
| Sintonizador RDS-TMC | BCM4750 · bcm4750_spi |
| Bluetooth | Integrado · hci_uart · solo HFP + PBAP (sin A2DP) |
| Pantalla táctil | 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
⚠️ La comunidad informa (gpspower.net) que el módulo
signedloopverifica la integridad derootfs.img. No observado en el rootfs extraído (ni en/etc/modules, ni en/lib/modules/2.6.28.10-tt1574740/). Por confirmar.
El firmware se puede descargar sin autenticación desde el CDN Akamai de 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
Otras versiones disponibles (probadas HTTP 200):
| Versión | 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
El
ttsystemes una imagen ext2 (no un TTBL), a diferencia de las versiones no-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/