chester's blog

technology, travel, comics, books, math, web, software and random thoughts

Hacking a BMW

04 Jan 2019

My friend drives a BMW 3 Series. Those cars come with a built-in entertainment system that allows you to connect your smartphone and make calls, which worked as expected. But some capabilities (which they call Enhanced Bluetooth) are only enabled by means of a “service fee” - even though you’ve already paid for the system.

And when “the man” abuses its power, hacking ensues…

The car’s on-board diagnostics (OBD) port can be used to configure all sorts of settings - as long as you have the proper equipment. Enter BimmerCode, an app that enables a smartphone to read/change those settings through an OBD adapter - a dongle that plugs into the port and connects to the phone via Bluetooth.

Fair warning: there must be a dozen ways in which you can render your car unusable by changing those settings (names suggest they affect things like the engine and fuel injection). Don’t do anything unless you are confident and can afford to have the car towed and fixed by those same dealers that wanted to charge you for enabling the software in the first place…

Console OBD slot and dongle

Once you pair the smartphone with the adapter and run the app, the fun comes in two flavours: a “basic” mode with high-level options, and an “expert” one that exposes all the low-level settings. We had to use the later, activating and applying two different config blocks (following this helpful forum post):

    - CDMM_Bluetooth_Audio


We had to “restart” the car, Windows-style (turning the ignition mode off and on again). Once we did, all the functions worked: browsing call lists, playing music (and controlling it from the car, even on a non-standard Android player app), Telegram calls and some other things.

It snagged my call list... ...but played songs

Best of all, the car still worked - a perfect wrap for an unusual New Year’s hack! 😊