<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>bmw &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/bmw/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Wed, 11 Mar 2026 09:17:08 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>bmw &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Twelve Thousand Miles in an Electric Car]]></title>
		<link>https://shkspr.mobi/blog/2016/10/twelve-thousand-miles-in-an-electric-car/</link>
					<comments>https://shkspr.mobi/blog/2016/10/twelve-thousand-miles-in-an-electric-car/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 04 Oct 2016 10:45:24 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[bmw]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[i3]]></category>
		<category><![CDATA[review]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=23388</guid>

					<description><![CDATA[I&#039;ve spent an entire year driving the BMW i3 Electric Car.  This is a long-ish term review which is intended to reflect my experience with the car and the UK&#039;s charging infrastructure.  I spent three days a week commuting between Slough and Oxford, on a mix of motorways and quieter streets.  I drove all the way to Norwich and back, and made regular trips into London.  The UK&#039;s charging…]]></description>
										<content:encoded><![CDATA[<p>I've spent an entire year driving the BMW i3 Electric Car.  This is a long-ish term review which is intended to reflect my experience with the car and the UK's charging infrastructure.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/09/BMW-i3-driven-12530-miles-.png" alt="BMW i3 driven 12530 miles" width="570" height="419" class="aligncenter size-full wp-image-23390">
I spent three days a week commuting between Slough and Oxford, on a mix of motorways and quieter streets.  I drove all the way to Norwich and back, and made regular trips into London.</p>

<p>The UK's charging infrastructure is patchy at best.  At worst it is a confusing mess of incompatible standards, over-priced chargers, and woefully inadequate central planning.</p>

<p>The only time I had to hire a regular car was when ferrying my in-laws to the airport. The i3 is spacious - but not big enough for four adults and seven suitcases!</p>

<p>I'm firmly committed to EVs (electric vehicles), but my next car won't be an i3. In fact, I think it is unlikely that I'll ever drive a BMW again.</p>

<h2 id="cost"><a href="https://shkspr.mobi/blog/2016/10/twelve-thousand-miles-in-an-electric-car/#cost">Cost</a></h2>

<p>The i3 is a company car.  My old employer paid for the lease, and I paid the tax on the benefit I receive.  In the UK the tax rates for electric vehicles are incredibly low - so I was isolated from the capital cost of the vehicle.  There are also discounts on the London congestion charge.</p>

<p>The i3 was stupidly expensive.  It's a high-tech bit of kit, but I got tired of BMW trying to extract every extra penny out of me.</p>

<ul>
<li>Want a charging cable for your car? That's extra!</li>
<li>Reversing camera and sensors? Extra cost!</li>
<li>Adaptive Cruise Control? It's pretty nifty but you have to pay to get the entire interior upgraded just to get the steering wheel with the correct buttons.</li>
</ul>

<p>Most other EVs come with those things as standard.  BMW say that most i3 drivers are new to the BMW brand.  That's certainly true in my case.  But BMW's attitude to selling cars hasn't caught up with its high tech manufacturing.  A bewildering array of options, hidden behind a website which barely works, each priced based on numbers plucked from thin air.</p>

<p>Getting the car was, frankly, a nasty experience.  But it pales in comparison to the real horrors the car has in store.</p>

<h2 id="crappy-software"><a href="https://shkspr.mobi/blog/2016/10/twelve-thousand-miles-in-an-electric-car/#crappy-software">Crappy Software</a></h2>

<p>Several of the i3's features fail to work.</p>

<ul>
<li>Adaptive Cruise Control is meant to keep your distance from the car in front. It doesn't work if the sun is too low in the sky. Like, you know, when you're commuting. It also randomly fails with an alarming "bong" noise, if the screen mists up or it starts raining.  Which brings me on to...</li>
<li>The automatic windscreen wipers aren't very sensitive. Maybe it doesn't rain in Germany, but in the UK wipers are a necessity. Sometimes they just wouldn't react to the buckets of rain falling onto the car.  Still, at least the car is easy to park, right?</li>
<li>The auto-parallel parking is... eccentric. I know I'm lazy for not parking myself, but that's why I'm paying silly money for the car.  Sometimes the sensors wouldn't see the gap to park in, sometimes the car would hit the kerb, sometimes the parking would stop mid-manoeuvre. Oh well, at least the GPS gets you where you're going, eh?</li>
<li>The navigation software was a disappointment. I was expecting buttery-smooth 30fps animation - but I got a shuddery mess.  The interface was painful to use and updates came through a paid for USB stick.  I stuck with the free Google Maps app on my phone and had a much nicer experience.  Even the navigation prompts came through Bluetooth. Mostly.</li>
<li>Bluetooth is too hard for BMW.  I got bored with all the little niggles with the entertainment system - scroll wheels which wouldn't work, lack of cover art, random sound drop outs.  Small issues, yes, but when you're paying this much for a car, you expect a better service.</li>
<li>Updates are woefully delivered.  There's a 3G modem in the car, but you have to <a href="https://shkspr.mobi/blog/2016/02/bmw-are-sending-their-software-updates-unencrypted/">update manually with yet another USB stick</a>.</li>
<li>I've detailed <a href="https://shkspr.mobi/blog/2015/06/bmw-i3s-web-browser/">just how bad the i3's web browser is before </a>- so I didn't get that particular option.</li>
<li>There is a mobile app.  It's slow, poorly localised, and features some truly hideous design decisions.</li>
<li>It is meant to send email alerts when charging is interrupted or the battery is low. The mails are poorly designed and sometimes come hours after they would have been useful.</li>
</ul>

<p>Luckily I never had cause to use the pedestrian detection feature, but I have severe doubts that it would have performed as intended.</p>

<p>The i3 is an <strong>amazing</strong> car to <em>drive</em>, but it is a <strong>terrible</strong> car to <em>use</em>.</p>

<h2 id="the-drive"><a href="https://shkspr.mobi/blog/2016/10/twelve-thousand-miles-in-an-electric-car/#the-drive">The Drive</a></h2>

<p>Amazing. Seriously. It left me with a smile on my face after every drive.  It is as silent as a ninja and as fast as... err... another ninja!</p>

<p>The steering responded to the merest touch of the wheel and the car leaped forward at the lights and left others in its dust.  The i3 uses regenerative braking - as soon as you lift off the accelerator pedal, the car begins to slow down as it harvests kinetic energy to recharge the battery.  Driven correctly, you should never need to touch the brake pedal.</p>

<p>With all that said, the ride is very stiff and bumpy.  Great on motorways, but on the more dilapidated streets it feels like running in plimsolls.  Maybe the average BMW owner is too rich to drive on anything but the finest surfaces?</p>

<p>I put 12,000 miles on the i3 in a year.  Without a doubt this car is the quickest, most fun, and most pleasant drive there is.</p>

<h2 id="charging"><a href="https://shkspr.mobi/blog/2016/10/twelve-thousand-miles-in-an-electric-car/#charging">Charging</a></h2>

<p>The vast majority of my charging was done at home.  With a 7kW charger fitted I was able to go from empty to full in 4 hours.  Parked overnight and full in the morning. Perfect!</p>

<p>My employers were generous enough to install some free chargers at work.  These were supplied by PodPoint and, I'm sorry to say, not very reliable.  We were never sure if it was a poor installation, an incompatible car, or simply defective units - but the points would fail and leave some people limping along to the next nearest point.  I was lucky - the 80 mile range of the i3 was enough to get me to work and back on a single charge.</p>

<p>When I started driving the i3 a year ago, there were only a few EVs in our car park - now it is full of Leafs, Outlanders, and the occasional Tesla.  They're now putting in several regular plug sockets.  If you're going to be at work for 8 hours, it doesn't really matter how fast your car charges, does it?</p>

<p>And so we come on to the sorry state of public charging.  In a sensible world, councils and businesses would stick up free charging spots to encourage EVs.  The cost of electricity is negligible (less than £3 to fill one up), but you could always recoup the money with a contactless credit card reader. Easy, no?</p>

<p>No.  Instead we have a dozen incompatible charging schemes, each of which requires their own RFID card or mobile app.  Got a card for charging in London? It won't work when charging in Norwich!  Want £2 worth of electricity? Download our app, register, and pay £6.  Plus parking costs!</p>

<p>That's before we get on to broken points, incompatible charging sockets, and petrol cars parking in front of the chargers. GAH!</p>

<p>On the plus side, the "Rapid" chargers will take the i3 from empty to 80% in 30 minutes.  Frankly, after a few hours of driving, having a 30 minute mandatory break for food and rest is probably a good idea!</p>

<p>If you only drive within the range of your EV, it's a beautiful and stress free experience.  If you have to rely on the vagaries of the UK charging network... well, you better start collecting a wide range of RFID cards and hope for the best!</p>

<p>I cheated and got the i3 Rex.  It has a small petrol tank (9 litres) which can recharge the battery as you drive.  Over the year, I think I filled it up about 6 times.  Half of those were because I couldn't be bothered to wait for a charge, the rest because of charging failures.</p>

<h2 id="whats-next"><a href="https://shkspr.mobi/blog/2016/10/twelve-thousand-miles-in-an-electric-car/#whats-next">What's Next?</a></h2>

<p>As I change jobs, the i3 is going back.  I looked at getting a replacement for my personal use - but I just couldn't justify the price.  I've gone for a Renault Zoe - it's not as glamorous, but has a longer range and costs a fraction of the i3.</p>

<p>There are several EVs which cost less than the i3 and come with more features.  Perhaps the Zoe's software won't be any better (it couldn't be any worse) - but at least I won't feel like I'm being charged a premium price for a second rate product.</p>

<p>The i3 is a disappointment simply because it <em>shows so much promise</em>.  It steers itself in a traffic jam and can park itself!  But you're never confident that the software won't crap out at an inconvenient time.</p>

<p>EVs are the future of personal driving.  The cost is approaching parity with petrol cars.  The range is already suitable for the majority of drivers.  Charging at home and work solves most of the problems of poor infrastructure.  The software is getting better all the time.</p>

<p>The i3 is a tantalising glimpse at what mass market EVs <em>could</em> be - but it falls short of glory.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=23388&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2016/10/twelve-thousand-miles-in-an-electric-car/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[BMW *are* complying with the GPL]]></title>
		<link>https://shkspr.mobi/blog/2016/03/bmw-are-complying-with-the-gpl/</link>
					<comments>https://shkspr.mobi/blog/2016/03/bmw-are-complying-with-the-gpl/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 29 Mar 2016 21:19:33 +0000</pubDate>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[bmw]]></category>
		<category><![CDATA[GPL]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=22667</guid>

					<description><![CDATA[The good news follow-up rarely gets as much attention as the original bad-news story.  Earlier this month I accidentally kicked off a minor kerfuffle over whether BMW was respecting the GPL.  Their i3 car contains a huge amount of Open Source Software and there was some confusion as to BMW&#039;s compliance with the licence terms.  I took a look through the car&#039;s user interface and, hidden away, was…]]></description>
										<content:encoded><![CDATA[<p>The good news follow-up rarely gets as much attention as the original bad-news story.</p>

<p>Earlier this month <a href="https://shkspr.mobi/blog/2016/03/bmw-and-the-gpl/">I accidentally kicked off a minor kerfuffle over whether BMW was respecting the GPL</a>.  Their i3 car contains a huge amount of Open Source Software and there was some confusion as to BMW's compliance with the licence terms.</p>

<p>I <a href="https://youtu.be/Kal-MjsNcFQ">took a look through the car's user interface</a> and, hidden away, was this email address.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/03/BMW-GPL-Email-Address-.jpg" alt="BMW GPL Email Address" width="1024" height="576" class="aligncenter size-full wp-image-22565"></p>

<p>I dropped them an email. <a href="https://twitter.com/edent/status/709399460162506753">And then a reminder</a>.</p>

<p>Well, today I received this letter in the post:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/03/BMW-GPL-Letter-.jpg" alt="BMW GPL Letter-" width="1024" height="396" class="aligncenter size-full wp-image-22669">

<p>With this ancient piece of spinning media :-)
<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/03/BMW-GPL-DVD-.jpg" alt="BMW GPL DVD-" width="1024" height="713" class="aligncenter size-full wp-image-22670"></p>

<p>That's 950MB of open source goodness!</p>

<h2 id="mirror"><a href="https://shkspr.mobi/blog/2016/03/bmw-are-complying-with-the-gpl/#mirror">Mirror</a></h2>

<p>To save you having to get a DVD shipped to your location, <a href="https://github.com/edent/BMW-OpenSource">I've mirrored the files on GitHub</a>.  A file tree is also provided at the end of this blog post.</p>

<p>Lots of interesting - and outdated - software packages in there.</p>

<h2 id="lessons"><a href="https://shkspr.mobi/blog/2016/03/bmw-are-complying-with-the-gpl/#lessons">Lessons</a></h2>

<ul>
    <li>In <a href="https://shkspr.mobi/blog/2016/02/bmw-are-sending-their-software-updates-unencrypted/">my original blog post</a>, I speculated on BMW's GPL compliance, that was irresponsible of me.</li>
    <li>Large companies move slowly. It's tempting to go off on a Twitter crusade if you haven't heard back after five minutes. Patience, grasshopper.</li>
    <li>Customer service agents are geared up to deal with normal queries. It's unfair to take them to task for not understanding software licences.</li>
    <li>BMW would do well to set up a simple website or FTP site containing all of this data.  Or, at the very least, making it more obvious how to obtain it.</li>
    <li>Open Source Software is <em>wonderful!</em></li>
</ul>

<h2 id="file-listing"><a href="https://shkspr.mobi/blog/2016/03/bmw-are-complying-with-the-gpl/#file-listing">File Listing</a></h2>

<p>You can <a href="https://github.com/edent/BMW-OpenSource">download from GitHub</a> - but here's a quick list of everything on the DVD. Enjoy!</p>

<div style="height:20em;overflow: scroll;">
<pre>.
├── [7.1M Sep 14  2011]  1000-com.st.havana.kernel-207-7.patch
├── [2.0K Mar 16 14:32]  alsa-intf-git-r3
│&nbsp;&nbsp; └── [202K Jul  8  2014]  alsa-intf-git-r3-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  alsa-lib
│&nbsp;&nbsp; ├── [ 558 Jul  8  2014]  alsa-lib-1.0.24.1-r1-patches.tar.gz
│&nbsp;&nbsp; └── [813K Jul  8  2014]  alsa-lib-1.0.24.1.tar.bz2
├── [790K Feb  9  2012]  alsa-lib-1.0.21a-23.tar.bz2
├── [992K Feb  9  2012]  alsa-utils-1.0.16.tar.bz2
├── [ 24K Feb  9  2012]  anacron-2.3.tar.gz
├── [2.4M Jan 26  2012]  apache-etch-1.1.0-incubating-src.zip
├── [1.1M Jan 26  2012]  apr-1.3.8.tar.gz
├── [1.2M Jan 26  2012]  asn1c-0.9.21.tar.gz
├── [1.4M Sep 23  2013]  asn1c-0.9.24.tar.gz
├── [2.0K Mar 16 14:32]  atk
│&nbsp;&nbsp; └── [729K Jul  8  2014]  atk-2.2.0.tar.bz2
├── [2.0K Mar 16 14:32]  attr
│&nbsp;&nbsp; ├── [ 666 Jul  8  2014]  attr-2.4.46-r3-patches.tar.gz
│&nbsp;&nbsp; └── [330K Jul  8  2014]  attr-2.4.46.src.tar.gz
├── [2.0K Mar 16 14:32]  audiorouter-git-r1
│&nbsp;&nbsp; └── [ 20K Jul  8  2014]  audiorouter-git-r1-prepatch.tar.gz
├── [ 56K Feb  9  2012]  autofs-3.1.7.tar.bz2
├── [2.0K Mar 16 14:32]  base-files
│&nbsp;&nbsp; └── [3.4K Jul  8  2014]  base-files-1.0-r3-patches.tar.gz
├── [2.0K Mar 16 14:32]  base-passwd
│&nbsp;&nbsp; ├── [1.5K Jul  8  2014]  base-passwd-3.5.22-r10-patches.tar.gz
│&nbsp;&nbsp; └── [ 71K Jul  8  2014]  base-passwd_3.5.22.tar.gz
├── [ 45K Feb  9  2012]  base-passwd-3.5.9.tar.gz
├── [2.3M Feb  9  2012]  bash-3.0.tar.gz
├── [272K Feb  9  2012]  bc-1.06.tar.gz
├── [ 87K Feb 10  2012]  BigDigits-2.3.0.zip
├── [2.0K Mar 16 14:32]  bigreqsproto
│&nbsp;&nbsp; └── [100K Jul  8  2014]  bigreqsproto-1.1.1.tar.bz2
├── [ 15M Feb  9  2012]  binutils-2.19.1.tar.bz2
├── [2.0K Mar 16 14:32]  busybox
│&nbsp;&nbsp; ├── [ 14K Jul  8  2014]  busybox-1.18.5-r44.0-patches.tar.gz
│&nbsp;&nbsp; └── [2.0M Jul  8  2014]  busybox-1.18.5.tar.bz2
├── [2.0M Feb  9  2012]  busybox-1.18.2.tar.bz2
├── [2.0K Mar 16 14:32]  cairo
│&nbsp;&nbsp; └── [ 22M Jul  8  2014]  cairo-1.10.2.tar.gz
├── [592K Mar  8  2013]  capu-2012.zip
├── [653K Feb  9  2012]  console-tools-0.2.3.tar.gz
├── [ 58K Feb  9  2012]  cron-3.0pl1.orig.tar.gz
├── [2.0K Mar 16 14:32]  cronie
│&nbsp;&nbsp; ├── [1.0K Jul  8  2014]  cronie-1.4.8-r2-patches.tar.gz
│&nbsp;&nbsp; └── [205K Jul  8  2014]  cronie-1.4.8.tar.gz
├── [2.0K Mar 16 14:32]  cups
│&nbsp;&nbsp; ├── [1.2K Jul  8  2014]  cups-1.4.6-r2-patches.tar.gz
│&nbsp;&nbsp; └── [4.3M Jul  8  2014]  cups-1.4.6-source.tar.bz2
├── [3.3M Jan 26  2012]  curl-7.21.0.zip
├── [2.0K Mar 16 14:32]  dbus
│&nbsp;&nbsp; ├── [2.1K Jul  8  2014]  dbus-1.4.16-r1.0-patches.tar.gz
│&nbsp;&nbsp; └── [1.8M Jul  8  2014]  dbus-1.4.16.tar.gz
├── [2.0K Mar 16 14:32]  dbus-glib
│&nbsp;&nbsp; ├── [ 530 Jul  8  2014]  dbus-glib-0.92-r1-patches.tar.gz
│&nbsp;&nbsp; └── [671K Jul  8  2014]  dbus-glib-0.92.tar.gz
├── [131K Feb  9  2012]  debianutils_3.2.1.tar.gz
├── [479K Feb  9  2012]  deltarpm-3.4.tar.bz2
├── [ 174 Feb 11  7:02]  desktop.ini
├── [3.3M Jan 26  2012]  DevIL-1.7.8.zip
├── [1.0M Feb  9  2012]  dhcp-4.1.0a1.tar.gz
├── [2.0K Mar 16 14:32]  dhcpcd
│&nbsp;&nbsp; └── [ 69K Jul  8  2014]  dhcpcd-5.2.10.tar.bz2
├── [2.7M Nov 24  2011]  DiBcom_SDK_Release_8.11.18.GPL.tar.gz
├── [1.9M Feb  9  2012]  DirectFB-1.4.3.STM2010.03.10.tar.bz2
├── [2.0K Mar 16 14:32]  dnsmasq
│&nbsp;&nbsp; ├── [5.0K Jul  8  2014]  dnsmasq-2.55-r2-patches.tar.gz
│&nbsp;&nbsp; └── [431K Jul  8  2014]  dnsmasq-2.55-r2-prepatch.tar.gz
├── [393K Feb  9  2012]  dnsmasq-2.50.tar.gz
├── [2.0K Mar 16 14:32]  e2fsprogs
│&nbsp;&nbsp; ├── [2.8K Jul  8  2014]  e2fsprogs-1.42-r1-patches.tar.gz
│&nbsp;&nbsp; └── [5.4M Jul  8  2014]  e2fsprogs-1.42.tar.gz
├── [2.0K Mar 16 14:32]  eglibc
│&nbsp;&nbsp; ├── [5.5K Jul  8  2014]  eglibc-2.13-r20+svnr15508-patches.tar.gz
│&nbsp;&nbsp; └── [ 22M Jul  8  2014]  eglibc-2.13-r20+svnr15508-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  eglibc-initial
│&nbsp;&nbsp; ├── [5.5K Jul  8  2014]  eglibc-initial-2.13-r20+svnr15508-patches.tar.gz
│&nbsp;&nbsp; └── [ 22M Jul  8  2014]  eglibc-initial-2.13-r20+svnr15508-prepatch.tar.gz
├── [127K Feb  9  2012]  ethtool-6.tar.gz
├── [2.0K Mar 16 14:32]  eventlog
│&nbsp;&nbsp; └── [296K Jul  8  2014]  eventlog_0.2.12.tar.gz
├── [2.0K Mar 16 14:32]  exosip
│&nbsp;&nbsp; └── [222K Jul  8  2014]  exosip-3.5.0-r0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  exosip4
│&nbsp;&nbsp; └── [247K Jul  8  2014]  exosip4-4.0.0-r0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  expat
│&nbsp;&nbsp; ├── [ 543 Jul  8  2014]  expat-2.0.1-r1-patches.tar.gz
│&nbsp;&nbsp; └── [436K Jul  8  2014]  expat-2.0.1.tar.gz
├── [ 16K Feb 10  2012]  ezxml-0.8.6.tar.gz
├── [2.0K Mar 16 14:32]  fastjar
│&nbsp;&nbsp; ├── [1.4K Jul  8  2014]  fastjar-0.98-r1-patches.tar.gz
│&nbsp;&nbsp; └── [701K Jul  8  2014]  fastjar-0.98.tar.gz
├── [ 27K Feb  9  2012]  fbset_2.1.orig.tar.gz
├── [760K Feb  9  2012]  findutils_4.1.20.orig.tar.gz
├── [2.0K Mar 16 14:32]  flex
│&nbsp;&nbsp; └── [1.2M Jul  8  2014]  flex-2.5.35.tar.bz2
├── [2.0K Mar 16 14:32]  fontconfig
│&nbsp;&nbsp; ├── [ 534 Jul  8  2014]  fontconfig-2.8.0-r4-patches.tar.gz
│&nbsp;&nbsp; └── [1.5M Jul  8  2014]  fontconfig-2.8.0.tar.gz
├── [2.0K Mar 16 14:32]  FreeScale
│&nbsp;&nbsp; ├── [4.7M Jan 30  2015]  linux-2.6.35.3-imx_10.12.01.bz2
│&nbsp;&nbsp; └── [ 67M Jan 30  2015]  linux-2.6.35.3.tar.bz2
├── [2.0K Mar 16 14:32]  freetype
│&nbsp;&nbsp; ├── [ 399 Jul  8  2014]  freetype-2.4.8-r0-patches.tar.gz
│&nbsp;&nbsp; └── [1.4M Jul  8  2014]  freetype-2.4.8.tar.bz2
├── [1.4M Feb  9  2012]  freetype-2.3.11.tar.bz2
├── [160K Jan 26  2012]  freetype-doc-2.1.10.tar.bz2
├── [653K Aug 19  2011]  fribidi-0.19.2.tar.gz
├── [156K Feb  9  2012]  ft2demos-2.3.11.tar.bz2
├── [ 63M Feb  9  2012]  gcc-4.5.0.tar.bz2
├── [ 20M Feb  9  2012]  gdb-6.8.tar.gz
├── [2.0K Mar 16 14:32]  gdk-pixbuf
│&nbsp;&nbsp; ├── [1.2K Jul  8  2014]  gdk-pixbuf-2.24.0-r2-patches.tar.gz
│&nbsp;&nbsp; └── [1.6M Jul  8  2014]  gdk-pixbuf-2.24.0.tar.bz2
├── [2.0K Mar 16 14:32]  giflib
│&nbsp;&nbsp; └── [494K Jul  8  2014]  giflib-4.1.6.tar.bz2
├── [ 15M Feb  9  2012]  glibc-2.10.1.tar.bz2
├── [571K Feb  9  2012]  glibc-ports-2.10.1.tar.bz2
├── [3.9M Jul  3  2014]  glm-0.9.5.3.zip
├── [2.0K Mar 16 14:32]  gnujaf
│&nbsp;&nbsp; ├── [153K Jul  8  2014]  activation-1.1.1.tar.gz
│&nbsp;&nbsp; └── [1.1K Jul  8  2014]  gnujaf-1.1.1-r1-patches.tar.gz
├── [2.0K Mar 16 14:32]  gnumail
│&nbsp;&nbsp; ├── [ 522 Jul  8  2014]  gnumail-1.1.2-r1-patches.tar.gz
│&nbsp;&nbsp; └── [310K Jul  8  2014]  mail-1.1.2.tar.gz
├── [2.0K Mar 16 14:32]  gtk+
│&nbsp;&nbsp; ├── [4.0K Jul  8  2014]  gtk+-2.24.8-r1-patches.tar.gz
│&nbsp;&nbsp; └── [ 16M Jul  8  2014]  gtk+-2.24.8.tar.bz2
├── [2.0K Mar 16 14:32]  hostap-git-r3
│&nbsp;&nbsp; └── [2.2M Jul  8  2014]  hostap-git-r3-prepatch.tar.gz
├── [338K Feb  9  2012]  ifupdown_0.6.7.tar.gz
├── [2.0K Mar 16 14:32]  inetlib
│&nbsp;&nbsp; ├── [ 528 Jul  8  2014]  inetlib-1.1.1-r1-patches.tar.gz
│&nbsp;&nbsp; └── [238K Jul  8  2014]  inetlib-1.1.1.tar.gz
├── [2.0K Mar 16 14:32]  initscripts
│&nbsp;&nbsp; └── [ 16K Jul  8  2014]  initscripts-1.0-r129-patches.tar.gz
├── [2.0K Mar 16 14:32]  inputproto
│&nbsp;&nbsp; └── [152K Jul  8  2014]  inputproto-2.0.2.tar.bz2
├── [2.0K Mar 16 14:32]  iproute2
│&nbsp;&nbsp; ├── [1014 Jul  8  2014]  iproute2-3.2.0-r0-patches.tar.gz
│&nbsp;&nbsp; └── [521K Jul  8  2014]  iproute2-3.2.0-r0-prepatch.tar.gz
├── [362K Feb  9  2012]  iproute2-2.6.33.tar.bz2
├── [2.0K Mar 16 14:32]  iptables
│&nbsp;&nbsp; └── [462K Jul  8  2014]  iptables-1.4.12.1.tar.bz2
├── [ 87K Feb  9  2012]  iputils-s20071127.tar.bz2
├── [102K Feb 10  2012]  jasherai-oniguruma-09254fa.zip
├── [2.0K Mar 16 14:32]  jpeg-8c-r3
│&nbsp;&nbsp; ├── [ 12K Jul  8  2014]  jpeg-8c-r3-patches.tar.gz
│&nbsp;&nbsp; └── [964K Jul  8  2014]  jpegsrc.v8c.tar.gz
├── [938K Feb  9  2012]  jpegsrc.v7.tar.gz
├── [968K Jan 26  2012]  jpegsrc.v8d.tar.gz
├── [115K Jul  3  2014]  jsoncpp-src-0.6.0-rc2.tar.gz
├── [2.0K Mar 16 14:32]  kbd
│&nbsp;&nbsp; └── [1016K Jul  8  2014]  kbd-1.15.2.tar.bz2
├── [2.0K Mar 16 14:32]  kbproto
│&nbsp;&nbsp; └── [109K Jul  8  2014]  kbproto-1.0.5.tar.bz2
├── [2.0K Mar 16 14:32]  keymaps
│&nbsp;&nbsp; └── [7.1K Jul  8  2014]  keymaps-1.0-r20-patches.tar.gz
├── [ 37K Feb  9  2012]  keyutils-1.2.tar.bz2
├── [286K Feb  9  2012]  less-394.tar.gz
├── [2.0K Mar 16 14:32]  libasrc
│&nbsp;&nbsp; └── [ 36K Jul  8  2014]  libasrc-1.0.0-r0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  libcap
│&nbsp;&nbsp; └── [ 59K Jul  8  2014]  libcap-2.22.tar.bz2
├── [ 52K Feb  9  2012]  libcap-2.16.tar.gz
├── [2.0K Mar 16 14:32]  libffi
│&nbsp;&nbsp; └── [736K Jul  8  2014]  libffi-3.0.10.tar.gz
├── [2.0K Mar 16 14:32]  libgcrypt
│&nbsp;&nbsp; ├── [1.0K Jul  8  2014]  libgcrypt-1.5.0-r0-patches.tar.gz
│&nbsp;&nbsp; └── [1.7M Jul  8  2014]  libgcrypt-1.5.0.tar.gz
├── [2.0K Mar 16 14:32]  libgpg-error
│&nbsp;&nbsp; ├── [1.0K Jul  8  2014]  libgpg-error-1.10-r1-patches.tar.gz
│&nbsp;&nbsp; └── [429K Jul  8  2014]  libgpg-error-1.10.tar.bz2
├── [2.0K Mar 16 14:32]  libhardware-git-r4
│&nbsp;&nbsp; ├── [ 899 Jul  8  2014]  libhardware-git-r4-patches.tar.gz
│&nbsp;&nbsp; └── [ 39K Jul  8  2014]  libhardware-git-r4-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  libice
│&nbsp;&nbsp; └── [316K Jul  8  2014]  libICE-1.0.7.tar.bz2
├── [2.0K Mar 16 14:32]  lib-libmnl
│&nbsp;&nbsp; └── [ 45K Jul  8  2014]  lib-libmnl-1.0-r0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  liblinenoise
│&nbsp;&nbsp; └── [ 13K Jul  8  2014]  liblinenoise-1.0-r0-prepatch.tar.gz
├── [522K Feb  9  2012]  libmtp-0.2.6.1.tar.gz
├── [2.0K Mar 16 14:32]  libogg
│&nbsp;&nbsp; └── [415K Jul  8  2014]  libogg-1.3.0.tar.gz
├── [803K Feb  9  2012]  liboil-0.3.15.tar.gz
├── [2.0K Mar 16 14:32]  libol
│&nbsp;&nbsp; └── [338K Jul  8  2014]  libol-0.3.18.tar.gz
├── [2.0K Mar 16 14:32]  libpcap
│&nbsp;&nbsp; ├── [ 550 Jul  8  2014]  libpcap-1.1.1-r1-patches.tar.gz
│&nbsp;&nbsp; └── [568K Jul  8  2014]  libpcap-1.1.1.tar.gz
├── [508K Feb  9  2012]  libpcap-0.9.8.tar.gz
├── [615K Feb  9  2012]  libpng-1.2.40.tar.bz2
├── [805K Jan 26  2012]  libpng-1.4.3.tar.gz
├── [2.0K Mar 16 14:32]  libpthread-stubs
│&nbsp;&nbsp; └── [199K Jul  8  2014]  libpthread-stubs-0.3.tar.bz2
├── [2.0K Mar 16 14:32]  libsm
│&nbsp;&nbsp; └── [278K Jul  8  2014]  libSM-1.2.0.tar.bz2
├── [2.0K Mar 16 14:32]  libtool-cross
│&nbsp;&nbsp; ├── [2.5M Jul  8  2014]  libtool-2.4.2.tar.gz
│&nbsp;&nbsp; └── [7.1K Jul  8  2014]  libtool-cross-2.4.2-r1.1-patches.tar.gz
├── [380K Feb  9  2012]  libusb-0.1.12.tar.gz
├── [2.0K Mar 16 14:32]  libusb1
│&nbsp;&nbsp; └── [324K Jul  8  2014]  libusb-1.0.8.tar.bz2
├── [2.0K Mar 16 14:32]  libusb-compat
│&nbsp;&nbsp; ├── [245K Jul  8  2014]  libusb-compat-0.1.3.tar.bz2
│&nbsp;&nbsp; └── [ 606 Jul  8  2014]  libusb-compat-1_0.1.3-r2-patches.tar.gz
├── [2.0K Mar 16 14:32]  libx11
│&nbsp;&nbsp; ├── [ 975 Jul  8  2014]  libx11-1.4.4-r0-patches.tar.gz
│&nbsp;&nbsp; └── [2.2M Jul  8  2014]  libX11-1.4.4.tar.bz2
├── [2.0K Mar 16 14:32]  libxau
│&nbsp;&nbsp; └── [255K Jul  8  2014]  libXau-1.0.6.tar.bz2
├── [2.0K Mar 16 14:32]  libxcb
│&nbsp;&nbsp; └── [364K Jul  8  2014]  libxcb-1.8.tar.bz2
├── [2.0K Mar 16 14:32]  libxdmcp
│&nbsp;&nbsp; └── [282K Jul  8  2014]  libXdmcp-1.1.0.tar.bz2
├── [2.0K Mar 16 14:32]  libxext
│&nbsp;&nbsp; └── [333K Jul  8  2014]  libXext-1.3.0.tar.bz2
├── [2.0K Mar 16 14:32]  libxi
│&nbsp;&nbsp; └── [413K Jul  8  2014]  libXi-1.4.3.tar.bz2
├── [2.0K Mar 16 14:32]  libxinerama
│&nbsp;&nbsp; └── [260K Jul  8  2014]  libXinerama-1.1.1.tar.bz2
├── [2.0K Mar 16 14:32]  libxml2
│&nbsp;&nbsp; ├── [ 827 Jul  8  2014]  libxml2-2.7.8-r5-patches.tar.gz
│&nbsp;&nbsp; └── [4.7M Jul  8  2014]  libxml2-2.7.8.tar.gz
├── [2.0K Mar 16 14:32]  libxrender
│&nbsp;&nbsp; └── [252K Jul  8  2014]  libXrender-0.9.6.tar.bz2
├── [2.0K Mar 16 14:32]  libxt
│&nbsp;&nbsp; ├── [ 577 Jul  8  2014]  libxt-1_1.1.1-r1-patches.tar.gz
│&nbsp;&nbsp; └── [699K Jul  8  2014]  libXt-1.1.1.tar.bz2
├── [2.0K Mar 16 14:32]  libxtst
│&nbsp;&nbsp; └── [275K Jul  8  2014]  libXtst-1.2.0.tar.bz2
├── [2.0K Mar 16 14:32]  linphone
│&nbsp;&nbsp; ├── [1.1K Jul  8  2014]  linphone-3.5.2-r0-patches.tar.gz
│&nbsp;&nbsp; └── [6.6M Jul  8  2014]  linphone-3.5.2-r0-prepatch.tar.gz
├── [ 61M Feb 14  2012]  linux-2.6.32.28.tar.bz2
├── [2.0K Mar 16 14:32]  linux-libc-headers
│&nbsp;&nbsp; ├── [ 74M Jul  8  2014]  linux-3.1.tar.bz2
│&nbsp;&nbsp; └── [ 756 Jul  8  2014]  linux-libc-headers-3.1-r1-patches.tar.gz
├── [2.0K Mar 16 14:32]  linux-quic-git-2186caf8a22515c67d814a04143f421a789b874d-r3
│&nbsp;&nbsp; ├── [102M Jul  8  2014]  linux-quic.tar.gz
│&nbsp;&nbsp; └── [   0 Jul  8  2014]  symlinks_resolved
├── [713K Feb  9  2012]  lirc-0.8.6.tar.bz2
├── [2.0K Mar 16 14:32]  lk-git-r3
│&nbsp;&nbsp; ├── [ 694 Jul  8  2014]  lk-git-r3-patches.tar.gz
│&nbsp;&nbsp; └── [3.2M Jul  8  2014]  lk-git-r3-prepatch.tar.gz
├── [840K Feb  9  2012]  lm_sensors-2.9.2.tar.gz
├── [2.0K Mar 16 14:32]  loc-api-git-r3
│&nbsp;&nbsp; └── [279K Jul  8  2014]  loc-api-git-r3-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  loc-api-test
│&nbsp;&nbsp; └── [9.2K Jul  8  2014]  loc-api-test-1.0-r2-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  logrotate
│&nbsp;&nbsp; ├── [ 627 Jul  8  2014]  logrotate-3.7.9-r1-patches.tar.gz
│&nbsp;&nbsp; └── [ 44K Jul  8  2014]  logrotate-3.7.9.tar.gz
├── [273K Feb  9  2012]  ltrace_0.5.1.orig.tar.gz
├── [212K Jan 26  2012]  lua-5.1.4.tar.gz
├── [916K Feb  9  2012]  LVM2.2.02.73.tgz
├── [528K Jan 14  2014]  lwip-1.3.0.zip
├── [2.0K Mar 16 14:32]  lzo
│&nbsp;&nbsp; ├── [2.4K Jul  8  2014]  lzo-2.06-r1-patches.tar.gz
│&nbsp;&nbsp; └── [569K Jul  8  2014]  lzo-2.06.tar.gz
├── [9.7K Feb  9  2012]  makedev-2.3.1.tar.gz
├── [2.0K Mar 16 14:32]  mediastreamer2
│&nbsp;&nbsp; └── [537K Jul  8  2014]  mediastreamer2-2.8.8-r0-prepatch.tar.gz
├── [2.7K Jul  8  2011]  memio-1.1.tar.bz2
├── [ 21K Feb  9  2012]  memstat_0.4.tar.gz
├── [120K Feb  9  2012]  module-init-tools-3.1.tar.bz2
├── [102K Mar  7  2013]  mongoose-3.0.tgz
├── [2.0K Mar 16 14:32]  ncurses
│&nbsp;&nbsp; ├── [ 898 Jul  8  2014]  ncurses-5.9-r9.1-patches.tar.gz
│&nbsp;&nbsp; └── [2.7M Jul  8  2014]  ncurses-5.9.tar.gz
├── [2.2M Feb  9  2012]  ncurses-5.5.tar.gz
├── [2.0K Mar 16 14:32]  netbase
│&nbsp;&nbsp; ├── [1.4K Jul  8  2014]  netbase-4.47-r0-patches.tar.gz
│&nbsp;&nbsp; └── [ 35K Jul  8  2014]  netbase_4.47.tar.gz
├── [ 32K Feb  9  2012]  netbase_4.34.tar.gz
├── [131K Feb  9  2012]  netkit-telnet_0.17.tar.gz
├── [ 20K Feb  9  2012]  netkit-tftp_0.10.orig.tar.gz
├── [259K Feb  9  2012]  net-tools_1.60.orig.tar.gz
├── [260K Feb  9  2012]  nfs-utils-1.0.6.tar.gz
├── [3.2M Feb  9  2012]  ntp-4.2.4p7.tar.gz
├── [1.2M Feb  9  2012]  nvi-1.79.tar.gz
├── [2.0K Mar 16 14:32]  ocf-linux-20100325-r3
│&nbsp;&nbsp; └── [596K Jul  8  2014]  ocf-linux-20100325.tar.gz
├── [1.9M Sep 15  2014]  OpenCTM-1.0.3-src.zip
├── [2.0K Mar 16 14:32]  openjdk-7-jre-25b30
│&nbsp;&nbsp; ├── [ 65M Jul  8  2014]  openjdk-7-jre-25b30-2.3.12-r5.1-patches.tar.gz
│&nbsp;&nbsp; └── [4.4M Jul  8  2014]  openjdk-7-jre-25b30-2.3.12-r5.1-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  open-source-kernel-tests-git-r2
│&nbsp;&nbsp; └── [ 21K Jul  8  2014]  open-source-kernel-tests-git-r2-prepatch.tar.gz
├── [1016K Feb  9  2012]  openssh-5.1p1.tar.gz
├── [2.0K Mar 16 14:32]  openssl
│&nbsp;&nbsp; ├── [ 31K Jul  8  2014]  openssl-1.0.0f-r15.0-patches.tar.gz
│&nbsp;&nbsp; └── [3.9M Jul  8  2014]  openssl-1.0.0f.tar.gz
├── [3.6M Jan 26  2012]  openssl-0.9.8j.tar.gz
├── [3.7M Jan 26  2012]  openssl-0.9.8k.tar.gz
├── [3.8M Feb  9  2012]  openssl-1.0.0a.tar.gz
├── [2.0K Mar 16 14:32]  opkg
│&nbsp;&nbsp; ├── [5.0K Jul  8  2014]  opkg-1_0.1.8+svnr633-r7.0-patches.tar.gz
│&nbsp;&nbsp; └── [170K Jul  8  2014]  opkg-1_0.1.8+svnr633-r7.0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  ortp
│&nbsp;&nbsp; └── [176K Jul  8  2014]  ortp-0.20.0-r0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  osip
│&nbsp;&nbsp; └── [355K Jul  8  2014]  osip-3.5.0-r0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  osip4
│&nbsp;&nbsp; └── [359K Jul  8  2014]  osip4-4.0.0-r0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  pango
│&nbsp;&nbsp; ├── [3.5K Jul  8  2014]  pango-1.28.4-r6-patches.tar.gz
│&nbsp;&nbsp; └── [2.0M Jul  8  2014]  pango-1.28.4-r6-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  perl
│&nbsp;&nbsp; ├── [ 49K Jul  8  2014]  perl-5.14.2-r2-patches.tar.gz
│&nbsp;&nbsp; └── [ 15M Jul  8  2014]  perl-5.14.2.tar.gz
├── [2.0K Mar 16 14:32]  pimd-git-r1
│&nbsp;&nbsp; ├── [ 632 Jul  8  2014]  pimd-git-r1-patches.tar.gz
│&nbsp;&nbsp; └── [235K Jul  8  2014]  pimd-git-r1-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  pixman
│&nbsp;&nbsp; └── [457K Jul  8  2014]  pixman-0.24.2.tar.bz2
├── [382K Feb  9  2012]  pmount_0.9.20.orig.tar.gz
├── [2.0K Mar 16 14:32]  popt
│&nbsp;&nbsp; └── [686K Jul  8  2014]  popt-1.16.tar.gz
├── [ 18K Feb  9  2012]  portmap_5beta.tar.gz
├── [2.0K Mar 16 14:32]  powerapp-git-r5
│&nbsp;&nbsp; └── [5.3K Jul  8  2014]  powerapp-git-r5-prepatch.tar.gz
├── [275K Feb  9  2012]  procps-3.2.7.tar.gz
├── [1.8M Jan 14  2014]  protobuf-2.3.0.tar.gz
├── [2.4M Jan 26  2012]  protobuf-2.4.1.zip
├── [565K Jan 14  2014]  ptpd-2.1.0.tar.gz
├── [2.0K Mar 16 14:32]  reboot-daemon
│&nbsp;&nbsp; └── [3.0K Jul  8  2014]  reboot-daemon-1.0-r2-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  recordproto
│&nbsp;&nbsp; └── [110K Jul  8  2014]  recordproto-1.14.1.tar.bz2
├── [2.0K Mar 16 14:32]  renderproto
│&nbsp;&nbsp; └── [103K Jul  8  2014]  renderproto-0.11.1.tar.bz2
├── [  44 Feb 10  2012]  rootfs readme.txt
├── [2.0K Mar 16 14:32]  run-postinsts
│&nbsp;&nbsp; └── [ 536 Jul  8  2014]  run-postinsts-1.0-r7-patches.tar.gz
├── [ 90K Feb  9  2012]  SaWMan-1.4.3+git0.9dd19ef38313.tar.gz
├── [ 51K Feb  9  2012]  setserial_2.17.orig.tar.gz
├── [ 26K Aug 26  2013]  SHA1INDEX.idx
├── [2.0K Mar 16 14:32]  shadow
│&nbsp;&nbsp; ├── [3.1K Jul  8  2014]  shadow-4.1.4.3-r7-patches.tar.gz
│&nbsp;&nbsp; └── [1.7M Jul  8  2014]  shadow-4.1.4.3.tar.bz2
├── [1.6M Feb  9  2012]  shadow-4.1.2.tar.bz2
├── [2.0K Mar 16 14:32]  shadow-sysroot
│&nbsp;&nbsp; └── [4.6K Jul  8  2014]  shadow-sysroot-4.1.4.3-r0-patches.tar.gz
├── [2.0K Mar 16 14:32]  shared-mime-info
│&nbsp;&nbsp; ├── [478K Jul  8  2014]  shared-mime-info-0.91-r3-patches.tar.gz
│&nbsp;&nbsp; └── [1.0M Jul  8  2014]  shared-mime-info-0.91-r3-prepatch.tar.gz
├── [ 32K May 17  2011]  ShrRAM-baseline.tar.bz2
├── [2.0K Mar 16 14:32]  sipgateway
│&nbsp;&nbsp; ├── [2.9K Jul  8  2014]  sipgateway-1.0-r0-patches.tar.gz
│&nbsp;&nbsp; └── [ 49K Jul  8  2014]  sipgateway-1.0-r0-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  speex
│&nbsp;&nbsp; └── [1.0M Jul  8  2014]  speex-1.2rc1.tar.gz
├── [2.0M Feb  9  2012]  sqlite-3.6.0.tar.gz
├── [1.3M Jan 26  2012]  sqlite-amalgamation-3071000.zip
├── [ 61K Mar 24  2011]  stlinux23-sh4-vid_firmware-dev-hv10-36.sh4.rpm
├── [ 62K Sep  2  2011]  stlinux24-host-havana-frontend-source-2.6-4.tar.bz2
├── [180K Sep 13  2011]  stlinux24-host-infrastructure-source-1.7-1.noarch.rpm
├── [258K Mar 24  2011]  stlinux24-host-linux-fusion-source-8.2.0-1.noarch.rpm
├── [1.5M Sep 13  2011]  stlinux24-host-multicom-source-4.0.5+4.0.51.Orly-4.noarch.rpm
├── [1.2M Sep 12  2011]  stlinux24-host-player2-source-int228-1.noarch.rpm
├── [1.4M Sep 13  2011]  stlinux24-host-stmfb-source-4.0_stm24_0216-1.noarch.rpm
├── [7.1M Feb  9  2012]  stlinux24-host-u-boot-source-sh4-1.3.1_stm24_0047-47.src.rpm
├── [112K Mar 24  2011]  stlinux24-sh4-fdma-firmware-20101130-4.noarch.rpm
├── [5.4K Mar 24  2011]  stlinux24-sh4-linux-fusion-headers-8.2.0-2.noarch.rpm
├── [721K Sep 13  2011]  stlinux24-sh4-linux-kernel-headers-2.6.32.16-44.1havana5.noarch.rpm
├── [ 10K Mar 24  2011]  stlinux24-sh4-stmfb-firmware-1.20-1.noarch.rpm
├── [ 20K Sep 13  2011]  stlinux24-sh4-stmfb-headers-4.0_stm24_0216-1.noarch.rpm
├── [ 75K Sep 13  2011]  stlinux24-sh4-vid_firmware-dev-hv11-2.sh4.rpm
├── [4.5M Sep 13  2011]  stlinux24-sh4-vid_firmware-mpeg4p2-hv11-2.sh4.rpm
├── [2.8K Feb 14  2012]  stlinux24-target-directfb-multi-1.4.3+STM2010.10.tar.gz
├── [148M Feb 10  2012]  stlinux24-target-qt-embedded-4.6.0-27.src.rpm
├── [447K Feb  9  2012]  strace-4.5.16.tar.bz2
├── [770K Feb  9  2012]  sysfsutils-2.1.0.tar.gz
├── [ 85K Feb  9  2012]  sysklogd-1.5.tar.gz
├── [2.0K Mar 16 14:32]  syslog-ng
│&nbsp;&nbsp; ├── [2.4K Jul  8  2014]  syslog-ng-3.4.7-r6.1-patches.tar.gz
│&nbsp;&nbsp; └── [3.1M Jul  8  2014]  syslog-ng_3.4.7.tar.gz
├── [205K Feb  9  2012]  sysstat-8.0.0.tar.gz
├── [2.0K Mar 16 14:32]  system-core-git-r6
│&nbsp;&nbsp; └── [915K Jul  8  2014]  system-core-git-r6-prepatch.tar.gz
├── [2.0K Mar 16 14:32]  sysvinit
│&nbsp;&nbsp; ├── [4.3K Jul  8  2014]  sysvinit-2.88dsf-r5-patches.tar.gz
│&nbsp;&nbsp; └── [103K Jul  8  2014]  sysvinit-2.88dsf.tar.bz2
├── [ 96K Feb  9  2012]  sysvinit_2.86.ds1.orig.tar.gz
├── [2.0K Mar 16 14:32]  sysvinit-inittab
│&nbsp;&nbsp; └── [ 643 Jul  8  2014]  sysvinit-inittab-2.88dsf-r8-patches.tar.gz
├── [2.0K Mar 16 14:32]  tcpdump
│&nbsp;&nbsp; ├── [1.7K Jul  8  2014]  tcpdump-4.1.1-r1-patches.tar.gz
│&nbsp;&nbsp; └── [1.5M Jul  8  2014]  tcpdump-4.1.1.tar.gz
├── [ 97K Feb  9  2012]  tcp_wrappers_7.6.tar.gz
├── [262K Feb  9  2012]  termcap-2.0.8.tar.gz
├── [129K Feb  9  2012]  thttpd-2.25b.tar.gz
├── [1.3M Feb  9  2012]  tiff-3.9.1.tar.gz
├── [2.0K Mar 16 14:32]  tinylogin
│&nbsp;&nbsp; ├── [9.4K Jul  8  2014]  tinylogin-1.4-r8-patches.tar.gz
│&nbsp;&nbsp; └── [ 96K Jul  8  2014]  tinylogin-1.4.tar.bz2
├── [114K Sep 17  2014]  tinyxml2-1.0.11.zip
├── [177K Jan 26  2012]  tinyxml_2_4_2.zip
├── [284K Mar  8  2013]  tinyxml_2_6_2.zip
├── [ 11K Jan 26  2012]  tlsf-2.0.zip
├── [7.3K Jan 26  2012]  trex_1_3.tar.gz
├── [ 46K Feb  9  2012]  tslib-1.0.tar.bz2
├── [6.0K May 17  2011]  uCblaze-baseline.tar.bz2
├── [535K Feb  9  2012]  udev-162.tar.bz2
├── [ 43K Feb  9  2012]  udhcp-0.9.8.tar.gz
├── [241K Feb  9  2012]  usbutils-0.86.tar.gz
├── [2.0K Mar 16 14:32]  util-linux
│&nbsp;&nbsp; ├── [4.7K Jul  8  2014]  util-linux-2.20.1-r2-patches.tar.gz
│&nbsp;&nbsp; └── [4.4M Jul  8  2014]  util-linux-2.20.1.tar.bz2
├── [4.6M Feb  9  2012]  util-linux_2.16.1.orig.tar.gz
├── [2.0K Mar 16 14:32]  util-macros
│&nbsp;&nbsp; └── [ 89K Jul  8  2014]  util-macros-1.16.1.tar.gz
├── [172K Feb  9  2012]  vlan.1.9.tar.gz
├── [ 41K Feb  9  2012]  vlms-0.2.3.tar.gz
├── [2.3M Feb  9  2012]  wget-1.12.tar.gz
├── [2.0K Mar 16 14:32]  wireless-tools-1_29-r2
│&nbsp;&nbsp; ├── [1.8K Jul  8  2014]  wireless-tools-1_29-r2-patches.tar.gz
│&nbsp;&nbsp; └── [288K Jul  8  2014]  wireless_tools.29.tar.gz
├── [2.0K Mar 16 14:32]  xcb-proto
│&nbsp;&nbsp; └── [102K Jul  8  2014]  xcb-proto-1.7.tar.bz2
├── [2.0K Mar 16 14:32]  xcmiscproto
│&nbsp;&nbsp; └── [100K Jul  8  2014]  xcmiscproto-1.2.1.tar.bz2
├── [2.0K Mar 16 14:32]  xextproto
│&nbsp;&nbsp; └── [203K Jul  8  2014]  xextproto-7.2.0.tar.bz2
├── [2.0K Mar 16 14:32]  xf86bigfontproto
│&nbsp;&nbsp; └── [ 48K Jul  8  2014]  xf86bigfontproto-1.2.0.tar.bz2
├── [2.0K Mar 16 14:32]  xineramaproto
│&nbsp;&nbsp; └── [ 94K Jul  8  2014]  xineramaproto-1.2.1.tar.bz2
├── [295K Feb  9  2012]  xinetd-2.3.14.tar.gz
├── [2.0K Mar 16 14:32]  xproto
│&nbsp;&nbsp; ├── [ 655 Jul  8  2014]  xproto-1_7.0.22-r1-patches.tar.gz
│&nbsp;&nbsp; └── [275K Jul  8  2014]  xproto-7.0.22.tar.bz2
├── [2.0K Mar 16 14:32]  xtrans
│&nbsp;&nbsp; └── [153K Jul  8  2014]  xtrans-1.2.6.tar.bz2
├── [2.0K Mar 16 14:32]  zip
│&nbsp;&nbsp; └── [1.1M Jul  8  2014]  zip30.tgz
├── [485K Feb  9  2012]  zlib-1.2.3.tar.gz
└── [532K Jan 26  2012]  zlib-1.2.5.tar.gz

122 directories, 317 files

</pre>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=22667&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2016/03/bmw-are-complying-with-the-gpl/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[BMW and the GPL]]></title>
		<link>https://shkspr.mobi/blog/2016/03/bmw-and-the-gpl/</link>
					<comments>https://shkspr.mobi/blog/2016/03/bmw-and-the-gpl/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 11 Mar 2016 12:33:53 +0000</pubDate>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[bmw]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[i3]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=22561</guid>

					<description><![CDATA[I accidentally caused a little brouhaha last week - for which I would like to apologise.  In my blog post about BMW&#039;s unencrypted software updates, I said:  Judging from the files, it would appear that the infotainment system is made by Magneti Marelli with components by Wind River, AutoSAR, and Nvidia Tegra. Looking at the copious mentions of systemd and freedesktop it&#039;s a Linux system!  Hmmm... …]]></description>
										<content:encoded><![CDATA[<p>I accidentally caused a little brouhaha last week - for which I would like to apologise.</p>

<p>In my <a href="https://shkspr.mobi/blog/2016/02/bmw-are-sending-their-software-updates-unencrypted/">blog post about BMW's unencrypted software updates</a>, I said:</p>

<blockquote><p>Judging from the files, it would appear that the infotainment system is made by Magneti Marelli with components by Wind River, AutoSAR, and Nvidia Tegra. Looking at the copious mentions of systemd and freedesktop it's a Linux system!

</p><p><strong>Hmmm... I wonder if they're respecting the GPL...?</strong></p></blockquote>

<p>I want to make it clear that, at the time, I had no evidence to suggest that any Open Source Software was being used in my vehicle.  It was idle speculation on my part.</p>

<p>Anyway, some kind Internet stranger decided to <a href="https://gist.github.com/duncan-bayne/fc3213d4a0eabb70bb1e">fire off an email to BMW Australia demanding access to the source code</a>.  The customer service agents refused.</p>

<blockquote><p>...customer must provide the 7 digit VIN and accept the usage rights agreement. Part of the usage rights agreement states that the software is protected by copyright and BMW is the sole owner.
So in this case it is not subject to the requirements of a "Public" licence
</p><p><cite>BMW Australia</cite>
</p></blockquote>

<p>It would be an exaggeration to say "at which point all hell broke loose" - but there were some <a href="https://news.ycombinator.com/item?id=11217019">sternly worded tweets and comments condemning BMW for their abuse of Free Software</a>.</p>

<p>Here's the thing - contacting customer services like that was <em>entirely the wrong approach</em>.  Customer services aren't trained for the 0.001% of people who might be interested in an esoteric matter of legal licensing.  Crying foul because a minimum wage rep didn't understand an obscure technical reference is counter productive.</p>

<p>A quick search shows a <a href="https://web.archive.org/web/20160327100535/http://www.bmw-carit.com/open-source/">BMW Open Source site</a> which is highly active.  An email to them, or to BMW's head office, or their legal team, would have generated a far more useful reply.</p>

<p>As it happens, someone within BMW contacted me to explain where the Open Source Licences are within the vehicle.  I'll be honest, they are well hidden - and not referenced in the user manual as far as I could see - but they are there.</p>

<p>Here's proof:</p>

<iframe title="BMW i3 Open Source Licences" width="620" height="349" src="https://www.youtube.com/embed/Kal-MjsNcFQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>Now, this is a somewhat of a "<a href="http://hitchhikersguidequotes.tumblr.com/post/14333727462/mr-prosser-but-mr-dent-the-plans-have-been">beware of the leopard</a>" situation, I grant you.  But, somewhere in that mass of text is the email address you need to contact if you want copies of the code.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/03/BMW-GPL-Email-Address-.jpg" alt="BMW GPL Email Address-" width="1024" height="576" class="aligncenter size-full wp-image-22565">

<p>So, I've dropped BMW an email and will update you if/when I hear back.  <a href="https://web.archive.org/web/20190702132205/https://irclogs.thegrebs.com/debian/2015/07/30#10:14">They may not respond</a> - in which case we can heap opprobrium upon them - but let's give them a chance rather than flailing about and calling every scratch a palpable hit, eh?</p>

<p><ins datetime="2016-03-17T09:40:01+00:00">Update!</ins>
I've received a response from BMW.</p>

<blockquote class="social-embed" id="social-embed-709399460162506753" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">As a follow up to last week's blog post.<br>BMW are going to ship me a copy of the source code.<br><a href="https://shkspr.mobi/blog/2016/03/bmw-and-the-gpl/">shkspr.mobi/blog/2016/03/b…</a> <a href="https://twitter.com/edent/status/709399460162506753/photo/1">pic.x.com/kwa0wfcgcr</a><div class="social-embed-media-grid"><a href="https://pbs.twimg.com/media/CdhLDCVW0AA-2yd.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="" src="data:image/webp;base64,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"></a></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/709399460162506753"><span aria-label="4 likes" class="social-embed-meta">❤️ 4</span><span aria-label="3 replies" class="social-embed-meta">💬 3</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2016-03-14T15:23:05.000Z" itemprop="datePublished">15:23 - Mon 14 March 2016</time></a></footer></blockquote>

<p>I've sent them my details and will report back on what they send me.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=22561&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2016/03/bmw-and-the-gpl/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[BMW are sending their software updates unencrypted]]></title>
		<link>https://shkspr.mobi/blog/2016/02/bmw-are-sending-their-software-updates-unencrypted/</link>
					<comments>https://shkspr.mobi/blog/2016/02/bmw-are-sending-their-software-updates-unencrypted/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 25 Feb 2016 08:19:48 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[bmw]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[i3]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=21999</guid>

					<description><![CDATA[The BMW i3 is an amazing electric car - let down by very shoddy software.  That&#039;s a huge problem - software runs our lives and, if it is defective, it can ruin us.  We used to have separate categories of device: washing machines, VCRs, phones, cars, but now we just have computers in different cases. For example, modern cars are computers we put our bodies in and Boeing 747s are flying Solaris…]]></description>
										<content:encoded><![CDATA[<p>The <a href="https://shkspr.mobi/blog/2015/09/i3-electric-car-review/">BMW i3 is an amazing electric car</a> - let down by <a href="https://shkspr.mobi/blog/2015/06/bmw-i3s-web-browser/">very shoddy software</a>.  That's a <em>huge</em> problem - software runs our lives and, if it is defective, it can ruin us.</p>

<blockquote><p>We used to have separate categories of device: washing machines, VCRs, phones, cars, but now we just have computers in different cases. For example, <strong>modern cars are computers we put our bodies in</strong> and Boeing 747s are flying Solaris boxes, whereas hearing aids and pacemakers are computers we put in our body.

</p><p><cite><a href="http://boingboing.net/2012/08/23/civilwar.html">The Coming Civil War over General Purpose Computing - Cory Doctorow</a></cite> Emphasis added.
</p></blockquote>

<p>The i3 has numerous software defects.  Despite having a capable 3G modem, all major software updates <em>have</em> to be performed by an authorised dealer.  That means booking your car in and waiting for a day or two for the update to take place.</p>

<p>So, that's the <em>major</em> software updates, what about the minor ones?  It turns out that the entertainment system can be updated by anyone with a USB stick and access to your vehicle.</p>

<blockquote><p>The BMW Group allows part of the vehicle software to be updated, to enable compatibility of the latest tested Bluetooth or USB devices in the vehicle. This offer is available for selected vehicles manufactured after March 2010.

</p><p>You can perform this software update yourself. To do so, all you need is a standard USB memory stick with sufficient memory capacity.

</p><p><cite><a href="https://web.archive.org/web/20160226122251/http://www.bmw.com/com/en/owners/connected_drive_services/mobile_devices/bluetooth_software_update.html">BMW Connected Drive - Software Updates</a></cite>
</p></blockquote>

<p>The website doesn't use SSL.  I mean, <em>everything</em> is unencrypted <strong>including the software download!</strong></p>

<p>The user enters their Vehicle Identification number, it is sent across to an unencrypted API.</p>

<pre><code class="language-_">http://www.bmw.com/_common/shared/owners/bluetooth/jsp/serviceV2.jsp
   ?op=getVINData
   &amp;requestType=bluetooth
   &amp;language=en
   &amp;vin=1234567
   &amp;domain=kisu-check
</code></pre>

<p>The user is asked to agree to a "usage right agreement" - but it's not necessary; the software is available to anyone without requiring authentication.</p>

<p>For example, the i3's software is available at</p>

<ul><li><a href="https://web.archive.org/web/20160310052859/https://www.bmw.com/_common/shared/owners/bluetooth/bin/UPD07012.bin">http://www.bmw.com/_common/shared/owners/bluetooth/bin/UPD07012.bin</a></li></ul>

<p>No need to guess a VIN or agree to any terms.  Just click and download.</p>

<p>A look through the <a href="http://x3.xbimmers.com/forums/showthread.php?t=1128882">various BMW forums</a> shows that software updates for different cars all <a href="https://web.archive.org/web/20250000000000*/http://www.bmw.com/_common/shared/owners/bluetooth/bin/UPD05062.bin">follow</a> a <a href="https://web.archive.org/web/20250000000000*/http://www.bmw.com/_common/shared/owners/bluetooth/bin/UPD05021.bin">similar</a> <a href="https://web.archive.org/web/20250000000000*/http://www.bmw.com/_common/shared/owners/bluetooth/bin/UPD05073.bin">pattern</a>.</p>

<h2 id="why-is-this-a-bad-thing"><a href="https://shkspr.mobi/blog/2016/02/bmw-are-sending-their-software-updates-unencrypted/#why-is-this-a-bad-thing">Why Is This A Bad Thing™?</a></h2>

<p>Because the software download goes via http rather than http<strong>s</strong>, it is theoretically possible for an attacker to modify the file before it gets to you.</p>

<p>One would hope that the firmware is cryptographically signed so that it cannot be maliciously modified - but <a href="http://www.bbc.co.uk/news/technology-31093065">given BMW's fairly poor record on securing their cars</a> (<a href="http://www.heise.de/newsticker/meldung/BMW-ConnectedDrive-gehackt-2533601.html">original in German</a>), it's not guaranteed.</p>

<p>OK, what's the <em>worst</em> that could happen with a phony software update for a glorified car radio?</p>

<p>My friend <a href="https://web.archive.org/web/20160304041241/https://blog.lookout.com/blog/2015/08/07/hacking-a-tesla/">Marc Rogers successfully hacked the Tesla Model S</a> in part using the car's infotainment system.  It turns out that entertainment systems often talk to the rest of the car via a <a href="https://en.wikipedia.org/wiki/CAN_bus">CAN bus</a>.  If the car isn't fully secured, it is theoretically possible that a rogue internal component would be able to endanger the car and its passengers.</p>

<p>There's a secondary issue - car manufacturers are training people to stick untrusted USB sticks into their cars.</p>

<p>When FIAT had to update the software on 1.4 million cars, they <a href="https://web.archive.org/web/20160505083842/https://www.cars.com/articles/chrysler-recalls-14-million-cars-over-hacking-1420680918042/">opted to send USB sticks in the post to affected drivers</a>.</p>

<blockquote class="social-embed" id="social-embed-640091400705601536" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">Oh, a *secure* USB.<br>There's no way that could be malicious… <br><a href="https://twitter.com/hashtag/antipattern">#antipattern</a> <a href="https://twitter.com/edent/status/640091400705601536/photo/1">pic.x.com/kqhtw51zq6</a><div class="social-embed-media-grid"><a href="https://pbs.twimg.com/media/COIPvCSU8AAyNPK.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="" src="data:image/webp;base64,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"></a></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/640091400705601536"><span aria-label="10 likes" class="social-embed-meta">❤️ 10</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-09-05T09:17:36.000Z" itemprop="datePublished">09:17 - Sat 05 September 2015</time></a></footer></blockquote>

<p>If you receive a USB stick in the post, how can you be sure that it doesn't contain malicious software?</p>

<p>Hopefully, the car should reject any unauthorised tampering - but we all know that security measures can be bypassed by sufficiently motivated adversaries.</p>

<h2 id="decoding-the-firmware"><a href="https://shkspr.mobi/blog/2016/02/bmw-are-sending-their-software-updates-unencrypted/#decoding-the-firmware">Decoding The Firmware</a></h2>

<p>Alas, dear reader, here is where I must confess my ignorance.  Decompiling firmware is <em>way</em> outside my area of expertise.  If anyone with greater skills can investigate further, I'd be grateful.</p>

<p>Firstly, a quick run of <code>binwalk</code> gives us:</p>

<pre>POSIX tar archive (GNU), owner user name: "01E40_110_005_010.xml"</pre>

<p>Renaming the .bin to .tar allows us to extract the 7 firmware files and an XML file.</p>

<p>Within the XML, we find:
<code>&lt;SWIP digalg="sha256" signalg="sha256withRSA" version="0.3.6" ...</code>
Which would indicate that the software is self-signed and <em>probably</em> secure against forgery.</p>

<p>Each of the firmware files contains a file called "bungstabelle.sgbm" which appears to be another cryptographic signature.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/11/BMW-Firmware-fs8.png" alt="BMW Firmware-fs8" width="439" height="874" class="aligncenter size-full wp-image-22002"></p>

<p>Judging from the files, it would appear that the infotainment system is made by <a href="http://www.magnetimarelli.com">Magneti Marelli</a> with components by <a href="http://windriver.com/">Wind River</a>, <a href="http://www.autosar.org/">AutoSAR</a>, and Nvidia Tegra.  Looking at the copious mentions of <code>systemd</code> and <code>freedesktop</code> it's a Linux system!</p>

<p></p><div style="width: 620px;" class="wp-video"><video class="wp-video-shortcode" id="video-21999-2" width="620" height="349" preload="metadata" controls="controls"><source type="video/mp4" src="https://shkspr.mobi/blog/wp-content/uploads/2015/11/Its-a-Unix-system-short-SpLRTAGa6bU.mp4?_=2"><source type="video/webm" src="https://shkspr.mobi/blog/wp-content/uploads/2015/11/Its-a-Unix-system-short-SpLRTAGa6bU.webm?_=2"><a href="https://shkspr.mobi/blog/wp-content/uploads/2015/11/Its-a-Unix-system-short-SpLRTAGa6bU.mp4">https://shkspr.mobi/blog/wp-content/uploads/2015/11/Its-a-Unix-system-short-SpLRTAGa6bU.mp4</a></video></div><p></p>

<p>Hmmm... I wonder if they're respecting the GPL...?</p>

<p>The firmware isn't encrypted - so anyone can read the code and comments - but it does appear to be signed which makes it unlikely that a user could accidentally install corrupted software.</p>

<p>The <a href="https://www.iamthecavalry.org/domains/automotive/5star/">Five Star Automotive Cyber Safety Program</a> suggests to manufacturers that:</p>

<blockquote><p>While updating is a necessary capability, an insecure update design could facilitate adversaries or trigger accidents. Authenticity and quality verification preserves the integrity of the updates and leads to a safer mechanism that can prevent digital tampering or unexpected failures.</p></blockquote>

<p>From my limited understanding of the way the firmware is designed, it should be robust enough to prevent malicious users from infecting it with anything nasty.</p>

<p>However, given <a href="http://www.pcworld.com/article/2878437/bmw-cars-found-vulnerable-in-connected-drive-hack.html">BMW's troubled history with HTTPS</a>, I think it would be sensible for them to ensure <strong>all</strong> their software was delivered securely.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=21999&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2016/02/bmw-are-sending-their-software-updates-unencrypted/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2015/11/Its-a-Unix-system-short-SpLRTAGa6bU.webm" length="25911" type="video/webm" />
<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2015/11/Its-a-Unix-system-short-SpLRTAGa6bU.mp4" length="464651" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[Reverse Engineering the BMW i3 API]]></title>
		<link>https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/</link>
					<comments>https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 27 Nov 2015 12:03:32 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[bmw]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=22012</guid>

					<description><![CDATA[I&#039;m really enjoying driving the BMW i3.  I&#039;d love to have it tweet its driving efficiency, or upload its location to  my server, or let me turn on its air-conditioning when the temperature gets too warm - there are a hundred interesting things to do with the car&#039;s data.  The official app has some of these features - but is slow, ugly, and a pain to use.  BMW used to have an API available for…]]></description>
										<content:encoded><![CDATA[<p>I'm really enjoying driving the <a href="https://shkspr.mobi/blog/2015/09/i3-electric-car-review/">BMW i3</a>.</p>

<p>I'd love to have it tweet its driving efficiency, or upload its location to  my server, or let me turn on its air-conditioning when the temperature gets too warm - there are a hundred interesting things to do with the car's data.  The official app has <em>some</em> of these features - but is slow, ugly, and a pain to use.</p>

<p>BMW <em>used</em> to have <a href="https://web.archive.org/web/20151202101918/http://data.hackthedrive.com/learn">an API available for hackathons</a>, but they shut it down.</p>

<blockquote class="social-embed" id="social-embed-646690557042012160" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><blockquote class="social-embed" id="social-embed-645972183991328768" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/BMW">Replying to @BMW</a></small><a href="https://twitter.com/BMW">@BMW</a> I've just got an i3! Is the Developer API open yet? <a href="http://data.hackthedrive.com/learn">data.hackthedrive.com/learn</a> looks closed :-(</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/645972183991328768"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-09-21T14:45:44.000Z" itemprop="datePublished">14:45 - Mon 21 September 2015</time></a></footer></blockquote><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/BMW" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRogCAABXRUJQVlA4IHwCAADwDACdASowADAAPrVQnEmnJSKhLjgMyOAWiWQAyx+xeQcc9ksqd+avYDLq4MaSPGh/Xftu+P3Pb9FkHu6T5BS0oMTiqUKOq00OLFPd3hUnv/+cf5MdqkeO2t1/nuqXwSJ2z+8MUknvTapK7eCh/V84AP76EeJuOJ5qBjyJpVuMhjlA7lSPto5vAzH/PyRC2qxpUAaSLknA7TU9Rbbs1GADRcnNcHqDG3///RB6OwNyRr8BfnvKQzp6R3A/x8mpwk5MjKNFIU5X+nFM+mx9abm36Ofd6s0z9Lr1oqFzfn4AG3Nr8dBP8tTsLYDsOUKHfGKdqwxt03l3WAhZclWgnI9CGc+7ngJZzkAJRomPebCAab0oHJBsKNGBlL4J8/tzBzwtsrBwIVkaqEnpSSZJjMRfBQ9p0NukrO4M+brHZB0up0Ib38+RqbhgAvR7slZDaqX8UIBd4YzYLWF3VA+4t5HYp+kNBat/AlxlUTPUiQOXQrHE8Za0xwER8S4sGN+mdzwsb+OX/pklUHe41+fmrmH/sAaCCSRiWYef+Qeb9QtpZjpFcpcLDl3lAnSX//1Wun4Eddz1/TizyGP7/xBoI0XicTT2kBdl5sCyX1owAFJoBytVR291RdwBpUVu37ZXJAi27uDsQpSA1vue7aDHYt7lEUn/Z1INFAjz/6ITFgD4RDdg2PDR30cgWCLdJctoccv4J9j1HpNVKecmLV7dItpblHfpgDtAjldrtf8Vile6WSEHAqCDfQmTp7UYCmE9Bgb34lLp6/yBrzP6OBMcCb2b8/YgrS+OlPbucy/yWmX+NAYYTujVA04cGbXgqdwVkZdb1kkpOQTJXlGYAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">BMW</p>@BMW</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/645972183991328768">Replying to @edent</a></small><a href="https://twitter.com/edent">@edent</a> Access to the API is not possible. The API was accessible during <a href="https://twitter.com/hashtag/HacktheDrive">#HacktheDrive</a> Hackathon, but not anymore. <a href="http://data.hackthedrive.com">data.hackthedrive.com</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/BMW/status/646690557042012160"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-09-23T14:20:18.000Z" itemprop="datePublished">14:20 - Wed 23 September 2015</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-646953324974112768" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><blockquote class="social-embed" id="social-embed-646580838239477760" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/BMW_UK">Replying to @BMW_UK</a></small><a href="https://twitter.com/BMW_UK">@BMW_UK</a> good morning! I've just got an i3. I would love to develop apps for it.  Is there an API for ConnectedDrive?</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/646580838239477760"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-09-23T07:04:19.000Z" itemprop="datePublished">07:04 - Wed 23 September 2015</time></a></footer></blockquote><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/BMW_UK" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRpoCAABXRUJQVlA4II4CAADQDACdASowADAAPrVOnUqnJKKhrjgLMOAWiWQAzXaS8QHACqMKTBr1rcZa2lxwZvtV+SHPR9LEHu6T5BS0oMTils76gVtsZpqrClrfhHr38Yx64vK52to20kUk7Z+cV+OXX77OGNb730mghdCYvPwA/voVboVnzHuBN6qTv1dl0zDDye8DzVT+OCG+fkjilY9XF5oHzOvXtJUrfGaNrNvIr5hKOuQDGoFtfynRm8LX37BhZTgBNPzwNvZ29Bnj+PvN44p9BqHxCAoQ4q+MVSCM7nOxvTA19sE0W3v72JBLQ6f66rT3V9sYD3+cX60d6ab1OcZPxIP1XXt0XxsBG7e5KKNx4vnvCSIBRw8H0FE1CtOAEFVZBIKAphXZyuIise/GVfJfP5BBnNr7EN28lB/tq7nbW0l/FjFL2aVnQU707ltaxZXl1+TiqcIOHi20/VobMvQfDrB5o0L7wyHfDbOdcfAqj/NcIKx8q4Mk15fW4J7bxUeoLTKDqHh9npwQxZuFBbdbqsYMY+3D/aBtgN5M3PewZ6f9LiElOhIJo3JjLfVpgAzlhV0Ocrg5u6le426///tBIwHy8+q6squJD2ms7BxLFCPjiop9Fqlb1h06rMkGccSHVfnwzAOXpDxQHqfjfSkSveGnoBQnrLVrAKSfFTGYPK1q1F/8FR5HXRnJav7yHQDau2GYD2+M10HeusepGRP7OciAX2WFWZF/+zeFAqC6uI3jzAXcbslUTSPDUPpEU8zXrRYvNlYiw0M2XZvWjGXK7H8ukhggIq1/Fd85hu3HnnpFYACJPTQ2gGuVi3GfOEBgxuF8IFNBEXl1LeUSLw1iRe4QV9PljGcrks+Q10zrAffdkvA4cuRgAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">BMW UK</p>@BMW_UK</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/646580838239477760">Replying to @edent</a></small><a href="https://twitter.com/edent">@edent</a> Hi Terence, due to a number of factors we can't open our API's up to develop for our i3 platform at present..</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/BMW_UK/status/646953324974112768"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-09-24T07:44:27.000Z" itemprop="datePublished">07:44 - Thu 24 September 2015</time></a></footer></blockquote>

<p>Right! Only one thing to do - HACK THE MAINFRAME*!
</p><div style="width: 620px;" class="wp-video"><video class="wp-video-shortcode" id="video-22012-4" width="620" height="349" preload="metadata" controls="controls"><source type="video/mp4" src="https://shkspr.mobi/blog/wp-content/uploads/2015/11/sp.mp4?_=4"><source type="video/webm" src="https://shkspr.mobi/blog/wp-content/uploads/2015/11/sp.webm?_=4"><a href="https://shkspr.mobi/blog/wp-content/uploads/2015/11/sp.mp4">https://shkspr.mobi/blog/wp-content/uploads/2015/11/sp.mp4</a></video></div>
*<small>No mainframes were harmed in the writing of this blog post</small><p></p>

<h2 id="aim"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#aim">Aim</a></h2>

<p>The ultimate aim is to get access to all the car's functions which are exposed by the API - so I can do something like this:</p>

<blockquote class="social-embed" id="social-embed-669834607169286145" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent_car" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRrgCAABXRUJQVlA4IKwCAADwDACdASowADAAPrVOo0unJCMhqqlY4BaJQBOmazHjvwiwOlnyCftjT7Z7uJNNVizSvLbjImWfG8ftgfUmHd/YjfNVzIkxcELEZQiMseSLWR/BkwGde7mgsuMi/YTlxJlE9tEkjhH4DNTG68ie3FmAAP793d++Rvr+1o8KlWNdKONqmRNKSVu8gEHlPmWGXjfWcGTX5wHhnRzOb3A+VlIYe09SMA90sZsMCxv+37MgBfi5N46+fnyMluZBOtNyjITuirAo4Dvr/nDLrsRNqRSzX+HhzVFS4tNFfFM1QPPtXbYZtFy+2+qLajMolvR2w4Gpuw3m0pUUDqKaFiAoxiynHEgYdITVusjSsDl//zbiKlyCaCF6Q5P0H1YCz8NV4v70Uszd5Sk4/89UHrnUKzVmytDyRNIkquBKLId1evI7osvvJA5T48CC4TTO6BbrwUM2+KFAVEfQLKOPEm0kQzce9Z1gAm2XOuvCGVpRR0JocCuLFDHW1w1S3sRaVBAgdV8ovB1LuTEUNwGeVvjPZtmhcpCQuTYP6qP6u0hvABP7x/VjP9OqO30wtA+nP3JOI2atzA3lFo5ZO57/JC/mPxuJPVS90MzFqZGjVb/ssZ4jn6cncbUi/xNeQVz2QkvW2R7sDlPjgerLt0nfWbpAukF4HTrcmrJN/h1CDtyQeFfJ80j5EhLWH16QHkYwPuIcpLbtKU63bQs2XhUYPgQf7nWQze8nHtp12lC8Z+HztlVN/EwOpalsw24elXx/9P8YG3vHFXLNvwP4ujygoqrveGhqWPUaFQDbn9NtFEsz1E1pWnH27lhsMXxrmaWl0mgXWEvaAMbtwr9Vp1A61jg1y9RsUF0w5MBjrSmbSr9sOkecBzYo8oCf3b4Hw+6TAmYgGi4SerDUT8kovbwAAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">edent's Car</p>@edent_car</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">🚗 4 miles in 13 minutes<br>Efficiency: 5.36 miles/kWh<br>🔋 53% (37 miles)<br>🔌 Unplugged<br>⚠ Shutdown Secured<br>2,160 miles total</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent_car/status/669834607169286145"><span aria-label="5 likes" class="social-embed-meta">❤️ 5</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-11-26T11:06:29.000Z" itemprop="datePublished">11:06 - Thu 26 November 2015</time></a></footer></blockquote>

<h2 id="equipment"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#equipment">Equipment</a></h2>

<p>For this relatively simple bit of work you will need...</p>

<ul>
    <li>A BMW i3.</li>
    <li>An account with <a href="https://www.bmw-connecteddrive.co.uk/cdp/release/internet/servlet/login?locale=en_GB">BMW's ConnectedDrive</a>.</li>
    <li>The <a href="https://apkpure.com/bmw-i-remote/com.bmwi.remote">BMW i Remote App for Android</a>. (I'm using the non-US version.)</li>
    <li>An<a href="http://www.amazon.co.uk/s/ref=as_li_ss_tl?_encoding=UTF8&amp;camp=1634&amp;creative=19450&amp;field-keywords=android%20phone&amp;linkCode=ur2&amp;tag=shkspr-21&amp;url=search-alias%3Daps"> Android phone or tablet</a>.</li>
    <li>A way to intercept encrypted communications leaving your device - I recommend <a href="https://www.apkmirror.com/apk/grey-shirts/packet-capture/">Packet Capture by Grey Shirts</a>.</li>
</ul>

<p>With Packet Capture installed, close all other apps, start the logging, then log in to the i Remote app. Click around on a few functions, then flip back to the Packet Capture app.</p>

<p>You'll see a bunch of API calls which have been captured.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/11/BMW-API-fs8.png" alt="BMW API-fs8" width="480" height="329" class="aligncenter size-full wp-image-22015"></p>

<p>Click on one and you'll see the full API call, plus the JSON response. I've stripped out some of my personal details.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/11/BMW-API-Details-fs8.png" alt="BMW API Details-fs8" width="1024" height="1377" class="aligncenter size-full wp-image-22016"></p>

<p>The most important thing you'll need is the <code>Authorization: Bearer</code> token.  This is a 32 character alphanumeric string.</p>

<h2 id="description"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#description">Description</a></h2>

<p><a href="https://github.com/edent/BMW-i-Remote/">The latest version can always be found on GitHub</a>.</p>

<p>These API calls are designed to allow you to interact with your BMW i3.  They were reverse engineered from <a href="https://apkpure.com/bmw-i-remote/com.bmwi.remote">the official BMW i Remote Android app</a>.</p>

<p>Your use of these API calls is entirely at your own risk.  They are neither officially provided nor sanctioned.</p>

<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>

<h2 id="servers"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#servers">Servers</a></h2>

<p>There are three API servers.</p>

<ul>
<li><code>https://b2vapi.bmwgroup.cn:8592</code> China</li>
<li><code>https://b2vapi.bmwgroup.us</code> USA</li>
<li><code>https://b2vapi.bmwgroup.com</code> Europe / Rest of World</li>
</ul>

<h2 id="authorisation"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#authorisation">Authorisation</a></h2>

<p>In order to authenticate against the API you will need to be registered on <a href="https://www.bmw-connecteddrive.co.uk/cdp/release/internet/servlet/login?locale=en_GB">BMW's Connected Drive service</a>.</p>

<p>You will need:</p>

<ol>
<li>Your ConnectedDrive registered email address.</li>
<li>Your ConnectedDrive registered password.</li>
<li>The i Remote API Key.</li>
<li>The i Remote API Secret.</li>
</ol>

<p>You can get the i Remote details from either decompiling the Android App or from intercepting communications between your phone and the BMW server.  This is left as an exercise for the reader ☺</p>

<p>Firstly, we use <a href="https://en.wikipedia.org/wiki/Basic_access_authentication">Basic authentication</a>.  That means taking the API Key and Secret and Base64 encoding them.</p>

<p>So <code>key:secret</code> becomes <code>a2V5OnNlY3JldA==</code></p>

<p>We also need to send the following parameters as </p>

<ul>
<li><code>Content-Type: application/x-www-form-urlencoded</code></li>
</ul>

<pre lang="json"> grant_type=password
&amp;username=whatever%40example.com
&amp;password=p4ssw0rd
&amp;scope=remote_services+vehicle_data
</pre>

<p>Here's how to do it with <code>curl</code>:</p>

<pre><code class="language-bash">curl \
   -H "Authorization: Basic a2V5OnNlY3JldA==" \
   -H "Content-Type: application/x-www-form-urlencoded" \
   -d "grant_type=password&amp;username=whatever%40example.com&amp;password=p4ssw0rd&amp;scope=remote_services+vehicle_data" \
   "https://b2vapi.bmwgroup.com/webapi/oauth/token/"
</code></pre>

<p>If everything has worked, you should get back the following JSON:</p>

<pre><code class="language-json">{
  "access_token": "RCQ1hLP4AFaUBW9BjcPUN3i4WgkwF90R",
  "token_type": "Bearer",
  "expires_in": 28800,
  "refresh_token": "7WgKmEJ2kD1ydl9Hefp01eS8qDGzKnzjeORpA6vtsoFIEanz",
  "scope": "vehicle_data remote_services"
}
</code></pre>

<p>You <strong>must</strong> include </p>

<ul>
<li><code>Authorization: Bearer RCQ1hLP4AFaUBW9BjcPUN3i4WgkwF90R</code> </li>
</ul>

<p>in your headers with <em>every</em> request.</p>

<p>The <code>expires_in</code> is in seconds - giving you 8 hours before you have to renew the token.</p>

<p>I've no idea what the <code>refresh_token</code> is for. Once the <code>access_token</code> expires, you can simply re-authenticate and gain a new one.</p>

<h2 id="api"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#api">API</a></h2>

<p>You <strong>must</strong> include </p>

<ul>
<li><code>Authorization: Bearer RCQ1hLP4AFaUBW9BjcPUN3i4WgkwF90R</code></li>
</ul>

<p>in your headers with <em>every</em> request.</p>

<h3 id="get-vehicle-data"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#get-vehicle-data">Get Vehicle Data</a></h3>

<ul>
<li><code>/webapi/v1/user/vehicles/</code><ul>
<li>Remember to include the <code>Authorization: Bearer</code> header.</li>
</ul>
</li>
</ul>

<p>The most important thing here is the VIN - Vehicle Identification Number.  You'll need that for all the other API calls <strong>as well as the</strong> Authorization Bearer.</p>

<h4 id="response"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#response">Response</a></h4>

<pre><code class="language-json">{
    "vehicleStatus": {
        "vin": "WAB1C23456V123456",
        "mileage": 1234,
        "updateReason": "VEHICLE_SHUTDOWN_SECURED",
        "updateTime": "2015-10-30T18:45:04+0100",
        "doorDriverFront": "CLOSED",
        "doorDriverRear": "CLOSED",
        "doorPassengerFront": "CLOSED",
        "doorPassengerRear": "CLOSED",
        "windowDriverFront": "CLOSED",
        "windowDriverRear": "CLOSED",
        "windowPassengerFront": "CLOSED",
        "windowPassengerRear": "CLOSED",
        "trunk": "CLOSED",
        "rearWindow": "INVALID",
        "convertibleRoofState": "INVALID",
        "hood": "CLOSED",
        "doorLockState": "SECURED",
        "parkingLight": "OFF",
        "positionLight": "OFF",
        "remainingFuel": 8.9,
        "remainingRangeElectric": 73,
        "remainingRangeElectricMls": 45,
        "remainingRangeFuel": 126,
        "remainingRangeFuelMls": 78,
        "maxRangeElectric": 134,
        "maxRangeElectricMls": 83,
        "fuelPercent": 99,
        "maxFuel": 9,
        "connectionStatus": "DISCONNECTED",
        "chargingStatus": "INVALID",
        "chargingLevelHv": 58,
        "lastChargingEndReason": "UNKNOWN",
        "lastChargingEndResult": "FAILED",
        "position": {
            "lat": 51.123456,
            "lon": -1.2345678,
            "heading": 211,
            "status": "OK"
        },
        "internalDataTimeUTC": "2015-10-30T18:47:44"
    }
}
</code></pre>

<h4 id="values"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#values">Values</a></h4>

<ul>
<li><code>mileage</code> is in <strong>Km</strong>.</li>
<li><code>remainingFuel</code> is in Litres.</li>
<li><code>maxRangeElectric</code> is in Km.</li>
<li><code>maxRangeElectricMls</code> is in miles.</li>
<li><code>chargingLevelHv</code> is the percentage of charge left in the (<strong>H</strong>igh <strong>v</strong>oltage?) battery.</li>
<li><code>maxFuel</code> is in Litres.</li>
<li><code>heading</code> is in degrees.</li>
</ul>

<p>Valid <code>chargingStatus</code>es appear to be:</p>

<ul>
<li><code>CHARGING</code> </li>
<li><code>ERROR</code> </li>
<li><code>FINISHED_FULLY_CHARGED</code> </li>
<li><code>FINISHED_NOT_FULL</code> </li>
<li><code>INVALID</code> </li>
<li><code>NOT_CHARGING</code> </li>
<li><code>WAITING_FOR_CHARGING</code> </li>
</ul>

<p>Valid <code>connectionStatus</code>es appear to be:</p>

<ul>
<li><code>CHARGING_DONE</code></li>
<li><code>CHARGING_INTERRUPED</code> [sic]</li>
<li><code>CHARGING_PAUSED</code></li>
<li><code>CHARGIN_STARTED</code> [sic]</li>
<li><code>CYCLIC_RECHARGING</code></li>
<li><code>DOOR_STATE_CHANGED</code></li>
<li><code>NO_CYCLIC_RECHARGING</code></li>
<li><code>NO_LSC_TRIGGER</code></li>
<li><code>ON_DEMAND</code></li>
<li><code>PREDICTION_UPDATE</code></li>
<li><code>TEMPORARY_POWER_SUPPLY_FAILURE</code></li>
<li><code>UNKNOWN</code></li>
<li><code>VEHICLE_MOVING</code></li>
<li><code>VEHICLE_SECURED</code></li>
<li><code>VEHICLE_SHUTDOWN</code></li>
<li><code>VEHICLE_SHUTDOWN_SECURED</code></li>
<li><code>VEHICLE_UNSECURED</code></li>
</ul>

<h3 id="get-last-trip"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#get-last-trip">Get Last Trip</a></h3>

<p>Shows the details about your most recent trip.</p>

<ul>
<li><code>/webapi/v1/user/vehicles/:VIN/statistics/lastTrip</code><ul>
<li>Where <code>:VIN</code> is your vehicle's VIN.</li>
<li>Remember to include the <code>Authorization: Bearer</code> header.</li>
</ul>
</li>
</ul>

<h4 id="response"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#response">Response</a></h4>

<pre><code class="language-json">{
   "lastTrip":{
      "efficiencyValue":0.53,
      "totalDistance":141,
      "electricDistance":100.1,
      "avgElectricConsumption":16.6,
      "avgRecuperation":2,
      "drivingModeValue":0,
      "accelerationValue":0.39,
      "anticipationValue":0.81,
      "totalConsumptionValue":0.79,
      "auxiliaryConsumptionValue":0.66,
      "avgCombinedConsumption":1.9,
      "electricDistanceRatio":71,
      "savedFuel":0,
      "date":"2015-12-01T20:44:00+0100",
      "duration":124
   }
}
</code></pre>

<h4 id="values"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#values">Values</a></h4>

<p>Distances appear to be in Kilometres rather than miles, so be sure to adjust accordingly. Multiply by <code>0.621371</code> to get miles.</p>

<ul>
<li><code>totalDistance</code> is in Km.</li>
<li><code>electricDistance</code> is in Km.</li>
<li><code>avgElectricConsumption</code> is in kWh/100Km.</li>
<li><code>avgRecuperation</code> is in kWh/100Km.</li>
<li><code>duration</code> is in minutes.</li>
</ul>

<p>To convert kWh/100Km to Miles/kWh.</p>

<p><code>1 / (0.01609344 * avgElectricConsumption)</code></p>

<h3 id="get-charging-times"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#get-charging-times">Get Charging Times</a></h3>

<p>Shows when the car is scheduled to charge.</p>

<ul>
<li><code>/webapi/v1/user/vehicles/:VIN/chargingprofile</code><ul>
<li>Where <code>:VIN</code> is your vehicle's VIN.</li>
<li>Remember to include the <code>Authorization: Bearer</code> header.</li>
</ul>
</li>
</ul>

<h4 id="response"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#response">Response</a></h4>

<pre><code class="language-json">{
   "weeklyPlanner":{
      "climatizationEnabled":true,
      "chargingMode":"DELAYED_CHARGING",
      "chargingPreferences":"CHARGING_WINDOW",
      "timer1":{
         "departureTime":"07:30",
         "timerEnabled":true,
         "weekdays":[
            "MONDAY"
         ]
      },
      "timer2":{
         "departureTime":"13:00",
         "timerEnabled":false,
         "weekdays":[
            "SATURDAY"
         ]
      },
      "timer3":{
         "departureTime":"08:00",
         "timerEnabled":false,
         "weekdays":[

         ]
      },
      "overrideTimer":{
         "departureTime":"07:30",
         "timerEnabled":false,
         "weekdays":[
            "MONDAY"
         ]
      },
      "preferredChargingWindow":{
         "enabled":true,
         "startTime":"05:02",
         "endTime":"17:31"
      }
   }
}
</code></pre>

<h4 id="values"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#values">Values</a></h4>

<ul>
<li><code>departureTime</code> appears to be the car's local time.</li>
</ul>

<h3 id="get-vehicle-destinations"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#get-vehicle-destinations">Get Vehicle Destinations</a></h3>

<p>Shows the destinations you've previously sent to the car.</p>

<ul>
<li><code>/webapi/v1/user/vehicles/:VIN/destinations</code><ul>
<li>Where <code>:VIN</code> is your vehicle's VIN.</li>
<li>Remember to include the <code>Authorization: Bearer</code> header.</li>
</ul>
</li>
</ul>

<h4 id="response"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#response">Response</a></h4>

<pre><code class="language-json">{
   "destinations":[
      {
         "lat":51.53053283691406,
         "lon":-0.08362331241369247,
         "country":"UNITED KINGDOM",
         "city":"LONDON",
         "street":"PITFIELD STREET",
         "type":"DESTINATION",
         "createdAt":"2015-09-25T08:06:11+0200"
      }
   ]
}
</code></pre>

<h4 id="values"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#values">Values</a></h4>

<ul>
<li>An array of locations.</li>
</ul>

<h3 id="get-all-trip-details"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#get-all-trip-details">Get All Trip Details</a></h3>

<p>Shows the statistics for all trips taken in the vehicle.</p>

<ul>
<li><code>/webapi/v1/user/vehicles/:VIN/statistics/allTrips</code><ul>
<li>Where <code>:VIN</code> is your vehicle's VIN.</li>
<li>Remember to include the <code>Authorization: Bearer</code> header.</li>
</ul>
</li>
</ul>

<h4 id="response"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#response">Response</a></h4>

<pre><code class="language-json">{
    "allTrips": {
        "avgElectricConsumption": {
            "communityLow": 0,
            "communityAverage": 16.33,
            "communityHigh": 35.53,
            "userAverage": 14.76
        },
        "avgRecuperation": {
            "communityLow": 0,
            "communityAverage": 3.76,
            "communityHigh": 14.03,
            "userAverage": 2.3
        },
        "chargecycleRange": {
            "communityAverage": 121.58,
            "communityHigh": 200,
            "userAverage": 72.62,
            "userHigh": 135,
            "userCurrentChargeCycle": 60
        },
        "totalElectricDistance": {
            "communityLow": 1,
            "communityAverage": 12293.65,
            "communityHigh": 77533.6,
            "userTotal": 3158.66
        },
        "avgCombinedConsumption": {
            "communityLow": 0,
            "communityAverage": 1.21,
            "communityHigh": 6.2,
            "userAverage": 0.36
        },
        "savedCO2": 87.58,
        "savedCO2greenEnergy": 515.177,
        "totalSavedFuel": 0,
        "resetDate": "1970-01-01T01:00:00+0100"
    }
}
</code></pre>

<h4 id="values"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#values">Values</a></h4>

<ul>
<li><code>chargecycleRange</code> is in Km.</li>
<li><code>totalElectricDistance</code> is in Km.</li>
</ul>

<p>I'm not sure what units of the other values are.</p>

<h3 id="get-range-map"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#get-range-map">Get Range Map</a></h3>

<p>Generate a polyline displaying the predicted range of the vehicle.</p>

<ul>
<li><code>/webapi/v1/user/vehicles/:VIN/rangemap</code><ul>
<li>Where <code>:VIN</code> is your vehicle's VIN.</li>
<li>Remember to include the <code>Authorization: Bearer</code> header.</li>
</ul>
</li>
</ul>

<h4 id="response"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#response">Response</a></h4>

<pre><code class="language-json">{
    "rangemap": {
        "center": {
            "lat": 51.123456,
            "lon": -1.2345678
        },
        "quality": "AVERAGE",
        "rangemaps": [
            {
                "type": "ECO_PRO_PLUS",
                "polyline": [
                    {
                        "lat": 51.6991281509399,
                        "lon": -2.00423240661621
                    },
                    {
                        "lat": 51.6909098625183,
                        "lon": -1.91526889801025
                    },
                    ...
                ]
            },
            {
                "type": "COMFORT",
                "polyline": [
                    {
                        "lat": 51.7212295532227,
                        "lon": -1.7363977432251
                    },
                    {
                        "lat": 51.6991496086121,
                        "lon": -1.73077583312988
                    },
                    ...
                ]
            }
        ]
    }
}
</code></pre>

<h4 id="values"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#values">Values</a></h4>

<ul>
<li><code>ECO_PRO_PLUS</code> driving using the efficient Eco mode.</li>
<li><code>COMFORT</code> driving using comfort mode.</li>
</ul>

<h2 id="sending-information-to-the-car"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#sending-information-to-the-car">Sending information to the car</a></h2>

<p>Sending information to the car is slightly complicated.  </p>

<p>Your app communicates with the API, the API then communicates with the car's 3G modem, then you have to wait for a response.  </p>

<p>If your car is in poor coverage, you can expect significant latency.  Often much higher than a typical timeout will allow for.</p>

<p>At a basic level, you can just send a request - for example to lock the doors, or set off-peak charging.</p>

<h3 id="get-request-status"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#get-request-status">Get Request status</a></h3>

<p>Shows the status of a <code>POST</code>ed request</p>

<ul>
<li><code>/webapi/v1/user/vehicles/:VIN/serviceExecutionStatus?serviceType=:SERVICE</code><ul>
<li>Where <code>:VIN</code> is your vehicle's VIN.</li>
<li>Remember to include the <code>Authorization: Bearer</code> header.</li>
</ul>
</li>
</ul>

<h4 id="response"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#response">Response</a></h4>

<pre><code class="language-json">{
   "executionStatus":{
      "serviceType":"DOOR_LOCK",
      "status":"EXECUTED",
      "eventId":"123456789012345AB1CD1234@bmw.de"
   }
}
</code></pre>

<h4 id="values"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#values">Values</a></h4>

<p>Valid <code>status</code>es are:</p>

<ul>
<li><code>DELIVERED</code></li>
<li><code>EXECUTED</code></li>
<li><code>INITIATED</code></li>
<li><code>NOT_EXECUTED</code></li>
<li><code>PENDING</code></li>
<li><code>TIMED_OUT</code></li>
</ul>

<p>The following are valid <code>:SERVICE</code> types, but <strong>may not be supported by your vehicle</strong>.</p>

<ul>
<li><code>CHARGE_NOW</code></li>
<li><code>CHARGING_CONTROL</code></li>
<li><code>CLIMATE_CONTROL</code></li>
<li><code>CLIMATE_NOW</code></li>
<li><code>DOOR_LOCK</code></li>
<li><code>DOOR_UNLOCK</code></li>
<li><code>GET_ALL_IMAGES</code></li>
<li><code>GET_PASSWORD_RESET_INFO</code></li>
<li><code>GET_VEHICLES</code></li>
<li><code>GET_VEHICLE_IMAGE</code></li>
<li><code>GET_VEHICLE_STATUS</code></li>
<li><code>HORN_BLOW</code></li>
<li><code>LIGHT_FLASH</code></li>
<li><code>LOCAL_SEARCH</code></li>
<li><code>LOCAL_SEARCH_SUGGESTIONS</code></li>
<li><code>LOGIN</code></li>
<li><code>LOGOUT</code></li>
<li><code>SEND_POI_TO_CAR</code></li>
<li><code>VEHICLE_FINDER</code></li>
</ul>

<h3 id="post-a-command"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#post-a-command">POST a command</a></h3>

<p>Instructs the car to perform an action.</p>

<ul>
<li><code>/webapi/v1/user/vehicles/:VIN/executeService</code><ul>
<li>Where <code>:VIN</code> is your vehicle's VIN.</li>
<li>Remember to include the <code>Authorization: Bearer</code> header.</li>
</ul>
</li>
</ul>

<h4 id="available-commands"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#available-commands">Available Commands</a></h4>

<p>These commands are all available via the API, but <strong>may not be supported by your vehicle</strong>.</p>

<p>These are just what I've discovered so far.</p>

<p>Data must be <code>POST</code>ed to the server.</p>

<h4 id="initiate-charging"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#initiate-charging">Initiate Charging</a></h4>

<p>If the vehicle is plugged in, but not charging (due to an off peak setting?) it is possible to force the car to charge.</p>

<ul>
<li><code>serviceType=CHARGE_NOW</code></li>
</ul>

<h4 id="start-climate-control"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#start-climate-control">Start Climate Control</a></h4>

<p>This will activate climate control within your vehicle.</p>

<p>It <em>appears</em> to be limited to the last temperature you set when you were in the car. I can't find a way to instruct the car to reach a specific temperature.</p>

<ul>
<li><code>serviceType=CLIMATE_NOW</code></li>
</ul>

<h4 id="lock-the-doors"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#lock-the-doors">Lock the doors</a></h4>

<p>Performs central locking.</p>

<ul>
<li><code>serviceType=DOOR_LOCK</code></li>
</ul>

<h4 id="unlock-the-doors"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#unlock-the-doors">Unlock the doors</a></h4>

<p>This will unlock all the doors on your vehicle.</p>

<p>Please use <strong>extreme caution</strong> when sending this command.  Ensure that you are in sight of the vehicle and are able to lock it if needed.</p>

<ul>
<li><code>serviceType=DOOR_UNLOCK</code></li>
</ul>

<h4 id="flash-the-headlights"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#flash-the-headlights">Flash the headlights</a></h4>

<p>If you can't find the vehicle, or need to illuminate something in its vicinity, you can briefly activate the headlights.</p>

<ul>
<li><code>serviceType=LIGHT_FLASH&amp;count=2</code><ul>
<li>I assume that <code>count</code> relates to the number of seconds to keep the light on?</li>
</ul>
</li>
</ul>

<h4 id="charging-schedule"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#charging-schedule">Charging Schedule</a></h4>

<p>Set the peak / off peak charging schedule.</p>

<ul>
<li><code>serviceType=CHARGING_CONTROL</code><ul>
<li>I haven't bothered to figure this out, but the error it returns should give you some pointers:</li>
</ul>
</li>
</ul>

<pre><code class="language-json">{
   "error":{
      "code":500,
      "description":"(SmartPhoneUtil-A-102) Bad value(s) for parameter(s): Invalid chargingProfile, expected weeklyPlanner or twoTimesTimer"
   }
}
</code></pre>

<h4 id="vehicle-finder"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#vehicle-finder">Vehicle Finder</a></h4>

<ul>
<li><code>serviceType=VEHICLE_FINDER</code><ul>
<li>I'm not sure what this does.</li>
</ul>
</li>
</ul>

<h4 id="response"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#response">Response</a></h4>

<p>An example response for all <code>POST</code> commands:</p>

<pre><code class="language-json">{
    "executionStatus": {
        "serviceType": "LIGHT_FLASH",
        "status": "INITIATED",
        "eventId": "123456789012345AB1CD1234@bmw.de"
    }
}
</code></pre>

<h2 id="whats-next"><a href="https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/#whats-next">What's Next</a></h2>

<p>Using these commands you should be able to replicate the functionality of the official app.</p>

<p>As you can see, I've managed to get my car to Tweet:</p>

<blockquote class="social-embed" id="social-embed-669834607169286145" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent_car" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRrgCAABXRUJQVlA4IKwCAADwDACdASowADAAPrVOo0unJCMhqqlY4BaJQBOmazHjvwiwOlnyCftjT7Z7uJNNVizSvLbjImWfG8ftgfUmHd/YjfNVzIkxcELEZQiMseSLWR/BkwGde7mgsuMi/YTlxJlE9tEkjhH4DNTG68ie3FmAAP793d++Rvr+1o8KlWNdKONqmRNKSVu8gEHlPmWGXjfWcGTX5wHhnRzOb3A+VlIYe09SMA90sZsMCxv+37MgBfi5N46+fnyMluZBOtNyjITuirAo4Dvr/nDLrsRNqRSzX+HhzVFS4tNFfFM1QPPtXbYZtFy+2+qLajMolvR2w4Gpuw3m0pUUDqKaFiAoxiynHEgYdITVusjSsDl//zbiKlyCaCF6Q5P0H1YCz8NV4v70Uszd5Sk4/89UHrnUKzVmytDyRNIkquBKLId1evI7osvvJA5T48CC4TTO6BbrwUM2+KFAVEfQLKOPEm0kQzce9Z1gAm2XOuvCGVpRR0JocCuLFDHW1w1S3sRaVBAgdV8ovB1LuTEUNwGeVvjPZtmhcpCQuTYP6qP6u0hvABP7x/VjP9OqO30wtA+nP3JOI2atzA3lFo5ZO57/JC/mPxuJPVS90MzFqZGjVb/ssZ4jn6cncbUi/xNeQVz2QkvW2R7sDlPjgerLt0nfWbpAukF4HTrcmrJN/h1CDtyQeFfJ80j5EhLWH16QHkYwPuIcpLbtKU63bQs2XhUYPgQf7nWQze8nHtp12lC8Z+HztlVN/EwOpalsw24elXx/9P8YG3vHFXLNvwP4ujygoqrveGhqWPUaFQDbn9NtFEsz1E1pWnH27lhsMXxrmaWl0mgXWEvaAMbtwr9Vp1A61jg1y9RsUF0w5MBjrSmbSr9sOkecBzYo8oCf3b4Hw+6TAmYgGi4SerDUT8kovbwAAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">edent's Car</p>@edent_car</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">🚗 4 miles in 13 minutes<br>Efficiency: 5.36 miles/kWh<br>🔋 53% (37 miles)<br>🔌 Unplugged<br>⚠ Shutdown Secured<br>2,160 miles total</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent_car/status/669834607169286145"><span aria-label="5 likes" class="social-embed-meta">❤️ 5</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2015-11-26T11:06:29.000Z" itemprop="datePublished">11:06 - Thu 26 November 2015</time></a></footer></blockquote>

<p>It would be lovely if BMW decided to open up an official API so that people could fiddle with their cars.  The API seems secure and there's limited scope for damaging the vehicles.</p>

<p><a href="https://github.com/edent/BMW-i-Remote/">I've added all the documentation to GitHub</a>.  Please raise an issue or send a Pull Request with any changes.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=22012&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2015/11/reverse-engineering-the-bmw-i3-api/feed/</wfw:commentRss>
			<slash:comments>44</slash:comments>
		
		<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2015/11/sp.webm" length="474566" type="video/webm" />
<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2015/11/sp.mp4" length="1978484" type="video/mp4" />

			</item>
	</channel>
</rss>
