Qibla Mekka Kaaba compass
There's a function in called Mekka Compass mentioned in Audi MMI User Manual. Let's investigate how to enable it in the Audi MHI2 MMI system.
Basic research
First thing that I tried was to enable compass
adaptation channels. Sadly, no change.
Deep research
Since I had access to decompiled LSD.JXE, I started to search for "mekka" reference. I've found .kzb
references to GUI assets as well as function called isMekkaCompassAvailable
in file de/audi/thgu/navi/app/util/Util.java
:
public static final boolean isMekkaCompassAvailable(IFrameworkAccess iFrameworkAccess) { return iFrameworkAccess.getSysConst(4396) == 1; }
Looks like system constant 4396
stores information about the availability of the feature. So let's check where and how this value is set.
I've inspected file de/audi/mib/config/AbstractSysConstManager.java
and found this:
boolean bl2 = this.getSysConst(532) == 12; this.setSysConstBool(4396, bl2);
Looks simple. It checks if constant 532
is set to 12
. If yes, it set's the constant 4396
to true
. So where and how's the constant 532
set?
In the same file as above, there's part of the code that sets it:
this.setSysConst(532, coding.getCountry());
I'm not going to dig through the getCountry()
function, because I believe I know where it's leading me to. Let's check module 0x5F
long coding, byte 3 - byte_3_Country_Navigation. Which values can be coded there and if 12
would mean something?
"keine" 0 "EU" 1 "NAR" 2 "MSA" 3 "Korea" 4 "China" 5 "Japan" 6 "AsiaPacific" 7 "Australia" 8 "South Africa" 9 "NEAST" 10 "NMAfrica" 11 "MEAST" 12 "CentralAsia" 13 "India" 14 "Israel" 15 "Taiwan" 16 "MSA 2 (Chile)" 17 "China 2" 18 "China 3" 19
Bingo! 12
is MEAST
- Middle East! So it looks like all is needed is module 5F coding for proper region, and that's it!
Effects
TODO