[Android Head-Units] Miwer:
MCU naming scheme

Ok here it goes... by disassembling one of the system files from 2.7.11, this is what I found:

DISCLAIMER: This does not mean, that you can change the features in the MCU firmware by renaming the .zip files. You can change how they are presented in the model choose list, but the firmware will remain the same.

This is purely for informational purpose, about how to identify the various .zip files. I take no responsibility for the accuracy of this information - Viewer Discretion Is Advised as they say.

... and before you ask - I don't know what all the features mean or do. The strings are copied from the source.

Model Choose:

This function looks for *.zip files in "/system/etc/mcu"

Translates zip names into various information for model choose list.

When selecting a model in the list, it unpacks the MCU file from the corresponding zip to "/data/tw/4bf18a00-297a-11e3-ab19-000c29ba27c0"

... and flashes it, I presume :fingers-crossed:

File naming scheme:

v.v.v-a-bb(b)-ccde.zip

Translates to:

"Car model(Version, Features, Audio chip, Tuner chip)"

v = Version

Used "as is" in building the model choose list.

a = ?? (hardware revision perhaps ?!)

(During model choose dialog creation, it looks like some value in the mcu is queried, and checked to be between 1 and 9999 (otherwise model choose aborts). Additionally [a] must match this value for the file to be included in the model choose list.

bb(b) = Car model (default "Normal")

Two or three digits. The two first digits are translated to the list below. A third optional digit translates to some additional feature.

10 = VW

20 = CRV/CIVIC

22 = CRIDER

30 = Camry/RAV4

40 = Mondeo

41 = Focus

42 = F350

50 = Mazda

51 = CX5

60 = IX35

61 = IX45

70 = Teana 2012

71 = Teana 2013

81 = Opel

90 = PSA508

F0 = V5

F1 = X80

xx1 = add "RZC" to features

xx2 = add "HC" to features

cc = Features (binary bitmask)

bit 0 (.......1) = RDS

bit 1 (......1.) = Sleep

bit 2 (.....1..) = AD

bit 3 (....1...) = 2Din FZ (bit 3 and 4 are mutually exclusive and mapped to some string array, no value exist if both bits are set)

bit 4 (...1....) = 1Din FZ (bit 3 and 4 are mutually exclusive and mapped to some string array, no value exist if both bits are set)

bit 5 (..1.....) = Color

bit 6 (.1......) = BC6 (most likely code for BlueCore6 module, supporting OBDII - thank you [MENTION=5835326]julsn[/MENTION]; ref. #4009)

bit 7 (1.......) = NODVD

d = Tuner chip (default 0)

0 = TEF662X

1 = SI47XX

2 = TEF665X

e = Audio chip (default 0)

0 = TDA7415

1 = Rohm37534

2 = TDA7719

Some examples:

4.2.15-1-10-2101 = "VW(4.2.15, RDS, Color, Rohm37534, TEF662X)"

4.2.15-5-30-8001 = "Camry/RAV4(4.2.15, NODVD, Rohm37534, TEF662X)"

4.2.15-8-10-E501 = "VW(4.2.15, RDS, AD, Color, BC6, NODVD, Rohm37534, TEF662X)"

4.2.15-11-902-4501 = "PSA508(4.2.15, HC, RDS, AD, NODVD, Rohm37534, TEF662X)"

Notice the numbers marked with RED ??

As stated above, the .zip file will only appear in the model choose list, if this number matches the previously queried value from the MCU. It's probably some hardware revision check, to make sure you only flash an MCU that's compatible with the hardware you have. I don't know for sure though.

So that's about all she wrote - have fun ;)

/Miwer

Edits:

31-07-2014 - Added information about BlueCore6 module. Minor layout change