Qibla Mekka Kaaba compass

From MIB-Helper.com Wiki
Revision as of 23:22, 8 January 2025 by Mr-fix (talk | contribs)
Jump to navigation Jump to search

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]. Let's investigate how to enable it in the Audi MHI2 MMI system.

Audi MMI Navigation display with Mekka Compass

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!

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