
Reverse Engineering des in Renault-Fahrzeugen verbauten NavCore 9.884 (Codename beaumont)
Reverse Engineering des in Renault eingebetteten NavCore 9.884 (Codename
beaumont)
Getestet auf: Renault Laguna 3 GT Monaco GP 2012 (übrigens ein wunderschönes Auto)
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
Das Carminat TomTom LIVE ist das eingebaute Navigationssystem von Renault, mit dem die Modelle von 2009 bis 2014 (Laguna 3, Mégane 3, Scénic 3, Espace 4, Fluence, Latitude, Koleos…) ausgestattet waren. Es unterscheidet sich vom Carminat TomTom non-Live durch:
signedloop die Integrität des Rootfs über einen Merkle-Baum prüfen (durch diese Analyse nicht bestätigt, vgl. §3)Dieses Repository dokumentiert eine Analyse der Firmware NavCore 9.884 beaumont, einschließlich der Kartierung des Filesystems, der statischen Analyse des NavCore-Binärprogramms und der Laufzeitanalyse über QEMU/strace.
Verwendete Methodik:
ttgo.bif, loopdir/ext3_loopback)ttn zu ermöglichen (strace der Systemaufrufe, Beobachtung der geöffneten Dateien, Laufzeitverhalten)Am physischen Gerät im Fahrzeug wurden keine Änderungen vorgenommen. Alle Analysen wurden an Kopien der Dateien der SD-Karte und der heruntergeladenen Firmware durchgeführt.
Die gesamte hier dokumentierte Arbeit wurde anhand einer persönlichen SD-Karte (zur Analyse aus dem Fahrzeug entnommen) und der vom TomTom-CDN heruntergeladenen offiziellen Firmware durchgeführt.
📌 Fortlaufendes Dokument: Dieser Bericht stellt den aktuellen Wissensstand aus dieser Analyse dar. Er kann im Zuge künftiger Entdeckungen, Beiträge aus der Community und empirischer Validierungen auf echter Hardware verbessert, korrigiert oder ergänzt werden. Beiträge, Korrekturen und Rückmeldungen sind willkommen.
| Feld | Wert |
|---|---|
| DeviceName | TomTom Carminat LIVE |
| Hardware-Codename | beaumont (rev 11) |
| NavCore-Version | 9.884, Build 9.884.1609031 |
| Offizielles Release | NFA2.8-RC06, kompiliert am 27.06.2014 in Dieppe |
| Linux-Kernel | 2.6.28.10-tt1574740 |
| Toolchain | gcc 4.3.3 TomTom CipherWizardry 2009q1_203-474426 |
| Libc | uClibc |
| Init-System | Upstart (über Shell-Skript /sbin/init → exec /sbin/upstart) |
Diese Informationen stammen aus der ttgo.bif, die aus dem Image loopdir/ext3_loopback der SD-Karte extrahiert wurde, sowie aus der Datei 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
| Komponente | Identifikation |
|---|---|
| SoC | Samsung S5P6440 (bestätigt über /etc/udev/rules.d/20_local-s5p6440.rules) |
| CPU | ARM1176JZF-S · ARMv6 · Little-Endian · EABI |
| RAM | durch die statische Analyse nicht bestimmt |
| Interner Speicher | NAND-Flash · eMMC (/dev/mmcblk0) |
| Benutzer-SD-Karte | /dev/mmcblk1 (zugänglicher Slot) |
| Bildschirm | LCD Samsung LTA058B3L0F (gemäß DTB) · 480×272 |
| Framebuffer | /dev/fb0 · RGB16/24 |
| GPS | SiRF3 PRIMA · /dev/ttySAC2 |
| GSM/GPRS-Modem | Wavecom WISMO218 · /dev/ttyS0 |
| RDS-TMC-Tuner | BCM4750 · bcm4750_spi |
| Bluetooth | Integriert · hci_uart · nur HFP + PBAP (kein 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
⚠️ Das Modul
signedloopwird von der Community (gpspower.net) als Instanz gemeldet, die die Integrität vonrootfs.imgüberprüft. Nicht im extrahierten rootfs beobachtet (weder in/etc/modulesnoch in/lib/modules/2.6.28.10-tt1574740/). Zu bestätigen.
Die Firmware ist ohne Authentifizierung vom Akamai-CDN von TomTom herunterladbar:
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
Weitere verfügbare Versionen (getestet HTTP 200):
| Version | 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
Das
ttsystemist ein ext2-Image (kein TTBL), im Gegensatz zu den Nicht-Live-Versionen.
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/