It's easy to underestimate how hard and expensive it is to build, deploy, and remotely upgrade software that runs reliably on a fleet of diverse cars (different models, different years, slightly different components from batch to batch, etc.). It makes updating a mobile phone OS look trivial in comparison. So far, only Tesla seems to be able to update car software remotely, regularly and reliably. I'm certain it's ne…
> All things considered, physical buttons and dials are probably easier and cheaper, because they don't require software updates! I am pretty sure there is a market for a dumb modern car, but no one is building it. I am thinking of an electric car without anything "smart" in it. Modern safety features can stay, if they work completely self contained and without requiring an external connection ever over the lifespan…
Rivian software update bricks infotainment system, fix not obvious
321–330 of 386 posts
Re: Rivian software update bricks infotainment system, fix not obvious
#322Earlier quoted context omitted.
It'd be pretty silly to implement an OTA scheme that didn't check signatures before installing updates. That would mean any random attacker could soft-brick the module by sending an invalid image, which a development image should be to a production vehicle. You could get this situation if the application code accepted signatures the bootloader does not though. I can imagine that accidentally occurring.
Sure, but it could also be signed binaries inside the OTA, a variant of what you are talking about. IE OTA is a signed package, inside package are also signed binaries. OTA itself is properly signed, a single binary (infotainment) is signed with wrong key. While most OTA verifiers will verify the OTA signature (which this would pass), most don't verify the individual inside-package binary signatures at install time,…
Re: Rivian software update bricks infotainment system, fix not obvious
#323I used to work for a company that built satellite receivers that would be installed in all sorts of weird remote environments in order to pull radio or tv from satellite and rebroadcast locally. If we pushed a broken update it might mean someone from the radio company would have to make a trip to go pull the device and send it to us physically. Our upgrader did not run as root, but one time we had to move a file as r…
The person who built and released this might not have ever worked for your company, which might be why no one remembers building or releasing it.
Re: Rivian software update bricks infotainment system, fix not obvious
#324It's crazy to me that this is possible in the first place. Standard practice is to have a fleet of test vehicles that are effectively production except in an early release group. Or, you know, having an A/B boot partition scheme with a watchdog. Things that have been around for decades at this point. Disclaimer: Former Googler, Worked closely with Automotive.
What amazes me is that any grown up person thinks it is a good idea to update vehicles as if they were telephones Owners should have to bring the vehicle into a shop to have changes made, and they should be very rare. This lazy, control freakery of the worst kind Something very bad is going on happen and people will die before we realize that it is a stupid dangerous practice
What amazes me is that any grown up person thinks it is a good idea to update telephones as if they were software and not phones.
Or rather that it is a good idea to have phones that need updates? Either way, we're all one 1/2 assed push update to a fridge, vacuum, washing machine, phone or car away from a really annoying day.
Re: Rivian software update bricks infotainment system, fix not obvious
#325Earlier quoted context omitted.
> GM is supposed to drop CarPlay in favor of whatever they are doing on their EVs IIRC its not just their EVs its all cars.
Shouldn't make such a bold IIRC statement correcting someone without first doing a quick Google to verify. https://www.caranddriver.com/news/a43488135/gm-apple-carplay... Specifically it's for the new Ultium EVs. Bolts, Lyriqs, Hummers will still have it.
Guess I didn't recall correctly. Thanks for pointing that out.
Re: Rivian software update bricks infotainment system, fix not obvious
#326I built a whole remote software update mechanism for a control binary that ran on 25k+ servers across multiple data centers. Rest assured that after the first time I messed it up (which required ssh into each box individually), I wrote a lot of unit and integration tests to make sure that it never failed to deploy again. One of the integration tests ensured that the app started up and could always go through the inte…
> This ran in CI and would fail the build if it didn't pass. I don't mean to be pedantic, but since we're talking about what should happen instead, this is insufficient. It works until the day you realize you made some kind of manual change to your CI infra, or that CI has some non-standard configuration that makes it work for you but not some significant fraction of the fleet. People should do what you described in…
Re: Rivian software update bricks infotainment system, fix not obvious
#327Earlier quoted context omitted.
As somebody currently working at an automaker on software systems, the amazing thing to me is that a mess up of this level doesn’t happen weekly. It’s rough out here.
Thank you. At least you're honest about it, the other day someone was trying real hard to convince me that software developers at automakers are made of magic fairy dust.
Re: Rivian software update bricks infotainment system, fix not obvious
#328Earlier quoted context omitted.
Having worked on 25K machines, I can assure you that it never deployed to every single machine and failed to do so in interesting ways all the time.
As a frontend web developer I'm constantly deploying software to many thousands of machines. And you know what? It's pretty damn simple.
Re: Rivian software update bricks infotainment system, fix not obvious
#329Earlier quoted context omitted.
As a frontend web developer I'm constantly deploying software to many thousands of machines. And you know what? It's pretty damn simple.
It's simple because we tolerate certain limitations in the web platform. If you had a hard requirement that a page load could never take more than 100ms, regardless of network conditions, you'd have quite a challenge on your hands.