MIB Combo Key shortcuts: Difference between revisions

From MIB-Helper.com Wiki
Jump to navigation Jump to search
No edit summary
Line 15: Line 15:
== Additional info ==
== Additional info ==
=== MU Reset ===
=== MU Reset ===
YT video → not embedded into HMI logic.
Main unit is reset with an external signal from key panel. This is not CAN-BUS signal - it's a high state send to one of the [[QuadLock]] pins (<code>ZR_Reset</code>).


=== Remapping ===
<youtube> 9jeVCafl9pA </youtube>
 
=== Adding new combinations ===


=== Research ===
=== Research ===


Possible actions:
Possible actions found in [[LSD.JXE]] from Audi MHI2:
     public static final int COMBO_INVALID; // 0  
     public static final int COMBO_INVALID; // 0  
     public static final int COMBO_RED_ENGINEERING_MENU; // 1
     public static final int COMBO_RED_ENGINEERING_MENU; // 1
Line 38: Line 36:
     public static final int COMBO_IRC_BACKUP; // 13 ??
     public static final int COMBO_IRC_BACKUP; // 13 ??


Audi combinations (key1, key2, action, time delay):
More information from the <code>triggerComboKeyAction()</code> function:
  if (n3 == 1) {
    this.kbdListener.triggerHmiKeyPressedEvent(24, this.key1TerminalID);
  } else if (n3 == 2) {
    this.framework.getStartupMgr().requestStartBundle("AppDevelopment");
    this.kbdListener.triggerHmiKeyPressedEvent(25, this.key1TerminalID);
  } else if (n3 == 8) {
    if (!this.framework.isPBuild()) {
      this.kbdListener.triggerHmiKeyPressedEvent(26, this.key1TerminalID);
    }
  } else if (n3 == 4) {
    this.makeScreenshot();
  } else if (n3 == 6) {
    if (!this.framework.isPBuild()) {
      this.kbdListener.triggerKeyPressedEvent(50, this.key1TerminalID);
      this.kbdListener.triggerKeyReleasedEvent(50, this.key1TerminalID);
    }
  } else if (n3 == 7) {
    if (!this.framework.isPBuild()) {
      this.kbdListener.blinkInfo("#####  write error dump  #####");
      this.framework.getErrorMgr().handleError(null, "error dump triggered manually", 0, 0, 4);
    }
  } else if (n3 == 13) {
    this.kbdListener.blinkInfo("#####  IRC Backup triggered  #####");
    this.framework.getInfotainmentrecorder().backupTrigger();
  } else if (!this.framework.isPBuild() && this.framework.isPorsche()) {
    if (n3 == 9) {
                this.kbdListener.triggerHmiKeyPressedEvent(84, this.key1TerminalID);
    } else if (n3 == 10) {
                this.kbdListener.triggerHmiKeyPressedEvent(82, this.key1TerminalID);
    } else if (n3 == 11) {
                this.kbdListener.triggerHmiKeyPressedEvent(83, this.key1TerminalID);
    } else if (n3 == 12) {
                this.kbdListener.triggerHmiKeyPressedEvent(15, this.key1TerminalID);
    }
  }
 
Funny thing - next to REM and GEM, there's also HMI EM. Never seen it, but it's there. But it's not available in production firmware, secured with the <code>!this.framework.isPBuild()</code> function which checks if firmware is a production release. Wasn't there a [[LSD.JXE#lsd.sh_flags|lsh.jxe flag]] in the lsd.sh script that could overwrite this flag?
 
Audi combinations (key1, key2, action, long press timer):
  {13, 8, 1, 5000}, // BACK + TOP_LEFT = REM
  {13, 8, 1, 5000}, // BACK + TOP_LEFT = REM
  {13, 98, 1, 5000}, // BACK + TOP_LEFT = REM
  {13, 98, 1, 5000}, // BACK + TOP_LEFT = REM
Line 75: Line 112:
  {4, 97, 13, 2500}, // NAV + TOP_RIGHT = IRC_BACKUP ??
  {4, 97, 13, 2500}, // NAV + TOP_RIGHT = IRC_BACKUP ??
  {6, 97, 13, 2500}; // CAR + TOP_RIGHT = IRC_BACKUP ??
  {6, 97, 13, 2500}; // CAR + TOP_RIGHT = IRC_BACKUP ??
=== Remapping ===
//TODO - VW/SEAT/Skod
//TODO - Audi/Porsche
=== Adding new combinations ===
//TODO

Revision as of 17:34, 20 January 2025

Brand-specific key combinations

Audi

model-specific

Bentley

Bugatti

Lamborghini

Porsche

Seat / Skoda / Volkswagen / MAN

Additional info

MU Reset

Main unit is reset with an external signal from key panel. This is not CAN-BUS signal - it's a high state send to one of the QuadLock pins (ZR_Reset).

Research

Possible actions found in LSD.JXE from Audi MHI2:

   public static final int COMBO_INVALID; // 0 
   public static final int COMBO_RED_ENGINEERING_MENU; // 1
   public static final int COMBO_GREEN_ENGINEERING_MENU; // 2
   public static final int COMBO_SCREEN_SHOT; // 4
   public static final int COMBO_MENU_EXTENSIONS; // 5 ??
   public static final int COMBO_PTT; // 6 ??
   public static final int COMBO_ERROR_DUMP; // 7 ??
   public static final int COMBO_HMI_ENGINEERING_MENU; // 8 ??
   public static final int COMBO_OPTION; // 9 ??
   public static final int COMBO_MAP; // 10 ??
   public static final int COMBO_SOURCE; // 11 ??
   public static final int COMBO_BACK; // 12 ??
   public static final int COMBO_IRC_BACKUP; // 13 ??

More information from the triggerComboKeyAction() function:

  if (n3 == 1) {
    this.kbdListener.triggerHmiKeyPressedEvent(24, this.key1TerminalID);
  } else if (n3 == 2) {
    this.framework.getStartupMgr().requestStartBundle("AppDevelopment");
    this.kbdListener.triggerHmiKeyPressedEvent(25, this.key1TerminalID);
  } else if (n3 == 8) {
    if (!this.framework.isPBuild()) {
      this.kbdListener.triggerHmiKeyPressedEvent(26, this.key1TerminalID);
    }
  } else if (n3 == 4) {
    this.makeScreenshot();
  } else if (n3 == 6) {
    if (!this.framework.isPBuild()) {
      this.kbdListener.triggerKeyPressedEvent(50, this.key1TerminalID);
      this.kbdListener.triggerKeyReleasedEvent(50, this.key1TerminalID);
    }
  } else if (n3 == 7) {
    if (!this.framework.isPBuild()) {
      this.kbdListener.blinkInfo("#####   write error dump   #####");
      this.framework.getErrorMgr().handleError(null, "error dump triggered manually", 0, 0, 4);
    }
  } else if (n3 == 13) {
    this.kbdListener.blinkInfo("#####   IRC Backup triggered   #####");
    this.framework.getInfotainmentrecorder().backupTrigger();
  } else if (!this.framework.isPBuild() && this.framework.isPorsche()) {
    if (n3 == 9) {
               this.kbdListener.triggerHmiKeyPressedEvent(84, this.key1TerminalID);
    } else if (n3 == 10) {
               this.kbdListener.triggerHmiKeyPressedEvent(82, this.key1TerminalID);
    } else if (n3 == 11) {
               this.kbdListener.triggerHmiKeyPressedEvent(83, this.key1TerminalID);
    } else if (n3 == 12) {
               this.kbdListener.triggerHmiKeyPressedEvent(15, this.key1TerminalID);
    }
  }

Funny thing - next to REM and GEM, there's also HMI EM. Never seen it, but it's there. But it's not available in production firmware, secured with the !this.framework.isPBuild() function which checks if firmware is a production release. Wasn't there a lsh.jxe flag in the lsd.sh script that could overwrite this flag?

Audi combinations (key1, key2, action, long press timer):

{13, 8, 1, 5000}, // BACK + TOP_LEFT = REM
{13, 98, 1, 5000}, // BACK + TOP_LEFT = REM
{4, 1, 1, 5000}, // NAV + MEDIA = REM
{6, 1, 1, 5000}, // CAR + MEDIA = REM
{13, 9, 2, 5000}, // BACK + BOTTOM_LEFT = GEM
{6, 15, 2, 5000}, // CAR + TUNER = GEM
{4, 15, 2, 5000}, // NAV + TUNER = GEM
{9, 12, 4, 2500}, // BOTTOM_LEFT + BOTTOM_RIGHT = Screenshot
{4, 16, 4, 2500}, // NAV + INC_VOL_ENTER = Screenshot
{4, 98, 4, 2500}, // NAV + TOP_LEFT = Screenshot
{4, 8, 4, 2500}, // NAV + TOP_LEFT = Screenshot
{6, 8, 4, 2500}, // CAR + TOP_LEFT = Screenshot
{6, 16, 4, 2500}, // CAR + INC_VOL_ENTER = Screenshot
{6, 98, 4, 2500}, // CAR + TOP_LEFT = Screenshot
{9, 8, 6, 2500}, // BOTTOM_LEFT + TOP_LEFT = Press To Talk ??
{86, 16, 6, 2500}, // TONE + INC_VOL_ENTER = Press To Talk ??
{3, 16, 6, 2500},  // TEL + INC_VOL_ENTER = Press To Talk ??
{86, 8, 7, 2500}, // TONE + TOP_LEFT = Error Dump ??
{9, 13, 7, 2500}, // BOTTOM_LEFT + BACK = Error Dump ??
{3, 8, 7, 2500}, // TEL + TOP_LEFT = Error Dump ??
{3, 98, 7, 2500}, // TEL + TOP_LEFT = Error Dump ??
{86, 98, 7, 2500}, // TONE + TOP_LEFT = Error Dump ??
{3, 11, 8, 2500}, // TEL + TOP_RIGHT = HMI_ENGINEERING_MENU ??
{86, 11, 8, 2500}, // TONE + TOP_RIGHT = HMI_ENGINEERING_MENU ??
{86, 97, 8, 2500}, // TONE + TOP_RIGHT = HMI_ENGINEERING_MENU ??
{3, 97, 8, 2500}, // TEL + TOP_RIGHT = HMI_ENGINEERING_MENU ??
{4, 11, 13, 2500}, // NAV + TOP_RIGHT = IRC_BACKUP ??
{6, 11, 13, 2500}, // CAR + TOP_RIGHT = IRC_BACKUP ??
{4, 97, 13, 2500}, // NAV + TOP_RIGHT = IRC_BACKUP ??
{6, 97, 13, 2500}; // CAR + TOP_RIGHT = IRC_BACKUP ??


Remapping

//TODO - VW/SEAT/Skod //TODO - Audi/Porsche

Adding new combinations

//TODO