Qibla Mekka Kaaba compass: Difference between revisions
No edit summary |
No edit summary |
||
Line 76: | Line 76: | ||
TODO | TODO | ||
[[Category:Software]] | |||
[[Category:Research]] |
Latest revision as of 13:20, 9 January 2025
There's a function in called Mekka Compass mentioned in Audi MMI User Manual [1] as well as on Twitter by Audi Middle East [2].
Looking at the firmware files, there are .kzb
files with GUI assets for this feature.
I would love to know how to enable this feature. Let's investigate Audi MHI2 MMI system to find some reference to the logic behind it.
Basic research
First thing that I tried was to enable compass
adaptation channels. Sadly, no change.
One of the VAG - MIB2 Telegram Group users suggested setting the TMC adaptation channel to specific value. But again - 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!
Actually, if we go back to the User Manual, we can see the information
Prayer compass *1)
Applies to: vehicles with prayer compass Important: The display must be set to the map view. Select: left control button > Mecca. The direction of prayer in relation to the current vehicle position will then be shown on the infotainment display.
*1) This function is only available for the markets of the Gulf Cooperation Council (GCC) member states.
This should be the main hint!
Effects
TODO