hardware:tbox
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| hardware:tbox [2026/08/10 01:14] – external edit 127.0.0.1 | hardware:tbox [2026/08/12 13:37] (current) – [Remote preconditioning is in the firmware] steini | ||
|---|---|---|---|
| Line 18: | Line 18: | ||
| Front: the Quectel LTE module (top, under the QR-coded shield) with three RF cans labelled | Front: the Quectel LTE module (top, under the QR-coded shield) with three RF cans labelled | ||
| - | **MAIN ANTENNA / WIFI-1 / WIFI-2**, the nFore gateway chip and Micron memory beside it, and a row of | + | **MAIN ANTENNA / WIFI-1 / WIFI-2**, the nFore WiFi/ |
| - | **FAKRA** antenna jacks plus the white main harness connector down the right edge. Back: the NXP | + | row of **FAKRA** antenna jacks plus the white main harness connector down the right edge. Back: the |
| - | S32K144 MCU (large QFP, lower centre) and the CAN transceiver. | + | NXP S32K144 MCU (large QFP, lower centre) and the CAN transceiver. |
| ===== Cellular modem — Quectel AG35 ===== | ===== Cellular modem — Quectel AG35 ===== | ||
| Line 63: | Line 63: | ||
| the general-purpose computer and the live CAN bus — the same pattern the head unit uses with its | the general-purpose computer and the live CAN bus — the same pattern the head unit uses with its | ||
| [[hardware: | [[hardware: | ||
| + | |||
| + | That " | ||
| + | presents up to Linux as a SocketCAN device (**'' | ||
| + | ''/ | ||
| + | **not** a native CAN controller wired to the car — it is this SPI link to the MCU. A common misreading | ||
| + | is that the TBox reaches CAN over three separate interfaces (SPI, '' | ||
| + | SPI and '' | ||
| + | **MCU control/ | ||
| ===== CAN transceiver — NXP TJA1042 ===== | ===== CAN transceiver — NXP TJA1042 ===== | ||
| Line 81: | Line 89: | ||
| automated 112/ | automated 112/ | ||
| - | ===== Gateway/comms processor | + | ===== WiFi / Bluetooth module |
| {{: | {{: | ||
| - | Large QFP marked **'' | + | A **shielded RF module** (metal-can lid, the same style as the AG35's own shield) |
| - | makes networking / gateway silicon, so this is **likely the communications/gateway processor** | + | **'' |
| - | (handling | + | **automotive WiFi/Bluetooth combo modules**, and software confirms this is exactly that: both the |
| - | confirmed**. //Marking is legible; | + | head unit and the TBox's own application are built on nFore' |
| + | calling, music streaming, contacts sync), and the TBox's Bluetooth configuration names the underlying | ||
| + | baseband as a **Broadcom BCM4339** (a WiFi + Bluetooth 4.0/BLE combo chip) reached over a UART — nFore | ||
| + | most likely packages that chip into their own automotive-qualified module under this part number. | ||
| + | //High confidence (role confirmed via software; exact die inside the module | ||
| + | |||
| + | The Bluetooth stack isn't started by any background service — the TBox's software appears to bring it | ||
| + | up only on demand. One function name stood out during analysis: a BLE-based **remote wake** feature — | ||
| + | suggesting Bluetooth here is meant as a local trigger path, not just for phone pairing. Relevant to any | ||
| + | future companion hardware placed near the car (see [[: | ||
| ===== Memory — Micron ===== | ===== Memory — Micron ===== | ||
| Line 94: | Line 111: | ||
| {{: | {{: | ||
| - | Micron FBGA chip (Micron " | + | Micron FBGA chip (Micron " |
| **DRAM or flash**. The FBGA code ('' | **DRAM or flash**. The FBGA code ('' | ||
| type/ | type/ | ||
| Line 120: | Line 137: | ||
| connector on the right edge is the **vehicle harness** (power, ignition, CAN, audio for eCall). Exact | connector on the right edge is the **vehicle harness** (power, ignition, CAN, audio for eCall). Exact | ||
| pinout not yet traced. | pinout not yet traced. | ||
| + | |||
| + | ===== Operating system & software ===== | ||
| + | |||
| + | The Quectel AG35's application processor runs **embedded Linux** (the standard vendor build). The telematics application — the OEM-cloud client, the OTA/FOTA agent, the eCall/bCall logic and the CAN command builder — is a single userspace program on that Linux. The always-on **S32K144 MCU** is the only part wired to the vehicle CAN; the Linux side reaches it over an internal serial link and hands it commands. Because it is an ordinary Linux system it is fully inspectable — and, as it turns out, **wide open**. | ||
| + | |||
| + | ===== Getting a root shell ===== | ||
| + | |||
| + | Several independent routes exist, from fully remote (over the car's own internal USB link) to bench-level. **None require an exploit** — the doors are already open. Root here means root on the // | ||
| + | |||
| + | ==== Remote, over the USB link (no disassembly) ==== | ||
| + | |||
| + | From the head unit, which is the '' | ||
| + | |||
| + | * **FTP (port 21) — full root read/ | ||
| + | * One limitation: that FTP daemon **refuses to write device nodes** (only regular files) — so it cannot poke the modem' | ||
| + | * The other open ports on that link are **50000** (the telephony/ | ||
| + | |||
| + | ==== Persistent doors you can open with a single config edit ==== | ||
| + | |||
| + | Two changes need only a config-file write over the FTP root — no code execution — and take effect on the next cold boot: | ||
| + | |||
| + | * **Add ADB to the USB gadget.** The list of USB interfaces the TBox presents is read from a plain text file; adding '' | ||
| + | * **Bring up the built-in Wi-Fi AP.** The mobile-AP config disables Wi-Fi and the access point at boot with two flags; enabling both brings up the pre-configured AP, after which FTP (and anything else) is reachable **directly over Wi-Fi**, with no head-unit relay. | ||
| + | |||
| + | ==== Bench / physical access ==== | ||
| + | |||
| + | * **Serial console (UART) — guaranteed root.** The board' | ||
| + | * **ADB over USB**, once enabled as above. | ||
| + | |||
| + | **Important — cold boot vs. deep sleep.** The MCU distinguishes a **deep sleep** (suspend-to-RAM: | ||
| + | toggling the **rear fog light 4×** is observed to reboot the TBox — the cluster briefly shows "Kein | ||
| + | Netz". Whether that restart is a full cold boot that re-reads config, or only a warm restart, is | ||
| + | **unconfirmed**.)// | ||
| + | |||
| + | ===== Remote preconditioning is in the firmware ===== | ||
| + | |||
| + | |||
| + | The telematics app contains the remote-control machinery: routines to **check preconditions**, | ||
| + | |||
| + | * **Trigger is cloud-only.** It fires on a command field delivered by the (dead) cloud; **no local trigger exists in the code**. | ||
| + | * **Pre-check: | ||
| + | * **How the command reaches the car:** the TBox sends a **security-gated UDS routine over the diagnostic CAN**, and the MCU relays those bytes to the bus. The only frame the TBox emits on its own is a network-management **wake frame**. | ||
| + | |||
| + | The MCU defines a **remote CAN-message descriptor** carrying //which bus//, //data source//, a **" | ||
| + | |||
| + | **What that means for reviving preconditioning: | ||
| + | |||
| + | ===== The on-board CAN database ===== | ||
| + | |||
| + | The TBox filesystem carries the vehicle' | ||
| + | |||
| + | ===== The TBox ↔ MCU interface (SCOM) ===== | ||
| + | |||
| + | The Linux side talks to the S32K144 MCU over an internal **SCOM** (serial-comms) request/ | ||
| + | protocol ('' | ||
| + | issues a set of get/set operations. What can be identified from the firmware: | ||
| + | |||
| + | ^ Operation ^ Dir ^ Parameter ^ Purpose ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Persistent config items ('' | ||
| + | '' | ||
| + | |||
| + | //These are the operations identifiable from firmware strings; the SCOM protocol' | ||
| + | and full parameter encodings are not fully reverse-engineered, | ||
| + | complete spec. The '' | ||
| + | BMS_*, ABM_*, AC_*, VCU_*, …), which holds the full signal list — far more than can be tabled here.// | ||
| + | |||
| + | ===== The OEM cloud is dead ===== | ||
| + | |||
| + | The consumer-telematics backend is gone: the cloud server does not respond and its ports are closed, and the EU authentication endpoints point at **torn-down load-balancers**. (The separate // | ||
| ===== Why the TBox matters to this project ===== | ===== Why the TBox matters to this project ===== | ||
hardware/tbox.1786317243.txt.gz · Last modified: by 127.0.0.1