jilleb / mib2-toolbox

The ultimate MIB2-HIGH toolbox.
MIT License
617 stars 145 forks source link

Feature request: using mmi maps and google maps at the same time #10

Closed kurucan closed 2 years ago

kurucan commented 5 years ago

I have a feature request: Currently, mmi does not allow to use mmi maps with google maps navigation on android auto. I am just wondering If this tool would help disabling this limitation of mmi?

jilleb commented 5 years ago

I've been investiging this for about a year, trying many possible solutions but so far no luck... I hope to be able to find a displaymanager context that doesn't disable the cluster navi screen.

kurucan commented 5 years ago

It is great to hear that someone investigating over this! Hope you find a solution..

hxigor commented 5 years ago

You mean this? MIB2.5High map at Virtual Cockpit display and Waze through AndroidAuto at MIB2.5High screen:

olli991 commented 5 years ago

This only works as long as you don't have active navigation... just showing both at the same time is possible. It would be nice if you can use active Waze navigation and have the carnavi-card (without active navigation) in the vc

hxigor commented 5 years ago

Another try - Waze through Android Auto with active navigation + map from built in navigation without active guidance at Virtual Cockpit. I was travelling about 30 minutes total, the shot was taken after 15 minutes drive. Everything worked. Unit is MIB2.5High with Skoda 1440 + AID is 0640.

jilleb commented 5 years ago

Yes, but the goal is : have active guidance on both

hxigor commented 5 years ago

@jilleb Ok will try it tomorrow morning. I know it didn't work with my previous Amundsen unit, but I was surprised it works with Columbus. @olli991 wrote "active Waze navigation without active navigation in the VC", so I did exactly that and this worked for me 👌

olli991 commented 5 years ago

@hxigor how do you even get this to work. My vc is killing itself when I start navigation in waze. Sindeinfo: using carplay not android auto

jilleb commented 5 years ago

On Waze it works when guidance isn't active on the main navi. I am going through all the navi files on the MIB2 right now, to see if there's anything regarding shutting down navi in case of mobile navigation active.

hxigor commented 5 years ago

Here you are - active guidance on Waze to address 1 at MIB screen + active guidance through build in navigation to different address 2 at VC. I drove the car about 25 minutes, everything worked and I haven't received the error message. AID has sw 0640, MIB has Skoda 1440, it's stock with MT2 installed + patched MIBRoot by myself for disabling FEC check as the car had just MIB2Std navi from factory. Maybe this is the reason it works?

Video: (https://1drv.ms/v/s!Ajw8QAhefKwVkusj6SrvCNRU1S-Mdg)

olli991 commented 5 years ago

Could you try it with carplay instead of Android Auto maybe? Maybe the toolkit android patch is another variable here? Just thinking

hxigor commented 5 years ago

@olli991 Unfortunately I don't have any iPhone around, I got rid of every Apple device in our family last year. I tried uninstalling the toolkit android patch / restoring the gal.json from backup, it had no difference on this behaviour. I can't install stock sw to my MIB unit, as the maps wouldn't work with it.

jilleb commented 5 years ago

I checked mibroot, and there are some functions regarding "navigation active on mobile". It can probably be patched in the binaries, although it would be nicer if it could be done through some config file.

image

andy0172 commented 4 years ago

For Carplay its not working, as soon as I start navigation within carplay the map is disapearing from VC

adrianmihalko commented 4 years ago

This would be awesome. While I love built in navigation (it faster than phone GPS), I would like to view Waze/Google Maps on the bug screen (because of traffic info etc.).

tudorsss commented 4 years ago

Hey @jilleb , did you manage to figure it out? To have waze navigating on main, but keep original map active on AID?

I can help too, but I’ll get my VCDS in two months only.

Hamburgpriat commented 4 years ago

Here you are - active guidance on Waze to address 1 at MIB screen + active guidance through build in navigation to different address 2 at VC. I drove the car about 25 minutes, everything worked and I haven't received the error message. AID has sw 0640, MIB has Skoda 1440, it's stock with MT2 installed + patched MIBRoot by myself for disabling FEC check as the car had just MIB2Std navi from factory. Maybe this is the reason it works? Video: (https://1drv.ms/v/s!Ajw8QAhefKwVkusj6SrvCNRU1S-Mdg)

It is working for me too. Firmware 1382. No Patch, no odb, it is stock for now... First i start the Skoda Navi Route, than the Waze navi. Both navigate at the same time. Little wired if you have voice on on Both 😂. It is not possible with Google maps.

Aintejo commented 4 years ago

I checked mibroot, and there are some functions regarding "navigation active on mobile". It can probably be patched in the binaries, although it would be nicer if it could be done through some config file.

image

Hi Jille! May I know how you read that information ? I mean, is that the firmware file itself or you dump the info from some eeprom or other kind of memory from the infotainment ? And which is the software you use to read that information ? To display it like in your picture.

I would like to try to help with this small feature and specially with the CarPlay/AndroidAuto Wireless. I said "try to" cause I don't have any experience at all with this stuff (retrofits, MQB platform, CanBus...). But I'm a Telecom Engineer and I have some basic programming skills at different levels from my school period (among others, I coded some stuff on Python for my Master Thesis and I hadn't touched it before). I'm quite curious and I can self-learn. I just need an entry point which would allow me to start investigating : some tips and the basis

If you have just a few minutes I'm willing to help. Feel free to contact me. I don't know if it's possible to PM me here, but I'm also available on IG with the same username

Best regards!

jilleb commented 4 years ago

Hello @Aintejo . This view is from Ghidra. It's a free tool and I can highly suggest it :-)

olli991 commented 3 years ago

@andrewleech just tagging you here because we talked about this issue. We already investigated some things.

andrewleech commented 2 years ago

Finally made progress - navigation active in both vc (built in nav) and Android auto, though you currently have to input the destination manually into each: original_1a010cae-f8c3-4214-b821-719d2b6c4da3_PXL_20211227_105711581 It's based on a new technique for patching classes from the main lsd.jxe compiled java package... @jilleb would a jar with stuff like this be suitable for inclusion here, or would it better to keep it externally sourced with just an install script here or something?

adrianmihalko commented 2 years ago

You are the king! I can't wait to try out. I have iOS, but I a will happy to buy a simple Android phone if this will work.

tudorBrad commented 2 years ago

What about iOS?

andrewleech commented 2 years ago

I expect to get iOS working as well, best car scenario is to share destination from AA to internal nav too but that'sa stretch goal

jilleb commented 2 years ago

Finally made progress - navigation active in both vc (built in nav) and Android auto, though you currently have to input the destination manually into each: original_1a010cae-f8c3-4214-b821-719d2b6c4da3_PXL_20211227_105711581 It's based on a new technique for patching classes from the main lsd.jxe compiled java package... @jilleb would a jar with stuff like this be suitable for inclusion here, or would it better to keep it externally sourced with just an install script here or something?

Great work!!

I currently cannot test it, because for some weird reason my Android Auto is behaving like this on its own 😨 But well done! :-)

About the lsd.jxe/jar: It depends on the solution. If it's version independent, it would be nice to have a generic solution, but sharing the lsd.jxe for a specific version is fine as well. Maybe it's useful to write a how-to patch guide on the wiki?

andy0172 commented 2 years ago

I can try it on skoda with Android and iOS if you like I can give it a try.

andrewleech commented 2 years ago

I'll push up an MR with the patch installer when I'm at my computer next, in the mean time I've uploaded my lsd patching toolkit here: https://gitlab.com/alelec/mib2-lsd-patching

It doesn't actually need patching of the lsd file itself, I've been able to convert it to jar, decompile the classes then modify / recompile individual classes with compatible versioning against the extracted jar. You can then put just the recompiled class in a jar and modify the Java (j9) startup script/command line on the unit to prepend the class path to read the jar before the lsd.jxe

So yeah, at the moment distribution of the patch involves a jar with just 2 classes in it (likely to be 4 classes once I get iOS support)

I don't yet know how compatible these particular classes are with different brand/versions but I've got a few lsd's to extract and compare against when I get a few minutes. Hopefully they're all the same, or close enough I can make my patched class detect/support all of them. If not, can have a few patched jars and the install script decide which one needs to be installed.

It would also be possible to patch on-unit, I've already compiled a copy of python to run on mib, so could run the extraction / convert to jar on the mib. Then use Krakatau to disassemble, patch the disassembled files and reassemble. This would probably be pretty slow though and I'm not sure I can be bothered if a shared jar will work.

andrewleech commented 2 years ago

I've got Carplay support working too now: https://github.com/jilleb/mib2-toolbox/pull/189#issuecomment-1003918265

Andy-GitGit commented 2 years ago

Hi all, I've been looking for this feature for the longest time and chanced upon this thread. I've a VW Passat B8 2016 with AID. I'm using Android Auto with either Waze or Google Maps. However, after trying yo understand and piece together what has been posted here, I still don't know how to get this feature to disengage the blanking of car's Sat-Nav when Waze/GoogleMaps is being set to route. Is there any easier way or code already done, so that it can be easily "plugged" into the car? (pardon my simple terminology). Pardon me if I missed something here that had addressed my query.

Thanks in advance

Oh, also, any dangers/pitfalls to implementing this?

andrewleech commented 2 years ago

@Andy-GitGit As linked above my patch to enable this is documented in https://github.com/jilleb/mib2-toolbox/pull/189 and has been merged into master. There's a download link for a copy of toolbox from that top post on that merge request.

Yes there are risks installing this, just like anything unsupported. To be perfectly safe you could get SSH login working beforehand and/or have a copy the the mib firmware matching your unit available to re-install if anything really breaks - that being said though normally the worst failure on an older/unsupported firmware is AA or CP not working anymore, at which point you can go to in uninstall patch menu item in toolbox to revert the change and get everything back to normal.

Hendrik212 commented 2 years ago

This is awesome, works great on my unit (firmware MHI2_ER_VWG11_K3342_MU1427), using the current master branch.

Out of curiousity I decompiled the lsd.jxe from my unit with your toolkit @andrewleech and noticed that not all files in the "patched" folder are 1:1 present on my unit. For example "AndroidAutoGlobalProperties.java" is completely missing. Your unit is propably slightly newer. However, the patch works flawlessly nonetheless.

jilleb commented 2 years ago

Closing, because this is implemented

adrianmihalko commented 8 months ago

@jilleb is this also working for CarPlay? More Incredible Bash project has something for CarPlay, but unfortunately it does not worked on my unit (MHI2_ER_VWG11_K3342_MU1427).