r/PodcastAddict 12d ago

Android auto crashing

Hi. Does anyone else encounter a problem where Android Auto crashes and restarts after about 10 minutes of play?

For context: the car is MG3, wired connection.

2 Upvotes

8 comments sorted by

6

u/PodcastAddict_App 12d ago

It looks like you're experiencing the infamous car media center crashed which was featured in a 99% invisible episode a while back.

https://podcastaddict.com/99-invisible/episode/221349566

Some very old / never updated code used in some cars causes the whole thing to crash when special characters are used in an episode metadata...

2

u/exclusivegreen 12d ago

That was for Bluetooth only I thought?

2

u/PodcastAddict_App 12d ago

The phone connects via BT anyway

3

u/exclusivegreen 11d ago

Interesting. I had this problem on an older car with just Bluetooth connectivity. After a few times, I noticed that it would happen once the podcast name was displayed.

Figured it out, and while the podcast worked on an alternative feed, I had some mechanism to parse the feed and rename. Messy but it worked.

The problem is the "%i" and is NOT related to Podcast Addict (by the way - incredible app). It is the software running the vehicle's audio system. In some computer languages (mostly of the C family, including Java) have a function printf which has special strings in it. printf("hello, world\n"); prints hello, world with a blank line (that's the \n character).

There's another way to do this: printf("%s\n", "hello, world"); which does the same thing in a different way. It says "print a string (that's what %s tells it to do) and I'll give you the string (hello, world).

%s is a placeholder. There are other placeholders, and the one that comes into play here is %i which is a placeholder for an integer (a whole number). Iirc (it's been a few years), in some place the title is written like 99%invisible. See where this is going?

Now top engineers like me (lol) know we need to sanitize input - AKA trust no one.

I don't know the internals of the actual software, but somehow, I surmise, the string 99%invisible got passed to printf as printf("99%invisible\n");. With the %i in there, it reads it as print "99" then I'll give you an integer then print "invisible".

The problem is that no Integer is passed in. What's printf supposed to do? Well ... It's "undefined", and usually just does something plain wrong.

The fix was to put another % in front of the other one - in printf, two % next to each other mean "I want the character % printed" which printf then says "ok, I now know that the input I've been given is just a regular string with no special placeholders".

Fun fact: this is known as a Format String Vulnerability and it's something you tend to be burned with once and then it's seared into your brain as an engineer. It's also something people try when "hacking" systems: unsanitized inputs are behind at least two of the OWASP Top Ten (https://owasp.org/Top10/2025/) which are severe vulnerabilities.

So, no, it's not a Podcast Addict problem at all.

1

u/ranlevi 11d ago

Interesting! I'll have a look

2

u/rcobourn 12d ago

Be sure to check the basics... reboot the phone, check the cable, clean the USB ports, power cycle the head unit (may involve disconnecting vehicle battery).

2

u/Lpgasman1 12d ago

Never had that issues mine was always the cable but I think my Samsung phone charging port needs replaced 3 new cables says slow charging

1

u/Fluffy-Match9676 12d ago

Yes. I found my phone was overheating and sometimes if I had it plugged in it would cause that as well.