I bought a mid-tier BMW last year. Regardless of how you look at it, it's a big, expensive luxury car. And being a big, expensive luxury car it's big and carefully made and feels like driving around in a well appointed living room or a first class cabin.
And the UX is pretty good. The computer controls can almost be used by memory, they're very close to hand and well laid out. The nav is so-so but the in-dash lane view makes it sane for big cities.
But the software is awful. It's not poorly designed, necessarily, but it's buggy as hell.
Half the time I enter the vehicle the car thinks I'm my wife. She's a foot shorter than I am which means I can crawl into the seat for about 30 seconds before my legs start to cramp. In that time, the following invariably happens:
1. I painfully get a foot on the break and hit the ignition.
2. The computer prompts me to confirm that I'm my wife.
3. While I'm trying to select my profile CarPlay kicks in and opens the media screen.
4. I navigate through several menu levels to set the correct driver profile, swearing the whole time.
Now, I can move the seat back before I enter, but it's slow and clumsy. Then I still have to go through the same process, just minus the leg cramp.
It sounds like all of these problems have to do with the driver profile. My grandpa's 1999 Buick Park Ave had 2 key fobs. Each fob was paired with a different driver profile. Depending on which fob unlocked the car, the seat and preferences were adjusted instantly. Surely BMW can do something similar here.
My only advice is to talk to your salesman / dealer and see if they can set you straight.
I have a completely new Audi A4 2019. Unfortunately I have the same problem. Additionally, it takes ages to switch profile. When I select my profile, it loads 2-5min until an error pops up, promting me to select again. Then it takes like 5secs. What is wrong with IT culture at German car manufacturers?
It's latency, as the key fob has to communicate with the German servers, and that round-trip takes a while.
.......
I'm only kind of joking, I don't know the real reason, but I dislike the fact I can't just get a simple mechanical car. It worked for decades, why did we need to add janky software to everything?
This is giving me flashbacks to reverse-engineering some German-made code with only a veeery basic understanding of German and no technical dictionary. Google Translate usually had a seizure with technical terms and by the end I was just going by the "shape" of the code, despise having full function names. What a language!
While I ses you've been downvoted, I am really curious why do you believe that? Do you have an actual, concrete example?
FWIW, it would be very weird, since Java is strongly typed, and while you can introduce bugs, not any more so than in any other, esp dynamically typed languages.
I've written quite a few Java Swing applications during the years after graduating and getting my MSc (approximately 3 years).
There's always a standard procedure to get a Swing main window running. IIRC you get the window, the canvas (layout?), layout manager then, you create and push your elements into the layout, fiddle with them, and lastly, set your window visible.
You can flex the process between getting the window and starting to push your elements into the layout. You can make Java implicitly create the missing parts without connecting to a variable.
If you do that, everything works as expected but, with a slight performance penalty. Everything will be ever slightly laggy. On the other hand, if you do everything by book, things run smoother. I experienced this with the apps I've written.
Some people believed me, some people don't. Some believed me after I showed the situation to them. This effect diminished in AMD64 era, and became unnoticeable after Intel Core series processors came to existence.
It was Java 6 times, so I'm not sure whether it's applicable.
That's the little lesson I've learned during developing with Java: Pay attention, do once, do right.
> What is wrong with IT culture at German car manufacturers?
Don't know about BMW in particular but I went to university in close vicinity to another large german car manufacturer. They do basically nothing in house. Everything is outsourced to suppliers (who often outsource their stuff again). There is enormous price pressure among the suppliers and no real room for culture. Also Java, everything is Java.
But the companies are slowly seeing that its a problem and start building up their own dev teams with "hip" offices in Berlin and so on.
Indeed, if you read the employee reviews on Kununu of MB's hip internal Berlin startup you'll find the same toxic culture has been carried over from the Mothership. The problem is German bigcorps don't know how to do culture in modern software. They want to carry the same level of strict manager focused micromanagement from the factory production lines to the software developers.
It's not just German manufacturers. I drive a Lexus and I can relate to a lot of the things being said here. The car is wonderful but the software feels like an afterthought.
Oh I don't know, the same culture that skips over insuring that a VW e-Golf or Audi e-tron does not put up warnings to get the oil changed. Yes, they really do prompt their owners to have an oil change and service.
It simply can come down to not having a change management system let along a project management system that is effective. then there is the opposite systems, the ones where getting even a minor change in can be frustrating and results in many not bothering to fix the simple issues.
Wait are you complaining that the car tells you to take it for service? I have a 2009 VW and I actually really like this feature. I just wait for it to say service is due in 30 days and schedule something with the shop. Modern cars only need service about every 12 months so it's nice to not have to try to remember.
Tested a KIA e-Niro during the weekend and it had gas stations in the points of interest list on the infotainment system. Cute. :)
To their defense, many / most gas stations sell lots of useful stuff and have services apart from gas so there is that.
It's pretty hilarious that the guy had this issue for a while, and not once thought about how does the car determine who is driving, and how it can prepare the seat in time.
People actually use both keys simultaneously when sharing cars? I always consider one key as an "emergency" backup, and it is never used daily. The car is single entity, so one key is more than enough (for my use cases).
PS: also in my country it is illegal to drive without car ID card, which is also single entity and need to be exchanged hand to hand when car sharing.
they do when you can have a profile attached to the key and the car can have some configurations to that profile, mainly the seat and mirror positions if those are electrically adjustable.
On the other side, I had an audi that on top of 2 keys, it had a plastic key with a code that can be used to create a new key as the one that you must store in house and keep safe.
> Half the time I enter the vehicle the car thinks I'm my wife.
I had the same issue with a fairly old Volvo, and manually adjusting the seats for the large height difference was quite irritating (even with the setting memory feature). I was convinced it was buggy or random, until I accidentally figured out the car's actual "algorithm" - it was simply remembering the last seat setting for the key used, and since we were using a single key and just swapping the car between us as needed... Not sure why this took me so long to figure out, it was just kind of an unexpected default behaviour, given our use case of a shared car.
Oh god. I got rid of my BMW less than a year after buying it in part because of the horrible "iDrive" central console interface. It was absolutely terrible! Examples: Putting the car into drive would pass by reverse, so the reverse camera would come up, then not go away for 20 seconds or so. Notifications would pop up for gas at 1/8th of a tank with an alert sound like the scene change music to Law & Order. Unkillable notifications for unneeded oil changes. Deep menus for common functionality like sound adjustments. The audio didn't stop when you turned off the car, only when you opened and shut the door (letting everyone in the parking lot hear a snippet of your music first). The nav system took a minute or so to start up, so you can't begin to enter an address until it's ready. Where were the physical play/pause buttons? There are none.
There's a reason why California companies lead the world in UI design: We actually care about the user experience. The hostility of a BMW UX is on a level that I honestly didn't think was possible. It wasn't just moronic, it was straight up belligerent.
Thank goodness the car had a major safety recall and I had an excuse to get rid of it. My first and last BMW ever.
Which special BMW did you have when every newish BMW has Reverse at the top and Drive at the bottom (no way of passing Reverse when putting in Drive)?
EDIT: Seems that you are talking about 10+ year old BMW and telling that CA car UX is amazing - cars with no buttons and clicking (touching) through submenus to get the AC blasting...
How do you define "unneeded" oil changes. If the oil change wasn't reset that is up to your service.
Agreed, newer iDrive interfaces is one of the best if not the best car interfaces you can use. Lexus NX on the other hand, well thats what a crappy UX is.
You pass by reverse on the way to drive on a lot of BMW automatic shift knobs. Drive is on the bottom, but before that is neutral, then reverse, then park. To go from park to drive you have to pass reverse.
I have not had the problem that the other user complained about, of the reverse camera and sensors coming on when changing gears. Perhaps they shift much slower than the manufacturer anticipated, or they aren't depressing the button on the knob.
Unlike you, I'm not an anonymous internet asshole making baseless accusations from their mom's basement, so what I wrote is actually the truth - it was a 2018 BMW X1.
I totally get why BMW snobs say the X1 and X2 are weird (but wait until you see the new 1-series). But they're hardly 10 year old models. For people cross-shopping in that segment of vehicles, its sales indicate that it comes out on top of the competition.
The iDrive system that the user was complaining about is pretty much interchangeable with every other bimmer of that generation, so you're going to find mostly the same features and quirks throughout that lineup. If they didn't like that UX, they're pretty much going dislike any iDrive.
Personally, I think BMW makes a way better infotainment than most other manufacturers.
I'm not sure if you are replying to my comment but I actually owned w BMW X6, so I'm used to iDrive. Not sure if X1 had something different, it may be the case as it is much smaller car.
How is the radio staying on belligerent? I love that feature. It just takes another tap of the stop/start or the volume knob to shut it of.
Plenty of people idle to finish hearing what they are listening to when they reach their destination, and a straightforward way to do that without burning fuel is nice.
Which iDrive version does your car have? The only notable software bug I’ve encountered on my G12 with the current gen NBT EVO (101172.3.214, 2017-04, Q18491l) is that carplay sometimes fails to connect until I restart the infotainment.
I’ve never seen the car pick any other driver profile than the one associated with the keyfob.
> But the software is awful. It's not poorly designed, necessarily, but it's buggy as hell.
Can't say I agree with this in the slightest, assuming you are not talking about a 2002-2005 (EU) year which did have a very buggy implementation of iDrive based on Windows.
The issue you are describing is otherwise known as "opening the car with a key attached to the driver profile for your wife".
My 2009 3 series with the professional navigation option is not only bug-free in everyday use (with all updates applied) but substantially better than most brand new cars available today, which is why I still have it.
I have a 2018 2 series, with the business pack (has the cheaper navigation system, not the professional one) and my experience is that if you don't use connected apps it's great, bug connected apps are simply terrible.
They have a lot of problems synchronizing, and connected drive is just garbage. It just doesn't work, if I try to use the my phone to send a location to the car's navigation system half the times the application crashes, perhaps with iPhone it's better, but with android (and I have an android one phone, wit android 10) I just gave up on this functionality.
Interesting, I have a 2015 model, and sending destination from the phone or directly from the Google Maps on desktop always worked. I don't even need to connect my phone to the car. My wife's car is newer, and it doesn't connect to BMW Connected services at all. ;(
My 2011 X5 simply doesn't remember which key is whose, even with the box checked. If you look around, there are youtube videos of dealers demoing how it's supposed to work, and there are forum posts of folks taking their cars to the dealer countless times and it never getting fixed.
Basically: If it it works on your car, great. If it doesn't, it probably never will.
I know how it's supposed to work, my family has owned other cars with the same keyfob/system, and it works perfectly.
I am driving a new Mercedes C class and can confirm: the software is utter rubbish. Half of the built-in "Mercedes apps" are crashing, not starting, not working, not connecting. Mercedes Me works - sometimes, sometimes it doesnt.
Automotive software isn't written by Germans anymore, they outsourced most of it to the cheapest OEM over a decade ago. And it's not just the Germans, everything in automotive is cost driven with contracts going to the lowest bidder leading to a race to the bottom and the results speak for themselves as you can see.
With MBUX Mercedes has started developing their infotainment system in-house again. I don't personally own a Mercedes but from what I've heard it's much better then the previously outsourced infotainment system.
One time I got in one of their cars in a car show, and the display kept popping up a modal dialog "To use X, please connect a phone". I get it, you told me 5 seconds ago!
It's insanely ugly. I rented a cla200d in Germany a couple years back and just assumed it looked chintzy because I had the low-rent cardboard interior rental company model.
... Until I saw the same font and graphics on a $100k+ AMG E class at the auto show being advertised as NEW.
Something to remember about the automotive industry is that they have a long running time for each project.
So each generation often have a large improvement over the last because they worked on it for years before first release.
This is why some things can be "not perfect" for some users.
The companies are improving rather fast just past years to be able to have things like software be improved in a much faster way and free of chains to the timeline of the project they are part of.
"Car thinks i'm the wife".
Some cars go by weight and some by the key used.
Some go by the last use and once you sit down it adjust things to that last setting.
I used to have a Audi and a Volvo with these things.
The Audi i had seemed to go by weight only and the Volvo had memory buttons to be used but seemed to go by the key.
>And the UX is pretty good. The computer controls can almost be used by memory, they're very close to hand and well laid out. The nav is so-so but the in-dash lane view makes it sane for big cities.
But the software is awful. It's not poorly designed, necessarily, but it's buggy as hell.
Interesting. I have a 2015 BMW 3 Series with professional I-Drive and I still find it one of the best systems available.
Is there, like, a video that explains the theory of iDrive? I can always make it do what I want it to do, but it makes no goddamned sense. What I mean is, the overlapping 'cards' and menus and when and why clicking the controller is different from togging it to the right on a menu item when those always* seem to do the same thing.
I just don't get the theory behind it all. It's a system you have to LEARN how to use, and you can use it for years without ever understanding what the hell they were thinking/intending. I've just learned to work around its quirks.
This reminds my of the troubles I have with CarPlay on BMW.
I use Android. Anytime I try to go somewhere while my wife's iPhone is near the garage, it takes over my car and I can't do anything. No music, no phone calls, nothing but drive. In order to regain control of my car, I have to drive a mile down the road, pull over, shut off the ignition, count 30 Mississippi, then restart the car. Only then will the unresponsive CarPlay coupe coup be ultimately defeated. :)
Sure I could remove her iPhone profile, but that hurts her feelings.
> But the software is awful. It's not poorly designed, necessarily, but it's buggy as hell.
Seconded. It was always crappy, but I recently switched to a 2019 model and expected it to be better. It isn't.
I'm amazed that in 2019/2020 we still have problems with keeping track of two driver profiles (yes!) and their phones. It's not rocket science!
A phone can stop working for no reason and require un-paring/re-connecting. The UX is crappy, Spotify integration works or does not, depending on the phase of the moon.
My car also came with Apple CarPlay, which was somewhat better but after a couple of weeks both phones stopped working with the car. The dealership told me I never had a CarPlay subscription (!), which means it must have been a demo. From the point of view of the user: phones worked nicely, until suddenly they stopped working, completely. Wasted time on dealership visits and unparing/re-connecting phones again.
Oh, and the much-touted feature that lets you unlock the car with an NFC card or your phone? Only works with Samsung phones.
I'm not sure if manufacturers get the fact that for a certain segment of customers phone integration is one of the most important features in the car. After my lease expires I will be shopping with that in mind.
Good guess, you had me checking it, but no. I looked it up and it seems to be my purchase date (and consequently original Apple Carplay subscription date) with 20 years added to the year part of the date.
Do you and your wife use multiple BMW keys interchangeably? Each key can be made to default to a profile, so when either my wife or I enter with our keys, everything sets up per each of our preferences.
This story is exactly why I want my cars to be dead simple. I don't care about the "luxury" that is having some gigantic distracting screen with whatever invariably-horrible software implementation running on it.
My current car is almost entirely mechanical, with the exception of electronic throttle body. This may sound like a petty gripe considering the pure garbage that is being sold today, but I can feel the difference between this and a throttle body with a physical cable attached to it. It annoys the hell out of me that I can sense a 1mm deadzone before the computer detects that I have pressed my accelerator pedal. I cannot comprehend how people are tolerating things like brake/steer-by-wire, lane-keep assist on by default, engine auto stop, emergency auto breaking, etc.
I understand the most profitable target market for these cars is "people who didn't want to drive in the first place", but can we at least spend a little time considering those still in the "I like to drive and don't want it to be a miserable experience" demographic?
Folks tolerate many of the features you describe (lane-keep assist, emergency auto braking (edit - spelling)) because they make one of the most dangerous activities we participate in as a society objectively safer. Engine auto stop helps reduce emissions.
I get that you are putting a "pure" driving experience on a pedestal and from an aesthetic standpoint I tend to agree, but it sounds like you haven't had to mop up after a catastrophic collision. Tens of thousands of people die every year (edit- in highway collisions) and you are complaining about technologies designed with the express intent to mitigate that, so how do I look at your gripe as anything but selfish nostalgia?
Why do we need a feature to steer for the driver or press their brakes? What is the new acceptable % of driver involvement in the activity? Is it now 95%? I don't understand why everyone seems to be OK with this grey area of man/machine responsibility. I've heard far more stories of lane keep assist doing something unexpected and causing panic than I have of it saving someone's ass.
It's a very interesting article. I'm also impressed by such dedication. Hashing the strings from the decompiled APK to easily debug the protocol in Wireshark is inspiring.
On the topic of using a BMW with you phone without being frustrated, some people put a third-party box between the screen and the car infotainment computer to get Android Auto. I heard the experience isn't perfect.
Personnally I use Google Assistant and I think it works relatively well. I can use it to get directions, make the sound of random animals, change radio, play music on Spotify... To trigger it, you can long press the voice command button on the steering wheel.
Yeah, I 'inherited' a 2015 BMW 1-series with very basic equipment from my grandma. Plenty of car for a cs student, but I really wanted Apple Carplay and Android Auto in my car.
You're right though, it is not perfect. But I was surprised how well it's integrated. It definitely connects faster and more reliably than the default Bluetooth connection in the car and it can be removed without a trace afterwards, since it's just a piggyback box.
I do experience a crash though sometimes, and then I have to stop, turn off and lock the car for ~30 seconds just to restart the box.
I have a binary firmware file from the manufacturer, was thinking I might try to decompile it and make my own version, but I don't have a the experience or the time atm.
There is a slow movement to Reverse Engineer carplay (mostly the problem lies with apple MFi encryption) but it'd be great if more people joined in to make a truly opensource carplay implementation
What's there to reverse? CarPlay is extremely basic, you send a surface geometry to the iPhone and you tell it what it can be used for, a lot like Apple Watch complications, and then CarPlay can decide what to send to the buffer.
Example:
In a Mini, with wireless CarPlay
I get a Main View for CarPlay's springboard, and configurable split screen for other car functions, however one of the functions is a media view for currently playing media. This allows me to use any car functions in the main view and still see what media is playing from any source including CarPlay, and it shows the Album View from CarPlay.
The (MFi?) authentication prevents you from making your own carpc compatible with carplay because of encryption, there are efforts to break it (extract key) but AFAIK none of the public ones have succeeded so far
If you have a Bimmertech MMI, I think it can be hard-reset by just keeping the Menu button pressed for some time.
It's a great product even if a little buggy. I'm glad my car is compatible and honestly I wish this kind of device could be made universal. Car stereos used to be super easy to swap in and out, but nothing is standardized anymore. :(
It's unfortunately not the Bimmertech one, I have the Unique Auto Developments/IDCORE unit. At the time of my purchase it was the only one I could find with wireless carplay. I know the Bimmertech prime one exists now, but for me it's not worth it currently to buy another unit just cause it might be better.
I agree though, it should be much easier to swap stuff on your car like the radio, just because tech moves so fast!
Sounds no worse than the factory Wireless CarPlay on my 2019 F56 Cooper S. It's infuriatingly laggy and buggy. Best bit was that when I ordered the car is was a near £2k option to add it because you had to buy the upgraded Nav option, which I didn't want. I've used it once and although it's fine, it isn't as good as Waze for traffic.
Just give me CarPlay, I'll still spend that £2k but on things I need like a electrically heated front screen, or better seats.
Other cars in the same class had it as standard - for example the Fiesta ST or the Polo GTI, I just didn't like the cabin or the ride quality on the Fiesta compared to the MINI. And the Polo felt totally bland.
The Fiesta and Polo are so heavy now they need independant rear suspension like the MINI has.
I have a similar problem with a Carlinkit box I installed myself. I do get a new firmware update from the person I purchased my unit. But the quality is certainly not top-notch. it works. With a recent fw update mine also freezes completely. I would reboot it a few times by long-pressing the physical back button. Pretty annoying when you rely on working navigation on the high way. I've contacted the support guy and he promised a new firmware is on its way. Fingers crossed :D
Now I can't imagine not having Carplay in my car :)
A little bit off-topic; while I installed the carlinkit myself I think I broke something. Now my car clock (the internal one shown on the speedometer screen) cannot be set anymore. And recently I notcied the PDC (pressure detection system of the tires) are complaining all the time.
Will have the car checked by mechanics soon. Not sure the defects I'm experiencing are related to my own doings or just unlucky.
Dang, there is something odd with the (unusual high) number of newly registrated comments on this post. Good comments, but could all be from the same person?
From zwb’s bio: “(..) Hacker News is an online game you can play where your score is up in the top right corner and there's a leaderboard, and you get points by posting stuff and making comments people like. (..)”
Should you though? So some drone in the legal department can accuse you of “hacking” or “stealing proprietary information”?
With a tech company, maybe you could but it’s still a risk. With a big, ‘old school’ company? No. Hell no. Unsolicited advice on anything security related is a bad idea.
He is supposed to mail hn@ycombinator.com. That way dang actually sees it. And the guidelines specifically ask for doing such meta communication off HackerNews.
Cars are not a common subject on HN, so it probably caused some anonymous readers with knowledge or opinion on the matter to create an account so they can chime in.
I want an electric car. I don't want any screens though.
Analogue dials, switches, buttons.
I don't expect to own a vehicle for 20 years, but what is the real life-expectancy of those LCD screens and back-lights? I'm driving a 9-year-old car right now and half of the 'tech' on it doesn't work worth shit. It drives ok, but it's nearing it's serviceable EOL.
> asked if I could get access to the BMW Ready SDK ... They declined.
Sometimes this is all the motivation a person needs. Now it's (almost?) reverse-engineered and it could be a big headache for BMW in the future if a exploit/bug/fun-stuff is found by the right people.
Companies: share your SDKs. The guy/girl doing a RE is not your regular "coding demo SDK apps" engineer and will go deeper.
I tried to get developer access via a form and never got a response, so I tried sending a message the head of the infotainment on LinkedIn
Thankfully he was able to get my application to the dev site moving... but unfortunately, they required a business use case to get an API key once you had access to the site.
So I tried to pick the API key out of the app.
They had the most novel obfuscation I've ever seen for an app's API key
The key was inside the image data for the launcher icon
There was a weird transformation applied to it too, so instead of trying to reverse engineer it I just fired up Charles and intercepted it from there
With the API key and the documentation for the API from the dev site I was able to write a program that started preconditioning my Volt when I left my apartment (the car was in an attached underground garage, so it'd be at the right temperature by the time I got down)
Nice! I've been trying to do some RE myself to no avail. This project (https://github.com/TheCrypt0/yi-hack-v4) maintainer puts a paid DRM atop the main functionality (enabling rtsp streaming for Yi cams). I tried bypassing the DRM by replacing the MC command in ghidra but it didn't work. Do you have any learning resources you can share so I can bypass/crack this DRM?
Unfortunately I don't have anything that would be helpful
Reverse engineering Android apps is pretty easy because there's a very well defined application format, and a ton of hints about the original source in the bytecode
Your situation sounds a little more complicated than that
Found the call that added the header for the API key to each request (even with Proguard's obfuscation string literals are preserved, so searching for "x-api-key" worked)
From there I followed the call chain to their transformer, then looked at the input for the transformer and it was loading a subset of bytes read from the same resource as the launcher icon (and sure enough, opening it in a hex editor there was some weird "garbage" that I'm honestly surprised Android doesn't choke on)
There's not much to show though, I have a bad habit of not putting stuff in VC "because it's just a quick experiment"... then it becomes a long term project with no backups
While I agree that companies should share development libraries/SDKs, this will not prevent reverse engineering and if closed source gives reverse engineers another avenue to gain access. BMW likely declined due to possible liability. If someone creates a smartphone app than anyone could download that unlocks the vehicles and is sued, it is easier to convince lawyers, judges and nontechnical plaintiffs that the company is not at fault if they provided no access to the software regardless of whether the SDK provided was utilized or not. Even if there was an explicit opt in for each vehicle to allow users to utilize a SDK, the auto industry does not have protocols on how to do factory resets after the vehicle changes hands.
I can't help but feel for this guy having done my own reverse engineering of BMW's i-bus back in the day. You get to the point where you see such possibility if the carmaker would just open up a little damn bit. It's a real shame that automakers feel that every software or hardware integration with their vehichle should be something to monetize. Even the forward thinkers like Tesla are no better on this front.
Another possible explanation (other than keeping everything in case it can be monetized) is being concerned with mirriad of ways it can bring liability to the company. Perhaps, it is not a practical way to keep such risk away, but I can see how it can be most rational decision by a big company.
Tesla didn't try to block it when people did figure out the calls to talk to their car, so that's at least a good thing. They figured it out by putting the android or ios app on wifi and looking at the calls. Then from there they figured out the login token. One thing Tesla hasn't done right, you can't revoke tokens (at least it didn't seem to be possible last I looked).
I'm confused why just 1 car company doesn't allow end-user developed apps. A model lineup like that seems like it'd be easy to turn dealer inventory. You have the historical success of both PC and mobile to understand how nobody can compete with a proprietary systems.
123 comments
[ 4.4 ms ] story [ 183 ms ] threadAnd the UX is pretty good. The computer controls can almost be used by memory, they're very close to hand and well laid out. The nav is so-so but the in-dash lane view makes it sane for big cities.
But the software is awful. It's not poorly designed, necessarily, but it's buggy as hell.
Half the time I enter the vehicle the car thinks I'm my wife. She's a foot shorter than I am which means I can crawl into the seat for about 30 seconds before my legs start to cramp. In that time, the following invariably happens:
1. I painfully get a foot on the break and hit the ignition.
2. The computer prompts me to confirm that I'm my wife.
3. While I'm trying to select my profile CarPlay kicks in and opens the media screen.
4. I navigate through several menu levels to set the correct driver profile, swearing the whole time.
Now, I can move the seat back before I enter, but it's slow and clumsy. Then I still have to go through the same process, just minus the leg cramp.
.......
I'm only kind of joking, I don't know the real reason, but I dislike the fact I can't just get a simple mechanical car. It worked for decades, why did we need to add janky software to everything?
{"AnfrageArt":"Personenerkennungsschlüsselanforderungsanfrage", "ParameterListe":["HerstellerSpezifischePersonenkraftfahrzeugidentifikationsnummer":"1NXBR12E31Z463785"]}
}
These performance penalty get really magnified when a lot of small errors are done on a less powerful hardware.
I've found out this the hard way when I was developing Java GUI (Swing mostly) apps, and messed up the initialization sequence of the GUI a few times.
FWIW, it would be very weird, since Java is strongly typed, and while you can introduce bugs, not any more so than in any other, esp dynamically typed languages.
There's always a standard procedure to get a Swing main window running. IIRC you get the window, the canvas (layout?), layout manager then, you create and push your elements into the layout, fiddle with them, and lastly, set your window visible.
You can flex the process between getting the window and starting to push your elements into the layout. You can make Java implicitly create the missing parts without connecting to a variable.
If you do that, everything works as expected but, with a slight performance penalty. Everything will be ever slightly laggy. On the other hand, if you do everything by book, things run smoother. I experienced this with the apps I've written.
Some people believed me, some people don't. Some believed me after I showed the situation to them. This effect diminished in AMD64 era, and became unnoticeable after Intel Core series processors came to existence.
It was Java 6 times, so I'm not sure whether it's applicable.
That's the little lesson I've learned during developing with Java: Pay attention, do once, do right.
Generalized: What's wrong with the software engineering culture at hardware manufacturers?
Don't know about BMW in particular but I went to university in close vicinity to another large german car manufacturer. They do basically nothing in house. Everything is outsourced to suppliers (who often outsource their stuff again). There is enormous price pressure among the suppliers and no real room for culture. Also Java, everything is Java.
But the companies are slowly seeing that its a problem and start building up their own dev teams with "hip" offices in Berlin and so on.
Of course there are always exceptions.
Yeah, they look exactly like this: https://welcometobusinesstown.tumblr.com/post/111400877481/t...
It simply can come down to not having a change management system let along a project management system that is effective. then there is the opposite systems, the ones where getting even a minor change in can be frustrating and results in many not bothering to fix the simple issues.
I have two BMWs, both do the same.
PS: also in my country it is illegal to drive without car ID card, which is also single entity and need to be exchanged hand to hand when car sharing.
On the other side, I had an audi that on top of 2 keys, it had a plastic key with a code that can be used to create a new key as the one that you must store in house and keep safe.
I had the same issue with a fairly old Volvo, and manually adjusting the seats for the large height difference was quite irritating (even with the setting memory feature). I was convinced it was buggy or random, until I accidentally figured out the car's actual "algorithm" - it was simply remembering the last seat setting for the key used, and since we were using a single key and just swapping the car between us as needed... Not sure why this took me so long to figure out, it was just kind of an unexpected default behaviour, given our use case of a shared car.
There's a reason why California companies lead the world in UI design: We actually care about the user experience. The hostility of a BMW UX is on a level that I honestly didn't think was possible. It wasn't just moronic, it was straight up belligerent.
Thank goodness the car had a major safety recall and I had an excuse to get rid of it. My first and last BMW ever.
EDIT: Seems that you are talking about 10+ year old BMW and telling that CA car UX is amazing - cars with no buttons and clicking (touching) through submenus to get the AC blasting...
How do you define "unneeded" oil changes. If the oil change wasn't reset that is up to your service.
Those pesky updates.
I have not had the problem that the other user complained about, of the reverse camera and sensors coming on when changing gears. Perhaps they shift much slower than the manufacturer anticipated, or they aren't depressing the button on the knob.
Isn’t that only with a couple of weird models built on the Mini UKL platform (and not even all of those)? Hardly what I’d call “a lot”.
Pretty sure literally all other models use a button for park.
It’s definitely a weird exception, and the kind of car you’d expect to suck. Sort of like the Mercedes CLA.
The iDrive system that the user was complaining about is pretty much interchangeable with every other bimmer of that generation, so you're going to find mostly the same features and quirks throughout that lineup. If they didn't like that UX, they're pretty much going dislike any iDrive.
Personally, I think BMW makes a way better infotainment than most other manufacturers.
“Unkillable”? You just go into the service menu and reset the oil change interval, this isn’t hard stuff.
Just google “e65 reset oil change” or whatever model you had.
Plenty of people idle to finish hearing what they are listening to when they reach their destination, and a straightforward way to do that without burning fuel is nice.
Not even that, just getting out of the car and locking it will do the trick.
I guess that won’t work if you’re terribly insecure about your music choices though?
I’ve never seen the car pick any other driver profile than the one associated with the keyfob.
Can't say I agree with this in the slightest, assuming you are not talking about a 2002-2005 (EU) year which did have a very buggy implementation of iDrive based on Windows.
The issue you are describing is otherwise known as "opening the car with a key attached to the driver profile for your wife".
My 2009 3 series with the professional navigation option is not only bug-free in everyday use (with all updates applied) but substantially better than most brand new cars available today, which is why I still have it.
They have a lot of problems synchronizing, and connected drive is just garbage. It just doesn't work, if I try to use the my phone to send a location to the car's navigation system half the times the application crashes, perhaps with iPhone it's better, but with android (and I have an android one phone, wit android 10) I just gave up on this functionality.
Basically: If it it works on your car, great. If it doesn't, it probably never will.
I know how it's supposed to work, my family has owned other cars with the same keyfob/system, and it works perfectly.
shrug
Germans are very bad at software.
With MBUX Mercedes has started developing their infotainment system in-house again. I don't personally own a Mercedes but from what I've heard it's much better then the previously outsourced infotainment system.
https://c1.peakpx.com/wallpaper/1018/324/929/mercedes-benz-c...
One time I got in one of their cars in a car show, and the display kept popping up a modal dialog "To use X, please connect a phone". I get it, you told me 5 seconds ago!
... Until I saw the same font and graphics on a $100k+ AMG E class at the auto show being advertised as NEW.
This is why some things can be "not perfect" for some users. The companies are improving rather fast just past years to be able to have things like software be improved in a much faster way and free of chains to the timeline of the project they are part of.
"Car thinks i'm the wife". Some cars go by weight and some by the key used. Some go by the last use and once you sit down it adjust things to that last setting.
I used to have a Audi and a Volvo with these things. The Audi i had seemed to go by weight only and the Volvo had memory buttons to be used but seemed to go by the key.
What the newer BMW use i am unsure of.
But the software is awful. It's not poorly designed, necessarily, but it's buggy as hell.
Interesting. I have a 2015 BMW 3 Series with professional I-Drive and I still find it one of the best systems available.
It's the best system, but it's still awful.
I just don't get the theory behind it all. It's a system you have to LEARN how to use, and you can use it for years without ever understanding what the hell they were thinking/intending. I've just learned to work around its quirks.
I use Android. Anytime I try to go somewhere while my wife's iPhone is near the garage, it takes over my car and I can't do anything. No music, no phone calls, nothing but drive. In order to regain control of my car, I have to drive a mile down the road, pull over, shut off the ignition, count 30 Mississippi, then restart the car. Only then will the unresponsive CarPlay coupe coup be ultimately defeated. :)
Sure I could remove her iPhone profile, but that hurts her feelings.
Seconded. It was always crappy, but I recently switched to a 2019 model and expected it to be better. It isn't.
I'm amazed that in 2019/2020 we still have problems with keeping track of two driver profiles (yes!) and their phones. It's not rocket science!
A phone can stop working for no reason and require un-paring/re-connecting. The UX is crappy, Spotify integration works or does not, depending on the phase of the moon.
My car also came with Apple CarPlay, which was somewhat better but after a couple of weeks both phones stopped working with the car. The dealership told me I never had a CarPlay subscription (!), which means it must have been a demo. From the point of view of the user: phones worked nicely, until suddenly they stopped working, completely. Wasted time on dealership visits and unparing/re-connecting phones again.
Oh, and the much-touted feature that lets you unlock the car with an NFC card or your phone? Only works with Samsung phones.
I'm not sure if manufacturers get the fact that for a certain segment of customers phone integration is one of the most important features in the car. After my lease expires I will be shopping with that in mind.
My current car is almost entirely mechanical, with the exception of electronic throttle body. This may sound like a petty gripe considering the pure garbage that is being sold today, but I can feel the difference between this and a throttle body with a physical cable attached to it. It annoys the hell out of me that I can sense a 1mm deadzone before the computer detects that I have pressed my accelerator pedal. I cannot comprehend how people are tolerating things like brake/steer-by-wire, lane-keep assist on by default, engine auto stop, emergency auto breaking, etc.
I understand the most profitable target market for these cars is "people who didn't want to drive in the first place", but can we at least spend a little time considering those still in the "I like to drive and don't want it to be a miserable experience" demographic?
But now the problem is that software companies make very good software - that benefits themselves first, and the customer as almost an afterthought.
On the topic of using a BMW with you phone without being frustrated, some people put a third-party box between the screen and the car infotainment computer to get Android Auto. I heard the experience isn't perfect.
Personnally I use Google Assistant and I think it works relatively well. I can use it to get directions, make the sound of random animals, change radio, play music on Spotify... To trigger it, you can long press the voice command button on the steering wheel.
You're right though, it is not perfect. But I was surprised how well it's integrated. It definitely connects faster and more reliably than the default Bluetooth connection in the car and it can be removed without a trace afterwards, since it's just a piggyback box.
I do experience a crash though sometimes, and then I have to stop, turn off and lock the car for ~30 seconds just to restart the box.
I have a binary firmware file from the manufacturer, was thinking I might try to decompile it and make my own version, but I don't have a the experience or the time atm.
The most advanced RE effort I've found: https://www.youtube.com/watch?v=VnS_TP18VBk (comments) https://gist.github.com/Wh1terat/f06c8b4a41f93f482bf5892095b...
Example: In a Mini, with wireless CarPlay I get a Main View for CarPlay's springboard, and configurable split screen for other car functions, however one of the functions is a media view for currently playing media. This allows me to use any car functions in the main view and still see what media is playing from any source including CarPlay, and it shows the Album View from CarPlay.
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&c...
It's a great product even if a little buggy. I'm glad my car is compatible and honestly I wish this kind of device could be made universal. Car stereos used to be super easy to swap in and out, but nothing is standardized anymore. :(
Just give me CarPlay, I'll still spend that £2k but on things I need like a electrically heated front screen, or better seats.
That is exceptionally common across a variety of manufacturers.
The Fiesta and Polo are so heavy now they need independant rear suspension like the MINI has.
Now I can't imagine not having Carplay in my car :)
A little bit off-topic; while I installed the carlinkit myself I think I broke something. Now my car clock (the internal one shown on the speedometer screen) cannot be set anymore. And recently I notcied the PDC (pressure detection system of the tires) are complaining all the time.
Will have the car checked by mechanics soon. Not sure the defects I'm experiencing are related to my own doings or just unlucky.
Someone at BMW added me accidentally as a nexus repo. I get loads of BMW traffic now, and it's really annoying.
Leaks a bunch of fun stuff.
[BMW'S IP] - - [20/Jan/2020:08:52:11 +0100] "GET .... com/bmw/cc/b2vngtp/statusAPI/20200120.074026-feature_2020-T1.5-CDNGTP-3818-improve-stability-of-integration-tests/statusAPI-20200120.074026-feature_2020-T1.5-CDNGTP-3818-improve-stability-of-integration-tests.war HTTP/1.1" 403 1364 [MYSITE] "-" "Nexus/3.15.1-01 (OSS; Linux; 3.0.101-108.87-xen; amd64; 1.8.0_92)" "-"
From zwb’s bio: “(..) Hacker News is an online game you can play where your score is up in the top right corner and there's a leaderboard, and you get points by posting stuff and making comments people like. (..)”
With a tech company, maybe you could but it’s still a risk. With a big, ‘old school’ company? No. Hell no. Unsolicited advice on anything security related is a bad idea.
I do wish I had adaptive cruise control, though.
I want an electric car. I don't want any screens though. Analogue dials, switches, buttons.
I don't expect to own a vehicle for 20 years, but what is the real life-expectancy of those LCD screens and back-lights? I'm driving a 9-year-old car right now and half of the 'tech' on it doesn't work worth shit. It drives ok, but it's nearing it's serviceable EOL.
by the 3rd time i was laughing at this...
"not a problem, barely an inconvenience"
Yea sounds about right :(
Sometimes this is all the motivation a person needs. Now it's (almost?) reverse-engineered and it could be a big headache for BMW in the future if a exploit/bug/fun-stuff is found by the right people.
Companies: share your SDKs. The guy/girl doing a RE is not your regular "coding demo SDK apps" engineer and will go deeper.
I tried to get developer access via a form and never got a response, so I tried sending a message the head of the infotainment on LinkedIn
Thankfully he was able to get my application to the dev site moving... but unfortunately, they required a business use case to get an API key once you had access to the site.
So I tried to pick the API key out of the app.
They had the most novel obfuscation I've ever seen for an app's API key
The key was inside the image data for the launcher icon
There was a weird transformation applied to it too, so instead of trying to reverse engineer it I just fired up Charles and intercepted it from there
With the API key and the documentation for the API from the dev site I was able to write a program that started preconditioning my Volt when I left my apartment (the car was in an attached underground garage, so it'd be at the right temperature by the time I got down)
Reverse engineering Android apps is pretty easy because there's a very well defined application format, and a ton of hints about the original source in the bytecode
Your situation sounds a little more complicated than that
But in general, getting around cert pinning is pretty straightforward though with Objection and Frida.
It's a little bit of a cat and mouse game since they can probably be detected by a determined app developer, but I haven't run into any issues yet
Found the call that added the header for the API key to each request (even with Proguard's obfuscation string literals are preserved, so searching for "x-api-key" worked)
From there I followed the call chain to their transformer, then looked at the input for the transformer and it was loading a subset of bytes read from the same resource as the launcher icon (and sure enough, opening it in a hex editor there was some weird "garbage" that I'm honestly surprised Android doesn't choke on)
There's not much to show though, I have a bad habit of not putting stuff in VC "because it's just a quick experiment"... then it becomes a long term project with no backups