<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.mib-helper.com/index.php?action=history&amp;feed=atom&amp;title=COMBO_HMI_ENGINEERING_MENU_in_Audi_MHI2</id>
	<title>COMBO HMI ENGINEERING MENU in Audi MHI2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.mib-helper.com/index.php?action=history&amp;feed=atom&amp;title=COMBO_HMI_ENGINEERING_MENU_in_Audi_MHI2"/>
	<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=COMBO_HMI_ENGINEERING_MENU_in_Audi_MHI2&amp;action=history"/>
	<updated>2026-06-11T07:49:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=COMBO_HMI_ENGINEERING_MENU_in_Audi_MHI2&amp;diff=270&amp;oldid=prev</id>
		<title>Mr-fix: Created page with &quot;By looking at the LSD.JXE and digging inside the key combos, it seams that there&#039;s a HMI hidden menu in Audi, Porsche, and Bentley builds.  == What&#039;s the key combination for HMI_EM? == &lt;code&gt;Keycode ID&lt;/code&gt; for it is &lt;code&gt;26&lt;/code&gt;, and it&#039;s called &lt;code&gt;KEY_COMBO_HMI_EM&lt;/code&gt;. Here&#039;s part of the code responsible for triggering the menu:   private void triggerComboKeyAction(int n, int n2) {   int n3 = this.getComboKeyCombination(n, n2);   if (n3 == 8) {    if (!this....&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=COMBO_HMI_ENGINEERING_MENU_in_Audi_MHI2&amp;diff=270&amp;oldid=prev"/>
		<updated>2025-02-18T21:02:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;By looking at the LSD.JXE and digging inside the key combos, it seams that there&amp;#039;s a HMI hidden menu in Audi, Porsche, and Bentley builds.  == What&amp;#039;s the key combination for HMI_EM? == &amp;lt;code&amp;gt;Keycode ID&amp;lt;/code&amp;gt; for it is &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt;, and it&amp;#039;s called &amp;lt;code&amp;gt;KEY_COMBO_HMI_EM&amp;lt;/code&amp;gt;. Here&amp;#039;s part of the code responsible for triggering the menu:   private void triggerComboKeyAction(int n, int n2) {   int n3 = this.getComboKeyCombination(n, n2);   if (n3 == 8) {    if (!this....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;By looking at the LSD.JXE and digging inside the key combos, it seams that there&amp;#039;s a HMI hidden menu in Audi, Porsche, and Bentley builds.&lt;br /&gt;
&lt;br /&gt;
== What&amp;#039;s the key combination for HMI_EM? ==&lt;br /&gt;
&amp;lt;code&amp;gt;Keycode ID&amp;lt;/code&amp;gt; for it is &amp;lt;code&amp;gt;26&amp;lt;/code&amp;gt;, and it&amp;#039;s called &amp;lt;code&amp;gt;KEY_COMBO_HMI_EM&amp;lt;/code&amp;gt;. Here&amp;#039;s part of the code responsible for triggering the menu:&lt;br /&gt;
&lt;br /&gt;
 private void triggerComboKeyAction(int n, int n2) {&lt;br /&gt;
  int n3 = this.getComboKeyCombination(n, n2);&lt;br /&gt;
  if (n3 == 8) {&lt;br /&gt;
   if (!this.framework.isPBuild()) {&lt;br /&gt;
    this.kbdListener.triggerHmiKeyPressedEvent(26, this.key1TerminalID);&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
What does it mean? Allow me to fill in couple variables with specific values:&lt;br /&gt;
&lt;br /&gt;
 private void triggerComboKeyAction(3, 11) { //this is triggered by key TEL (3) and SW_NE (11)&lt;br /&gt;
  int n3 = this.getComboKeyCombination(3, 11); // this will return n3 = 8&lt;br /&gt;
  if (n3 == 8) {&lt;br /&gt;
   if (!this.framework.isPBuild()) { //this checks if the build is NOT flagged as production release&lt;br /&gt;
    this.kbdListener.triggerHmiKeyPressedEvent(26, this.key1TerminalID); //this triggers the HMI_EM (26) keycode&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SW_NE&amp;lt;/code&amp;gt; is the upper-right software button. Sadly it is not present in Audi A3 8V facelift.&lt;br /&gt;
&lt;br /&gt;
== How to mark release as not production build? ==&lt;br /&gt;
Let&amp;#039;s check how the &amp;lt;code&amp;gt;isPBuild()&amp;lt;/code&amp;gt; function looks like.&lt;br /&gt;
&lt;br /&gt;
 public boolean isPBuild() {&lt;br /&gt;
  return this.getVersionInfo().isProductionVersion();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
...and let&amp;#039;s look for the &amp;lt;code&amp;gt;isProductionVersion()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
 public boolean isProductionVersion() {&lt;br /&gt;
  return Boolean.getBoolean(&amp;quot;IS_PRODUCTION_MODE&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This looks like one of the VMOPTIONS flag. So let&amp;#039;s modify the &amp;lt;code&amp;gt;run_lsd.sh&amp;lt;/code&amp;gt; script by editing this part and setting it to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 ## Mark as production version which disables some developer features&lt;br /&gt;
 VMOPTIONS=&amp;quot;$VMOPTIONS -DIS_PRODUCTION_MODE=false&amp;quot;&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
</feed>