mib-std2-pq-zr-toolbox icon indicating copy to clipboard operation
mib-std2-pq-zr-toolbox copied to clipboard

Head Unit Button Mapping

Open ianmarmour opened this issue 3 years ago • 12 comments

This isn't so much a but report as a potential feature request and also to spur on some conversion with folks who know more then I do about this topic. I'm interested in picking up one of the following displays,

https://www.ebay.com/itm/2020-VW-JETTA-ATLAS-TIGUAN-GTI-RADIO-MEDIA-NAV-APP-DASH-DISPLAY-UNIT-5G6919605D/254866104006?hash=item3b57341ec6:g:o9AAAOSw55ZgJ08f

These displays "can" be retrofit onto a 2016 Volkswagen Golf GTI my particular model is a 2016 Volkswagen Golf GTI with Autobahn Trim, Fender Audio, App Connect and MIB2 with Discovery Media + Nav.

It's been noted that these displays function correctly on the 2017 model year of GTI's/R's (mostly there are some potentially false reports of dysfunctional app buttons on 2017 as well but mostly they all work)

Considering these particular displays work 100% correctly with the exception of the App button on 2016 MIB2 (Discovery Media + Nav) I assume somewhere within the Firmware of the head unit there is a configuration that can be specified that will make this function correctly, I've spent a few hours digging through various MIB2 and MIB2 High Firmwares and haven't yet found anything that would specifically be controlling this functionality.

I was wondering if anybody here would have any ideas regarding how to make this work? I would imagine if it's simple enough folks would appreciate this as a feature, I'm happy to help out as well. A few outstanding questions to get a discussion started,

  • Is there a difference between MIB2 2016 (Discovery Media + Nav) and MIB2 2017 (Discovery Media + Nav)
  • If the answer to the previous question is false could this be firmware related? I don't have access to a 2017 (Discovery Media + Nav) system to dump both firmware's and compare them.
  • The area that looked the most promising to me at first glance was the /tsd/tmp/HMI/config directory particularly the configurationmnanager_map.res
  • Last note these displays are pulled from EU model Golf GTI's whereas I assume most of the customers were using NAR 2016 Golf GTI's (I know I am specifically) I wonder if this may have some impact as well.

Anyway hopefully this interests someone other then me I know there's quite a few users out there that would appreciate someone root causing this.

ianmarmour avatar Mar 23 '21 05:03 ianmarmour

... as far as I know the button "App" works on firmware 04 ... and higher in Technisat / Preh units

yox2019 avatar Mar 23 '21 16:03 yox2019

Yeah there's a ton of information going back and forth on various forums, youtube, reddit etc. Is this on a 2016 Model Year MIB2 Discovery Media + Nav Technisat Head Unit? I've heard the 2017 of the exact same unit does indeed work but for some reason the 2016 doesn't. I'm honestly guessing that is due to having an older firmware revision (what started me down this path in the first place) I imagine most folks on the VW reddit/forums haven't actually done firmware updates to their MIB2 2016 units because it's such a pain to do.

ianmarmour avatar Mar 23 '21 18:03 ianmarmour

I believe that you would have to modify screen firmware. If you look inside for example 0245 update package, there's a bunch of folders called DUV* and DUW*. Each for different version of the display.

mattcabb avatar Mar 23 '21 19:03 mattcabb

Yeah that was my biggest concern that is was directly loaded into the touchscreen firmware :/

ianmarmour avatar Mar 23 '21 19:03 ianmarmour

I believe that you would have to modify screen firmware. If you look inside for example 0245 update package, there's a bunch of folders called DUV* and DUW*. Each for different version of the display.

Thinking about this a little more if it was just the touchscreen firmware that is a difference between the two model years MIB2 units I would imagine there's somewhere else in the firmware that specifies which firmware to load depending on the display. If that isn't the case then simply removing or renaming the he 2017 models touchscreen firmware when updating to the new display should in theory resolve it

EDIT -

To add more fuel to the fire both of the firmwares in the 2016 and 2017 folder have identical sizes and filenames, granted I haven't dumped them yet to compare if they're actually identical or done any sort of checksum verification but at face value they appear to be the exact same file. So per @yox2019's comment it may just be folks haven't updated their MIB firmware in quite a while being the reason.

ianmarmour avatar Mar 23 '21 19:03 ianmarmour

... as I wrote, the "App" button appeared for the first time in units from fw 04 ... at least in the PQ model

yox2019 avatar Mar 23 '21 20:03 yox2019

I did the switch between traffic and app screens and all work as the button is wrote, so, probably it's more about the hardware than the software

ecarruda avatar Mar 24 '21 00:03 ecarruda

@ecarruda If you would mind providing the following it would be incredible helpful to try and root cause if this is a software configuration or hardware configuration issues,

  • Model/Make of Vehicle (I.E. Volkswagen Golf GTI 2016)
  • MIB Head Unit Version (Discover Pro, Discover Media, ETC along with MIB 1, MIB 2, MIB 2.5)
  • Display Version (I.E. Retrofit eGolf 8" Classic Style Matte, Retrofit 8", Retrofit 9.2")

The reason why I'm asking is that I'm fairly certain the hardware between the two models of vehicle 2016 and 2017 in regards to the MIB unit is identical which really would leave software to be the only difference (most likely the touchscreen firmware included in the software updates post 2016). It would explain why 2016 owners mostly don't have functional app buttons whereas 2017 almost exclusive do work.

ianmarmour avatar Mar 24 '21 22:03 ianmarmour

Hello, i have similar question to you. I have of course Technisat Discover Media in VW Sharan 2016. I have no "CAR" button on the right side, but only "TRAFFIC" button. I cannot enter menu with consumption statistics etc normally, only when activating and deactivating HYBRID menu via VCDS. is there any way to remap TRAFFIC button to CAR function? some units allows to enter the menu by VOICE+MENU+NAV triple push, but not my unit. Or some script that just adds the desired button to sliding menu?

thank you

Unit 5C0035680B, firmware MST2_EU_VW_PQ_P0254T

linomaniac avatar Jun 21 '21 07:06 linomaniac

You have to update software 03xx or 04xx will make the app button work, it is a forced update that can be done in someway how the toolbox is installed.

hdsantader avatar Jul 06 '21 01:07 hdsantader

You need to consider, that there are following Discover Media units: MIB STD2 PQ - for PQ35/PQ25 platform. They have the screen and the unit in one housing. Those are Technisat/Preh brand and have PQ 01xx/02xx/03xx/04xx/06xxT FW versions (depending on HW/brand). MIB STD2 ZR - for MQB/PQ26/PQ27/MQB-A0 platform. The screen is separate from the unit. They are connected by LVDS video cable. Those are also Technisat/Preh brand and use ZR 01xx/02xx/03xx/04xx/05xxT FWs (depending on the HW/brand). MIB2 STD - for PQ37 platform. The screen is separate from the unit. They are connected by LVDS video cable. Those are Delphi brand. And the latest FW version for them is 08xxD. But there are also new units with FW 05xxD

Depending on the car model/brand (VW/Skoda/Seat), there are different screens with different buttons. So if the screen does not match the unit (the pair was not officially tested by devs) - that is a lottery to get it working and you just need to play it or forget.

The FW part that handles presses of the buttons of the screen is not changable - signed by digital signatures so I doubt anybody will be able to fix that. In theory it is maybe possible to tweak screen's fw and just update but in practice it can lead to bricking the screen and nobody will be doing that.

lprot avatar Jul 10 '21 07:07 lprot

Is there already a solution? I have a Discover Media PQ E version. Updated the system from FW 02xx to 04xx and today I swapped front to the version with the app button. I now also have WLAN option working. But after swapping front to new version front, the APP button stil functions as Traffic button.

looks to me that this is hidden in the firmware.

NLdieseltje avatar Feb 09 '22 20:02 NLdieseltje

I'm not 100% sure, but it looks like DM/MIBHMI_480T/de/vw/mib/asl/internal/system/util/SystemKeyUtil.java (which i found here) contains key mapping in the transformDsiKeyIdToKeyListenerId function.

I'm guessing that case: 5 is traffic button. If one would change the return 4; to maybe return 34; it just might remap the button to AppConnect.

mrfixpl avatar Dec 17 '22 22:12 mrfixpl

Zrzut ekranu 2022-12-18 o 11 37 42

mrfixpl avatar Dec 28 '22 18:12 mrfixpl

Thanks @mrfixpl

NLdieseltje avatar Jan 04 '23 09:01 NLdieseltje

@NLdieseltje @mrfixpl Have you made any progress? I have a radio with a traffic button, which I would like to work to enter android auto/carplay, and I am interested in this.

Albertron86 avatar May 01 '23 12:05 Albertron86

@Albertron86 sorry no. Did not have the time. Next week I will receive some parts to repair an other DM. Then I can check if I´m able to modify that file.

NLdieseltje avatar May 03 '23 19:05 NLdieseltje

@Albertron86 sorry no. Did not have the time. Next week I will receive some parts to repair an other DM. Then I can check if I´m able to modify that file.

Ok no problem. If you manage to do something about it, I would really appreciate it if you would share it here. Greetings

Albertron86 avatar May 03 '23 19:05 Albertron86

Curious if any further progress is made on this. I have an MIB 2 unit I swapped into my 2015 Golf. It came from a 2017 golf. I would love to remap one of the buttons to go to the carplay by default

drewpul14 avatar Aug 12 '23 01:08 drewpul14

Still nothing found.

NLdieseltje avatar Aug 12 '23 18:08 NLdieseltje

Anyone know how to decompile the .res files?

Moccie avatar Nov 01 '23 00:11 Moccie

Anyone know how to decompile the .res files?

https://github.com/olli991/mib-std2-pq-zr-toolbox/blob/master/tools/extract-mcf.py

lprot avatar Nov 01 '23 07:11 lprot

Anyone know how to decompile the .res files?

https://github.com/olli991/mib-std2-pq-zr-toolbox/blob/master/tools/extract-mcf.py

And for .jxe files? I mean .res extensions not MCF, mcf already used to edit the themes!

Hope you can help me.

Moccie avatar Nov 01 '23 07:11 Moccie

Anyone know how to decompile the .res files?

https://github.com/olli991/mib-std2-pq-zr-toolbox/blob/master/tools/extract-mcf.py

And for .jxe files? I mean .res extensions not MCF, mcf already used to edit the themes!

Hope you can help me.

Res is just a helper file to mcf. Take a look inside of the script. For jxe google for decompiler.

lprot avatar Nov 01 '23 07:11 lprot

I'm not 100% sure, but it looks like DM/MIBHMI_480T/de/vw/mib/asl/internal/system/util/SystemKeyUtil.java (which i found here) contains key mapping in the transformDsiKeyIdToKeyListenerId function.

I'm guessing that case: 5 is traffic button. If one would change the return 4; to maybe return 34; it just might remap the button to AppConnect.

Did you get it to work, or do you know how to compress every .jxe back to its normal jxe format back? So it will work how it should? Extractor is jxetools but no packer or compiler back.

Moccie avatar Nov 01 '23 14:11 Moccie

Did you get it to work, or do you know how to compress every .jxe back to its normal jxe format back? So it will work how it should? Extractor is jxetools but no packer or compiler back.

I bet it simply won't work when you try to re-compile the decompiled code. i think also CFR decompiler warns about it. you also have no have all dependencies / imported files/function in decent quality. so it is not only about this one file. A simple solution is to take a hex editor and patch the bytes in the JAR or class file and decompile again and check what you did. But this is a pain/impossible with single byte numbers, as you likely wont find the correct one. It works ok with larger numbers that require 2 or better more bytes, as you wont have so many random search hits to try out. you can also try to open the class file with a java bytecode debugger to find the position in the file.

JAR /JXE is simply a ZIP file with 0 compression. But you might have issues with the CRC check failing after patching the JAR file. so be sure to change the CRC in the ZIP header as well, or patch your python zip library to ignore CRC fails instead of deleting the file.

jojomojo97 avatar Dec 20 '23 23:12 jojomojo97

Res is just a helper file to mcf.

not quite. res is a mostly generic ressourcefile format for multiple purposes, not only skins. but every res file has its own pitfalls

jojomojo97 avatar Dec 20 '23 23:12 jojomojo97

I was not able to solve this The issue is surely not in the screen. as soon as you swap screen, to newer version, the app button still works as traffic and if you use a old type screen on a new mainboard, the traffic button works as app button. This states clearly that it is managed by the mainboard.

NLdieseltje avatar Dec 24 '23 22:12 NLdieseltje

We found a solution within the res files. Stay tuned might take some time but remapping and even mapping new functions is possible

olli991 avatar Dec 24 '23 22:12 olli991

Done https://www.drive2.com/b/670108632616028099/

lprot avatar Mar 05 '24 18:03 lprot