Reverse Engineering the BMW I3 API(shkspr.mobi)
shkspr.mobi
Reverse Engineering the BMW I3 API
https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/
20 comments
I did this on my 2015 3 series which provides access to a lot of cool APIs as well but performance data is accessible only for the i3. The best use I could find for the API was an iOS extension to easily send Maps locations directly to my car for use with the built-in navigation system.
Have you open sourced any of this, by chance? Was just thinking of attempting this on my BMW.
Am I understanding this correctly? The car is constantly communicating with BMW's servers?
Not quite. The car has a 3G modem which is always on. When the app makes a request to BMW's servers, they forward the request to the car, which then responds.
I assume that it probably pushes some days regularly.
If the car is out of coverage, the app doesn't get any data back - as far as I can tell.
I assume that it probably pushes some days regularly.
If the car is out of coverage, the app doesn't get any data back - as far as I can tell.
I would expect this data to be available only by banging on k- or d-bus, not that it is being uploaded to BMW.
I'm getting old...
I'm getting old...
Any sensible reason for it, or is it just another case of insane engineering - pushing through cloud stuff that should go through a LAN?
If your vehicle is in a car park, it needs some way to connect to the net. It might make sense to have wifi for home use - but does your network stretch out to your garage?
I was at the HackTheDrive event. Part of the data made available was logs from several trips taken in the i3. This included car sensor and location data, pinged every few seconds of the journey. I'm not sure if this is transmitted by default.
in principle it's kind of scary that the easiest way to get data from your car is to query a www server
Its an authenticated query. Why is it scary - is there a problem with the authentication?
If the authentication is sound it is actually quite cool.
If the authentication is sound it is actually quite cool.
It's scary because that server could be compromised and then your car is wide open.
No authentication stays sound forever.
>in principle it's kind of scary that the easiest way to get data from your car is to query a www server
Not entirely unexpected though. I mean...Engineer X is being evaluated on 50 performance criteria...none of which includes "will HN approve of the coms". In that case vanilla www queries are certainly a viable option.
Not entirely unexpected though. I mean...Engineer X is being evaluated on 50 performance criteria...none of which includes "will HN approve of the coms". In that case vanilla www queries are certainly a viable option.
Depends on what you mean by easy. There is also the CAN bus.
But at least that requires physical access to the vehicle, something that is a bit harder to do when you're doing 90 miles per hour on the autobahn. But a server that can give you access to that car bypasses the air gap that would otherwise keep you safe.
[deleted]
What is it with all this stuff relying on server round trips when strictly speaking that is simply not necessary, why all this totally superfluous complexity?
http://stackoverflow.com/questions/2557423/how-to-limit-spee...
Now it seems to be not-so-much of a joke anymore.