MIB Combo Key shortcuts
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
).
Key Combos
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 ??
Porsche Combinations
{6, 4, 10, 2500} // CAR + NAV = MAP_key {6, 78, 9, 100} // CAR + MENU = OPTION_key {6, 5, 11, 100} // CAR + TRAFFIC = SOURCE_key {6, 1, 1, 2500} // CAR + MEDIA = REM {6, 15, 2, 2500} // CAR + TUNER = GEM {6, 3, 6, 100} // CAR + TEL = PTT_key {15, 1, 4, 100} // TUNER + MEDIA = Screenshot {15, 3, 7, 2500} // TUNER + TEL = Error dump {15, 4, 12, 100} // TUNER + NAV = BACK_key {15, 16, 8, 2500} // TUNER + MENU_ENTER? = HMI_EM {15, 78, 8, 2500} // TUNER + VOL_ENTER? = HMI_EM
Porsche GEN2 Combinations
{4, 1, 1, 5000}, // NAV + MEDIA = REM {4, 15, 2, 5000}, // NAV + TUNER = GEM {4, 16, 4, 2500}, // NAV + MENU_ENTER = Screenshot {4, 98, 4, 2500}, // NAV + SK_WEST/SK_NW = Screenshot {4, 8, 4, 2500}, // NAV + SK_NW = Screenshot {3, 97, 8, 2500}, // TEL + SK_EAST/SK_NE = HMI_EM {3, 11, 8, 2500}, // TEL + SK_NE = HMI_EM {3, 98, 7, 2500}, // TEL + SK_WEST/SK_NW = Error Dump {3, 8, 7, 2500}, // TEL + SK_NW = Error Dump {6, 1, 1, 5000}, // CAR + MEDIA = REM {6, 15, 2, 5000} // CAR + TUNER = GEM {6, 16, 4, 2500}, // CAR + MENU_ENTER = Screenshot {6, 98, 4, 2500}, // CAR + SK_WEST/SK_NW = Screenshot = Screenshot {6, 8, 4, 2500}, // CAR + SK_NW = Screenshot {86, 97, 8, 2500}, // TONE + SK_EAST/SK_NE = HMI_EM {86, 11, 8, 2500}, // TONE + SK_NE = HMI_EM {86, 98, 7, 2500}, // TONE + SK_WEST/SK_NW = Error Dump {86, 8, 7, 2500}, // TONE + SK_NW = Error Dump {16, 1, 1, 2500}, // MENU_ENTER + MEDIA = REM {16, 103, 2, 2500}, // MENU_ENTER + SOURCE = GEM {16, 3, 6, 100}, // MENU_ENTER + TEL = PTT_key {16, 4, 4, 100}, // MENU_ENTER + NAV = Screenshot {16, 106, 7, 2500}, // MENU_ENTER + OPTION = Error Dump {16, 7, 7, 2500}, // MENU_ENTER + TONE = Error Dump {16, 6, 8, 2500}, // MENU_ENTER + CAR = HMI_EM {16, 110, 4, 100}, // MENU_ENTER + HYBRID = Screenshot {88, 88, 4, 100}, // VOL_ENTER + VOL_ENTER = Screenshot {17, 17, 4, 100} // VOL_ENTER + VOL_ENTER = Screenshot
Bentley Combinations
{13, 1, 1, 2500}, // BACK + MEDIA = REM {13, 11, 2, 2500}, // BACK + SK_NE = GEM {13, 16, 6, 100}, // BACK + MENU_ENTER = PTT {13, 3, 7, 2500}, // BACK + TEL = Error Dump {13, 4, 11, 100}, // BACK + NAV = SOURCE_key {13, 8, 9, 100}, // BACK + SK_NW = OPTION_key {13, 15, 10, 100}, // BACK + TUNER = MAP_key {15, 8, 4, 100}, // TUNER + SK_NW = Screenshot {15, 1, 8, 2500} // TUNER + MEDIA = HMI_EM
Remapping
//TODO - VW/SEAT/Skod //TODO - Audi/Porsche
Adding new combinations
//TODO