[colug-432] disassemble arm .so files

Rick Hornsby richardjhornsby at gmail.com
Sun Oct 4 20:59:31 EDT 2015


Bought a new car a couple of months ago, and it turns out to be running Linux.  And I can ssh into the car.  uname -a:

	Linux cmu 3.0.35 #9 SMP PREEMPT Sat Oct 25 16:40:22 EDT 2014 armv7l GNU/Linux

Cool.  From everything I can figure out, this “infotainment” system is based on the OpenCar SDK[1] - Javascript.  So it should be open, and adding new apps[2] should be possible.  To be fair - I’m not 100% sure that it isn’t possible yet, I haven’t tried to actually change anything in the car yet.

I have access to the entire filesystem (r/w, if I want) and I have the complete(?) next version of software (the updater file) than my car came with - so I have a fairly comprehensive bucket of stuff to examine.  But there’s also large number of compiled .so library files for what seems like pretty much everything, i.e.:

libjciuiaaharadio.so
libjciuiaamradio.so
libjciuiaaudiosettings.so
libjciuiaauxin.so

jci = johnson controls
uia = variable name that in the javascript refers to application identifiers

That definitely does not jive with the OpenCar model, if I need to compile a library for every app I want to create.

And that’s where I’m completely out of my depth.  I know the system architecture is ARM, but I don’t know how to understand more than that, or what to do with it since the only computers I have are x86.  I know of QEMU, but no idea what to do with it.

Specifically, I’d like to be able to decompile the .so files to see what they’re doing?  I’m trying objdump, but that’s not going to work it seems since my underlying architecture is x86?  If I can somehow emulate an ARM hardware layer and actually run the software that would be good (I think?)


Why - well, besides the sheer curiosity of what’s possible, I eventually want to for example 
* replace the painfully stupid native pandora app, which isn’t actually much of an app, but rather depends entirely on a tenuous “accessory” link to the real Pandora app running on my phone
* add a screen that shows coolant temp, oil pressure, etc[3]
* add an app that goes directly to my favorite streaming audio, without having to Bluetooth it from the phone

The last two I’ve more or less been able to do in the OpenCar simulator - so they maybe should be doable if I can figure out what’s up with the .so library thing.


thanks!


[1] https://insidetrack.opencar.com
[2] http://www.mazda3hacks.com/doku.php?id=apps:addingtocar
[3] https://insidetrack.opencar.com/application/index/documentationdevelop?category=developers-guide&section=tutorials&page=working-with-vehicle-network-data-part-1


More information about the colug-432 mailing list