Hi Guys,
First post here. This is the only place so far where I've found someone else trying to hack the CIC, so I thought I'd share some of my progress and observations.
So the CIC computer is running QNX operating system (version 6.3.2). The processor on this thing is some weird, hardly known Hitachi SuperH (sh4) - the same one used in Sega Dreamcast. You can download the QNX 6.3.2 SDK from their site, but good luck getting a License - the 30 day eval version they offer is only for version 7.0. With a bit of tinkering I did manage to get the compiler working and successfully compiled a hello world console app and ran it on the CIC. I'm now trying to figure out the graphics library to actually display something on the display. I'm not sure what my goal is yet, but I would like to make it run CarPlay/Android Auto or something like that.
If anyone is good with assembly, you could disassemble and take a look at the two main binaries:
* /usr/Hmi/bin/HmiMain (the main UI and entertainment features)
* /usr/HBproject/CicHighEceUsaSecond (larger binary that I belive is responsible for background services, logic, etc.)
Unfortunately, because the processor is so uncommon, the only usable reverse engineering tool is IDA Pro (which costs a lot of money)
As for the source code on GitHub that was mentioned earlier, it's only the open source parts the BMW uses in their code - it doesn't actually contain any of their proprietary code, so the repository is quite useless.
Btw, does anyone have the dvdinmotion binary file? I would love to take a look at it.