
Engenharia reversa do NavCore 9.884 embarcado Renault (codename beaumont)
Engenharia reversa do NavCore 9.884 embarcado Renault (codename
beaumont)
Testado em: Renault Laguna 3 GT Monaco GP 2012 (um carro magnífico, aliás)
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
O Carminat TomTom LIVE é o sistema de navegação embarcado da Renault que equipa os modelos 2009-2014 (Laguna 3, Mégane 3, Scénic 3, Espace 4, Fluence, Latitude, Koleos…). Distingue-se do Carminat TomTom não-Live por:
signedloop verificaria a integridade do rootfs por árvore de Merkle (não confirmado por esta análise, cf. §3)Este repositório documenta uma análise do firmware NavCore 9.884 beaumont, incluindo o mapeamento do filesystem, a análise estática do binário NavCore e a análise runtime via QEMU/strace.
Metodologia utilizada:
ttgo.bif, loopdir/ext3_loopback)ttn (strace das chamadas de sistema, observação dos ficheiros abertos, comportamento runtime)Nenhuma modificação foi efetuada na unidade física do veículo. Todas as análises foram realizadas sobre cópias dos ficheiros do cartão SD e do firmware descarregado.
Todo o trabalho aqui documentado foi realizado a partir de um cartão SD pessoal (extraído do veículo para análise) e do firmware oficial descarregado do CDN TomTom.
📌 Documento evolutivo: Este relatório representa o estado atual dos conhecimentos resultantes desta análise. Poderá ser melhorado, corrigido ou enriquecido ao longo de futuras descobertas, contribuições da comunidade e validações empíricas no hardware real. Contribuições, correções e feedback são bem-vindos.
| 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 a 27/06/2014 em Dieppe |
| Kernel Linux | 2.6.28.10-tt1574740 |
| Toolchain | gcc 4.3.3 TomTom CipherWizardry 2009q1_203-474426 |
| Libc | uClibc |
| Init system | Upstart (via script shell /sbin/init → exec /sbin/upstart) |
Estas informações provêm do ttgo.bif extraído da imagem loopdir/ext3_loopback do cartão SD, e do ficheiro 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 | Identificação |
|---|---|
| SoC | Samsung S5P6440 (confirmado via /etc/udev/rules.d/20_local-s5p6440.rules) |
| CPU | ARM1176JZF-S · ARMv6 · little-endian · EABI |
| RAM | não determinada pela análise estática |
| Armazenamento interno | NAND flash · eMMC (/dev/mmcblk0) |
| Cartão SD do usuário | /dev/mmcblk1 (slot acessível) |
| Tela | LCD Samsung LTA058B3L0F (conforme DTB) · 480×272 |
| Framebuffer | /dev/fb0 · RGB16/24 |
| GPS | SiRF3 PRIMA · /dev/ttySAC2 |
| Modem GSM/GPRS | Wavecom WISMO218 · /dev/ttyS0 |
| Sintonizador RDS-TMC | BCM4750 · bcm4750_spi |
| Bluetooth | Integrado · hci_uart · somente HFP + PBAP (sem 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
⚠️ O módulo
signedloopé relatado pela comunidade (gpspower.net) como verificando a integridade derootfs.img. Não observado no rootfs extraído (nem em/etc/modules, nem em/lib/modules/2.6.28.10-tt1574740/). A confirmar.
O firmware pode ser baixado sem autenticação a partir do CDN Akamai da 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
Outras versões disponíveis (testadas HTTP 200):
| Versão | 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
O
ttsystemé uma imagem ext2 (não um TTBL), ao contrário das versões não-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/