<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.mib-helper.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mr-fix</id>
	<title>MIB-Helper.com Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.mib-helper.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mr-fix"/>
	<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=Special:Contributions/Mr-fix"/>
	<updated>2026-06-11T06:29:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MyAudi&amp;diff=441</id>
		<title>MyAudi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MyAudi&amp;diff=441"/>
		<updated>2026-05-20T07:34:10Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Audi’s connected-services ecosystem. &amp;lt;ref&amp;gt;https://www.audi.pl/pl/myaudi/information/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
The car communicates with Audi servers through:&lt;br /&gt;
* built-in LTE modem + eSIM/SIM&lt;br /&gt;
* or tethered phone hotspot (depends on market/features)&lt;br /&gt;
&lt;br /&gt;
The MMI logs into your myAudi account using:&lt;br /&gt;
* VIN&lt;br /&gt;
* key user registration&lt;br /&gt;
* Audi backend authentication&lt;br /&gt;
&lt;br /&gt;
The app can then exchange data with the vehicle:&lt;br /&gt;
* location&lt;br /&gt;
* fuel level&lt;br /&gt;
* service info&lt;br /&gt;
* navigation destinations&lt;br /&gt;
* remote commands (limited on older cars)&lt;br /&gt;
&lt;br /&gt;
== Endpoints ==&lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/Sapistudio/MyAudi/blob/9eb77dbd052b92eb5331e25849a256a60770182d/src/configs/myaudi.config.php#L12&amp;lt;/ref&amp;gt;&lt;br /&gt;
    &#039;ENDPOINTS&#039; =&amp;gt; [&lt;br /&gt;
        &#039;AUDI_API&#039; =&amp;gt; &#039;https://msg.audi.de&#039;,&lt;br /&gt;
        &#039;REGISTER_APP&#039; =&amp;gt; &#039;https://mbboauth-1d.prd.ece.vwg-connect.com/mbbcoauth/mobile/register/v1&#039;,&lt;br /&gt;
        &#039;AUDI_REVOKE&#039; =&amp;gt; &#039;https://id.audi.com/v1/revoke&#039;,&lt;br /&gt;
        &#039;AUDI_TOKEN&#039; =&amp;gt; &#039;https://id.audi.com/v1/token&#039;,&lt;br /&gt;
        &#039;VW_TOKEN&#039; =&amp;gt; &#039;https://mbboauth-1d.prd.ece.vwg-connect.com/mbbcoauth/mobile/oauth2/v1/token&#039;,&lt;br /&gt;
        &#039;VW_REVOKE&#039; =&amp;gt; &#039;https://mbboauth-1d.prd.ece.vwg-connect.com/mbbcoauth/mobile/oauth2/v1/revoke&#039;,&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/John6810/myaudi-api/blob/d5652e6472f53eecb022b223e2dee6d5eeb29b2b/docs/oauth-flow.md?plain=1#L51&amp;lt;/ref&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MyAudi&amp;diff=440</id>
		<title>MyAudi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MyAudi&amp;diff=440"/>
		<updated>2026-05-20T07:31:01Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Audi’s connected-services ecosystem. &amp;lt;ref&amp;gt;https://www.audi.pl/pl/myaudi/information/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
The car communicates with Audi servers through:&lt;br /&gt;
* built-in LTE modem + eSIM/SIM&lt;br /&gt;
* or tethered phone hotspot (depends on market/features)&lt;br /&gt;
&lt;br /&gt;
The MMI logs into your myAudi account using:&lt;br /&gt;
* VIN&lt;br /&gt;
* key user registration&lt;br /&gt;
* Audi backend authentication&lt;br /&gt;
&lt;br /&gt;
The app can then exchange data with the vehicle:&lt;br /&gt;
* location&lt;br /&gt;
* fuel level&lt;br /&gt;
* service info&lt;br /&gt;
* navigation destinations&lt;br /&gt;
* remote commands (limited on older cars)&lt;br /&gt;
&lt;br /&gt;
== Endpoints ==&lt;br /&gt;
&amp;lt;ref&amp;gt;https://github.com/Sapistudio/MyAudi/blob/9eb77dbd052b92eb5331e25849a256a60770182d/src/configs/myaudi.config.php#L12&amp;lt;/ref&amp;gt;&lt;br /&gt;
    &#039;ENDPOINTS&#039; =&amp;gt; [&lt;br /&gt;
        &#039;AUDI_API&#039; =&amp;gt; &#039;https://msg.audi.de&#039;,&lt;br /&gt;
        &#039;REGISTER_APP&#039; =&amp;gt; &#039;https://mbboauth-1d.prd.ece.vwg-connect.com/mbbcoauth/mobile/register/v1&#039;,&lt;br /&gt;
        &#039;AUDI_REVOKE&#039; =&amp;gt; &#039;https://id.audi.com/v1/revoke&#039;,&lt;br /&gt;
        &#039;AUDI_TOKEN&#039; =&amp;gt; &#039;https://id.audi.com/v1/token&#039;,&lt;br /&gt;
        &#039;VW_TOKEN&#039; =&amp;gt; &#039;https://mbboauth-1d.prd.ece.vwg-connect.com/mbbcoauth/mobile/oauth2/v1/token&#039;,&lt;br /&gt;
        &#039;VW_REVOKE&#039; =&amp;gt; &#039;https://mbboauth-1d.prd.ece.vwg-connect.com/mbbcoauth/mobile/oauth2/v1/revoke&#039;,&lt;br /&gt;
    ]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MyAudi&amp;diff=439</id>
		<title>MyAudi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MyAudi&amp;diff=439"/>
		<updated>2026-05-20T07:10:33Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: Created page with &amp;quot;Audi’s connected-services ecosystem. &amp;lt;ref&amp;gt;https://www.audi.pl/pl/myaudi/information/&amp;lt;/ref&amp;gt;  == How it works == The car communicates with Audi servers through: * built-in LTE modem + eSIM/SIM * or tethered phone hotspot (depends on market/features)  The MMI logs into your myAudi account using: * VIN * key user registration * Audi backend authentication  The app can then exchange data with the vehicle: * location * fuel level * service info * navigation destinations * re...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Audi’s connected-services ecosystem. &amp;lt;ref&amp;gt;https://www.audi.pl/pl/myaudi/information/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
The car communicates with Audi servers through:&lt;br /&gt;
* built-in LTE modem + eSIM/SIM&lt;br /&gt;
* or tethered phone hotspot (depends on market/features)&lt;br /&gt;
&lt;br /&gt;
The MMI logs into your myAudi account using:&lt;br /&gt;
* VIN&lt;br /&gt;
* key user registration&lt;br /&gt;
* Audi backend authentication&lt;br /&gt;
&lt;br /&gt;
The app can then exchange data with the vehicle:&lt;br /&gt;
* location&lt;br /&gt;
* fuel level&lt;br /&gt;
* service info&lt;br /&gt;
* navigation destinations&lt;br /&gt;
* remote commands (limited on older cars)&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=438</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=438"/>
		<updated>2026-05-19T07:39:59Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* GENERIC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GENERIC ==&lt;br /&gt;
 35 ← KombiActivePopup&lt;br /&gt;
 42 ← MAIN_POPUP_SYSTEM_BAT_WARNING&lt;br /&gt;
 43 ← MAIN_POPUP_SYSTEM_TEMP&lt;br /&gt;
 52 ← POPUP_VOLUME //adjusting media volume&lt;br /&gt;
 61 ← POPUP_ANNOUNCEMENT&lt;br /&gt;
 62 ← StatusBarG22 / PartialPopupStatusbar //bottom of the screen&lt;br /&gt;
 64 ← PartialPopupDiagnosis&lt;br /&gt;
 65 ← DebugInfos / PartialPopupDebugInfo&lt;br /&gt;
 66 ← SETTINGS_POPUP_RESET_DRIVER_ERROR&lt;br /&gt;
 67 ← SETTINGS_POPUP_PTT_NO_SDS&lt;br /&gt;
 68 ← sdsDebugPopup&lt;br /&gt;
 72 ← Standby / POPUP_STANDBY&lt;br /&gt;
 75 ← UserHint&lt;br /&gt;
 76 ← UserHint&lt;br /&gt;
 78 ← UserHint&lt;br /&gt;
 80 ← UserHint&lt;br /&gt;
 81 ← UserHint&lt;br /&gt;
 85 ← Presets / PRESET_POPUP&lt;br /&gt;
 93 ← CM_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 94 ← CM_POPUP_ONLINE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 95 ← PartialPopupSportSkin&lt;br /&gt;
 96 ← UserHint&lt;br /&gt;
 97 ← UserHint&lt;br /&gt;
 98 ← UserHint&lt;br /&gt;
 100 ← SDS_LOGICAL_POPUP&lt;br /&gt;
 101 ← StatusBarG24 / PartialPopupStatusbarG24SCD&lt;br /&gt;
 102 ← POPUP_COMBI_POPUP_ACTIVE_DUMMY&lt;br /&gt;
 103 ← UserHint&lt;br /&gt;
 105 ← UserHint&lt;br /&gt;
 113 ← POPUP_NO_NAV_AVAILABLE&lt;br /&gt;
 114 ← MAIN_POPUP_LAYOUT_SPORT_CLASSIC&lt;br /&gt;
 115 ← POPUP_STANDBY_G24&lt;br /&gt;
 116 ← POPUP_ANNOUNCEMENT_G24&lt;br /&gt;
 119 ← Conversion Matrix / POPUP_CONVERSION_MATRIX_ASIA&lt;br /&gt;
 155 ← MAIN_POPUP_SDIS_MEDIA&lt;br /&gt;
 179 ← MAIN_POPUP_SDIS_NAVI&lt;br /&gt;
 180 ← MEDIA_POPUP_A2LS_MAIN&lt;br /&gt;
 183 ← AUDI_CONNECT_POPUP_HINT_MAIN&lt;br /&gt;
 184 ← SETTINGS_POPUP_PTT_NO_SDS_DRIVE_SELECT&lt;br /&gt;
&lt;br /&gt;
== TUNER ==&lt;br /&gt;
 100012 ← TUNER_POPUP_LIST_MSG_ERROR&lt;br /&gt;
 100013 ← TUNER_POPUP_LIST_MSG_ANTENNA&lt;br /&gt;
 100015 ← TUNER_POPUP_LIST_MSG_UPDATE_DONE&lt;br /&gt;
 100032 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_MAIN&lt;br /&gt;
 100033 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_NOPHONE&lt;br /&gt;
 100143 ← TUNER_POPUP_LIST_MSG_INVALID_MAIN&lt;br /&gt;
 100144 ← TUNER_POPUP_LIST_MSG_UNKNOWN&lt;br /&gt;
 100145 ← TUNER_POPUP_LIST_MSG_UPDATE_MAIN&lt;br /&gt;
 100146 ← TUNER_POPUP_LIST_MSG_SIRIUS_ESN&lt;br /&gt;
 100147 ← TUNER_POPUP_OPT&lt;br /&gt;
 100152 ← PP_TUNER_POPUP_TAG_TRANSFER_OK&lt;br /&gt;
 100153 ← PP_TUNER_POPUP_TAG_TRANSFER_RETRY&lt;br /&gt;
 100155 ← PP_TUNER_POPUP_TAG_TRANSFER_MAIN&lt;br /&gt;
 100158 ← TUNER_POPUP_SXM_CALL_NAR&lt;br /&gt;
 100161 ← TUNER_POPUP_RT_LOCATION&lt;br /&gt;
 100162 ← TUNER_POPUP_RT_TEL&lt;br /&gt;
 100163 ← TUNER_POPUP_RT_SMS&lt;br /&gt;
 100164 ← TUNER_POPUP_RT_EMAIL&lt;br /&gt;
 100165 ← TUNER_POPUP_RT_SERVICE_NA&lt;br /&gt;
 100167 ← TUNER_POPUP_RT_NOPHONE_02_MAIN&lt;br /&gt;
&lt;br /&gt;
== MEDIA ==&lt;br /&gt;
 200009 ← source selection //needs to be checked&lt;br /&gt;
 200081 ← MEDIA_POPUP_COPY_SUMMARY_UNIVERSAL&lt;br /&gt;
 200119 ← // video playback title &amp;amp; progress bar&lt;br /&gt;
 200134 ← MEDIA_POPUP_SWITCH_SOURCE_MAIN&lt;br /&gt;
 200135 ← MEDIA_POPUP_SECOND_DEVICE_MAIN&lt;br /&gt;
 200145 ← MEDIA_POPUP_ERRORS_UNIVERSAL&lt;br /&gt;
 200204 ← MEDIA_POPUP_COPY_SUMMARY_OK&lt;br /&gt;
 200205 ← MEDIA_POPUP_PRESET_DISABLED&lt;br /&gt;
&lt;br /&gt;
== PHONE ==&lt;br /&gt;
 300000 ← entertainment drawer //needs to be checked&lt;br /&gt;
 300084 ← TEL_POPUP_ERR&lt;br /&gt;
 300085 ← TEL_POPUP_BATTERY_WARNING&lt;br /&gt;
 300161 ← TEL_POPUP_MFL_PHONE_NA&lt;br /&gt;
 300162 ← TEL_POPUP_MFL_CALL_LIST&lt;br /&gt;
 300164 ← TEL_POPUP_SERVICE_CODE_HFP&lt;br /&gt;
 300166 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NET&lt;br /&gt;
 300167 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_ACTIVE&lt;br /&gt;
 300168 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_NOT_ACTIVE&lt;br /&gt;
 300169 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_ACTIVE&lt;br /&gt;
 300170 ← TEL_POPUP_SERVICE_CODE_SAP_REQ&lt;br /&gt;
 300171 ← TEL_POPUP_SERVICE_CODE_SAP_OK&lt;br /&gt;
 300172 ← TEL_POPUP_SERVICE_CODE_SAP_ERR&lt;br /&gt;
 300173 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US&lt;br /&gt;
 300174 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_ACTIVE&lt;br /&gt;
 300175 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_NOT_ACTIVE&lt;br /&gt;
 300176 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NOT_ACTIVE&lt;br /&gt;
 300181 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_ACTIVATE_OK&lt;br /&gt;
 300182 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_CANCEL_OK&lt;br /&gt;
 300183 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_ACTIVATE_OK&lt;br /&gt;
 300184 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_CANCEL_OK&lt;br /&gt;
 300185 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_ACTIVATE_OK&lt;br /&gt;
 300186 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_CANCEL_OK&lt;br /&gt;
 300213 ← TEL_POPUP_AUTOGRAP&lt;br /&gt;
 300329 ← TEL_POPUP_AUDIO&lt;br /&gt;
&lt;br /&gt;
== MAP ==&lt;br /&gt;
 400367 ← DEST_POPUP_NAVI_REMOVED_MAIN&lt;br /&gt;
 400354 ← MAP_POPUP_HOV_LANE&lt;br /&gt;
 400373 ← MAP_POPUP_MINI_MAP&lt;br /&gt;
 400372 ← MAP_POPUP_SELENA_MAIN&lt;br /&gt;
 400345 ← DEST_POPUP_NO_HOME_ADDRESS_XXX&lt;br /&gt;
 400269 ← DEST_POPUP_ADDRESS_NAR_INVALID_NUMBER&lt;br /&gt;
 400281 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TUNNEL_ASIA&lt;br /&gt;
 400280 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_FERRY_ASIA&lt;br /&gt;
 400277 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_MOTORWAY_ASIA&lt;br /&gt;
 400279 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_BRIDGE_ASIA&lt;br /&gt;
 400278 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TOLL_ASIA&lt;br /&gt;
 400231 ← MAP_POPUP_GE_LICENCE_EXPIRED&lt;br /&gt;
 400230 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT_EDIT&lt;br /&gt;
 400225 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_FULL&lt;br /&gt;
 400224 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_ERROR&lt;br /&gt;
 400232 ← MAP_POPUP_ONLINE_TRAFFIC_LICENCE_EXPIRED&lt;br /&gt;
 400254 ← MAP_POPUP_DB_MERGE_FINISHED_ASIA&lt;br /&gt;
 400194 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT&lt;br /&gt;
 400205 ← MAP_POPUP_ROUTECALC_FAIL_MULTI&lt;br /&gt;
 400204 ← MAP_POPUP_ROUTECALC_FAIL_SINGLE&lt;br /&gt;
 400214 ← MAP_POPUP_MAPMODE_GOOGLE_MESSAGES_OFFLINE&lt;br /&gt;
 400215 ← MAP_POPUP_MAPMODE_GOOGLE_NO_DATA&lt;br /&gt;
 400211 ← NAV_SDS_POPUP_CONTACT&lt;br /&gt;
 400220 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_TEMP_ERROR&lt;br /&gt;
 400221 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_COUNTRY&lt;br /&gt;
 400222 ← MAP_POPUP_MAPVIEW_STREETVIEW_DRIVING&lt;br /&gt;
 400223 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_OK&lt;br /&gt;
 400218 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_LICENCE&lt;br /&gt;
 400219 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_CONNECTION&lt;br /&gt;
 400186 ← MAP_POPUP_SHOW_POI_WARNING_MAIN&lt;br /&gt;
 400190 ← DEST_POPUP_NVC_NUMBER_INVALID_MAIN&lt;br /&gt;
 400133 ← MAP_POPUP_SEMIDYN_BLOCK_MAIN&lt;br /&gt;
 400134 ← MAP_POPUP_SEMIDYN_BETTER&lt;br /&gt;
 400149 ← DEST_POPUP_DATABASE_INCOMPLETE&lt;br /&gt;
 400124 ← DEST_POPUP_DEMO_MODE_ACTIVE&lt;br /&gt;
 400120 ← DEST_POPUP_SETDEST_ONE_DEST&lt;br /&gt;
 400104 ← MAP_POPUP_GAS_STATION_LIST&lt;br /&gt;
 400103 ← MAP_POPUP_GAS_WARNING_MAIN&lt;br /&gt;
 400079 ← DEST_POPUP_SETDEST_TWO_DEST&lt;br /&gt;
&lt;br /&gt;
== ??? ==&lt;br /&gt;
 500006 ← MAP_POPUP_SHOW_URGENT_WARNING_MAIN&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
== Garage Door Opener, Charisma, Bordbook ==&lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
 600045 ← MAIN_POPUP_SYSTEM_TEL_MAX_WARNING&lt;br /&gt;
 600046 ← MAIN_POPUP_SYSTEM_THEFT_PROTECTION&lt;br /&gt;
 600047 ← MAIN_POPUP_SHOWROOM&lt;br /&gt;
 600086 ← CAR_POPUP_UGDO_LEARN_VISIBLE&lt;br /&gt;
 600087 ← CAR_POPUP_UGDO_SYNC_VISIBLE&lt;br /&gt;
 600106 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN&lt;br /&gt;
 600107 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_DISCLAIMER&lt;br /&gt;
 600108 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_EMPTY&lt;br /&gt;
 600112 ← SETTINGS_POPUP_INSTRUCTION_BOOK_VIDEO&lt;br /&gt;
 600114 ← CAR_POPUP_VISIBLE&lt;br /&gt;
 600128 ← CAR_POPUP_DRIVING_SCHOOL_MAIN&lt;br /&gt;
 600138 ← CAR_POPUP_DRIVE_SELECT_LIFT_N_A&lt;br /&gt;
 600139 ← CAR_POPUP_DRIVE_SELECT_EFFICIENCY_N_A&lt;br /&gt;
 600145 ← SETTINGS_POPUP_INSTRUCTION_BOOK_WAITING&lt;br /&gt;
 600298 ← CAR_POPUP_AUXAC&lt;br /&gt;
&lt;br /&gt;
 700017 ← ADB_POPUP_DOWNLOAD_ERROR&lt;br /&gt;
 700045 ← ADB_SDS_POPUP_CONTACT&lt;br /&gt;
&lt;br /&gt;
== MAPS Japan ==&lt;br /&gt;
 900016 ← MAP_POPUP_VICS_DSRC_FIGURE_JP&lt;br /&gt;
 900022 ← MAP_POPUP_VICS_GEN2_EMERGENCY_JP_MAIN&lt;br /&gt;
 900014 ← MAP_OPT_VICS_SETUP_JP_POPUP_MSG&lt;br /&gt;
 900005 ← MAP_POPUP_DSRC_TTS_PPU_JP&lt;br /&gt;
&lt;br /&gt;
== SoftWare DownLoad ==&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
 1700000 ← UpdateInterrupted&lt;br /&gt;
 1700002 ← UpdateFailure&lt;br /&gt;
 1700003 ← UpdateSuccessful&lt;br /&gt;
 1700009 ← CompatibilityCheckFailure&lt;br /&gt;
 1700010 ← custDownloadInfoPopup&lt;br /&gt;
 1700017 ← SummaryChanged&lt;br /&gt;
 1700069 ← custDownloadLeaveProgress&lt;br /&gt;
&lt;br /&gt;
== ETC payment system ==&lt;br /&gt;
 1100048 ← ETC_POPUP_NO_CARD_INSERTED_JP_MAIN&lt;br /&gt;
 1100049 ← ETC_POPUP_CARD_STILL_INSERT_JP_MAIN&lt;br /&gt;
 1100053 ← ETC_POPUP_ERROR_JP&lt;br /&gt;
 1100054 ← ETC_POPUP_PASS_GATE_JP&lt;br /&gt;
 1100055 ← MAIN_POPUP_TIMEZONE&lt;br /&gt;
 1100056 ← MAIN_POPUP_SOMMER_TIME&lt;br /&gt;
&lt;br /&gt;
== SETTINGS ==&lt;br /&gt;
 1700079 ← SETTINGS_POPUP_GEN_NEW_DATA_AVAILABLE&lt;br /&gt;
 1700078 ← SETTINGS_POPUP_NAVI_LICENCE_GETTTING_INVALID&lt;br /&gt;
 1700077 ← SETTINGS_POPUP_NAVI_NEW_DATA_AVAILABLE_LICENCE_NOT_AVAILABLE&lt;br /&gt;
 1700076 ← SETTINGS_POPUP_UPDATE_ONLINE_NEW_DATA_AVAILABLE_LICENCE_AVAILABLE&lt;br /&gt;
 1700090 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DISCLAIMER&lt;br /&gt;
 1700091 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL&lt;br /&gt;
 1700082 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE_RETRY_POSSIBLE&lt;br /&gt;
 1700083 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE&lt;br /&gt;
 1700086 ← SETTINGS_POPUP_ONLINE_UPDATE_INCOMPATIBLE_DATA&lt;br /&gt;
 1700087 ← SETTINGS_POPUP_ONLINE_UPDATE_SERVER_FAILURE&lt;br /&gt;
 1700084 ← SETTINGS_POPUP_ONLINE_UPDATE_ACCESS_FAILURE&lt;br /&gt;
 1700085 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_DATA&lt;br /&gt;
 1700047 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_SUCCESSFUL&lt;br /&gt;
 1700046 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_FAILURE&lt;br /&gt;
 1700048 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_INTERRUPT_SD&lt;br /&gt;
 1700054 ← SETTINGS_POPUP_UPDATE_SOURCE_CONFIRMATION&lt;br /&gt;
 1700145 ← SETTINGS_POPUP_ONLINE_UPDATE_UOTASERVER_FAILURE&lt;br /&gt;
 1700144 ← SETTINGS_POPUP_UPDATE_PERSONALIZE&lt;br /&gt;
 1700146 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_SERVICE&lt;br /&gt;
 1700140 ← SETTINGS_POPUP_UPDATE_ONLINE_PROPOSAL_TRAVEL_NEW_DATA_AVAILABLE_LICENCE&lt;br /&gt;
 1700141 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DESTINATION&lt;br /&gt;
 1700142 ← SETTINGS_POPUP_UPDATE_NAV_DB_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
 1700143 ← SETTINGS_POPUP_UPDATE_PPOI_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
&lt;br /&gt;
== CAR Early apps ==&lt;br /&gt;
 2100000 ← CAR_POPUP_PARKING_PLA_ACTIVE_PARK&lt;br /&gt;
 2100001 ← CAR_POPUP_PARKING_APS_OPS_VPS_RVC&lt;br /&gt;
 2100002 ← CAR_POPUP_PARKING_ARA&lt;br /&gt;
 2100008 ← CAR_POPUP_PARKING_OPS // RVC overlay &amp;amp; front automatic detection popup&lt;br /&gt;
 2100009 ← CAR_POPUP_PARKING_ARA_TEXTS&lt;br /&gt;
 2100010 ← CAR_POPUP_PARKING_PLA_TEXTS_MAIN&lt;br /&gt;
 2100016 ← CAR_POPUP_SEAT_RIGHT&lt;br /&gt;
 2100017 ← CAR_POPUP_SEAT_LEFT&lt;br /&gt;
 2100018 ← CAR_POPUP_SEATMEMORY_LEFT&lt;br /&gt;
 2100021 ← CAR_POPUP_SEATMEMORY_RIGHT&lt;br /&gt;
 2100030 ← CAR_POPUP_SEAT_KOMBI_LEFT&lt;br /&gt;
 2100031 ← CAR_POPUP_SEAT_KOMBI_RIGHT&lt;br /&gt;
 2100035 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_LEFT&lt;br /&gt;
 2100036 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_SELECTION&lt;br /&gt;
 2100037 ← CAR_POPUP_PARKING_VISIBLE&lt;br /&gt;
 2100038 ← CAR_POPUP_PARKING_PLA_TEXT_OK&lt;br /&gt;
 2100040 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_RIGHT&lt;br /&gt;
 2100042 ← CAR_POPUP_CHARGE_END_INVISIBLE&lt;br /&gt;
 2100043 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_OUT&lt;br /&gt;
 2100044 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_CENTER&lt;br /&gt;
 2100045 ← CAR_POPUP_SOCCONTROL_MAIN&lt;br /&gt;
 2100065 ← CAR_POPUP_END_AUXCOMBINED_MAIN&lt;br /&gt;
 2100066 ← CAR_POPUP_END_AUXAC_MAIN&lt;br /&gt;
 2100067 ← CAR_POPUP_CHARGE_END&lt;br /&gt;
 2100070 ← CAR_POPUP_CHARGE_END_INVISIBLE_A3MQB&lt;br /&gt;
 2100071 ← CAR_POPUP_PARKING_ARA_TEXTS_CENTER&lt;br /&gt;
&lt;br /&gt;
== OFFICE ==&lt;br /&gt;
 2200104 ← OFFICE_POPUP_MAIL_STORE_VCARD_OK&lt;br /&gt;
 2200099 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_2&lt;br /&gt;
 2200100 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_1&lt;br /&gt;
 2200101 ← OFFICE_POPUP_SMS_STORE_VCARD_OK&lt;br /&gt;
 2200102 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_1&lt;br /&gt;
 2200103 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_2&lt;br /&gt;
 2200091 ← OFFICE_POPUP_MAIL_SPEED_DISCLAIMER&lt;br /&gt;
 2200090 ← OFFICE_POPUP_MAIL_STORE_DRAFT_OK&lt;br /&gt;
 2200089 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200088 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200092 ← OFFICE_POPUP_SMS_SPEED_DISCLAIMER&lt;br /&gt;
 2200083 ← OFFICE_POPUP_SMS_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200087 ← OFFICE_POPUP_MAIL_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200086 ← OFFICE_POPUP_SMS_STORE_DRAFT_OK&lt;br /&gt;
 2200085 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200084 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200078 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_1&lt;br /&gt;
 2200079 ← OFFICE_POPUP_SMS_STORE_TEMP_OK&lt;br /&gt;
 2200076 ← OFFICE_POPUP_SMS_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200077 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_2&lt;br /&gt;
 2200070 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_2&lt;br /&gt;
 2200071 ← OFFICE_POPUP_MAIL_STORE_TEMP_OK&lt;br /&gt;
 2200068 ← OFFICE_POPUP_MAIL_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200069 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_1&lt;br /&gt;
 2200155 ← OFFICE_POPUP_MAIL_MAX_CHARS&lt;br /&gt;
 2200154 ← OFFICE_POPUP_SMS_MAX_CHARS&lt;br /&gt;
 2200153 ← OFFICE_POPUP_SDS_CONTACT_MAIL_MORE&lt;br /&gt;
 2200152 ← OFFICE_POPUP_SMS_SIM_DELETE_DONE&lt;br /&gt;
 2200151 ← OFFICE_POPUP_SMS_SIM_DELETE_ERROR&lt;br /&gt;
 2200150 ← OFFICE_POPUP_SMS_SIM_DELETE_MAIN&lt;br /&gt;
 2200003 ← OFFICE_POPUP_SDS_ACCOUNT_NAMES&lt;br /&gt;
&lt;br /&gt;
== ONLINE ==&lt;br /&gt;
 2300071 ← CM_POPUP_ONLINE_ERROR_LICENSE_CHECK_QUERY&lt;br /&gt;
 2300070 ← CM_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 2300069 ← CM_POPUP_ONLINE_SERVICELIST_NA&lt;br /&gt;
 2300068 ← CM_POPUP_ONLINE_TEASER_NOTE_MAIN&lt;br /&gt;
 2300092 ← CM_POPUP_ONLINE_LICENSE_REJECTED&lt;br /&gt;
 2300090 ← CM_POPUP_ONLINE_NOT_LICENSED&lt;br /&gt;
 2300091 ← CM_POPUP_ONLINE_NOT_ACTIVATED&lt;br /&gt;
 2300060 ← AUDI_CONNECT_RHMI_POPUP_TIMEOUT&lt;br /&gt;
 2300061 ← AUDI_CONNECT_RHMI_POPUP&lt;br /&gt;
 2300057 ← AUDI_CONNECT_POPUP_OPT&lt;br /&gt;
 2300059 ← AUDI_CONNECT_RHMI_POPUP_BUTTON&lt;br /&gt;
 2300139 ← CM_POPUP_ONLINE_NOT_ACTIVATED_G22&lt;br /&gt;
 2300155 ← CM_POPUP_ONLINE_ERRORS_OUT_OF_RANGE&lt;br /&gt;
 2300208 ← AUDI_CONNECT_KEYCARD_POPUP_DEACTIVATE&lt;br /&gt;
 2300210 ← AUDI_CONNECT_SERVICE_ACK_POPUP_MOBILITY_REQUIREMENTS&lt;br /&gt;
 2300204 ← AUDI_CONNECT_KEYCARD_ACTIVATION_ERR_POPUP&lt;br /&gt;
 2300205 ← AUDI_CONNECT_KEYCARD_PHONEBOX_HINT_POPUP&lt;br /&gt;
 2300207 ← AUDI_CONNECT_KEYCARD_POPUP_ACTIVATE&lt;br /&gt;
 2300162 ← AUDI_CONNECT_POPUP_NEW_DESTINATIONS&lt;br /&gt;
&lt;br /&gt;
 2500052 ← CM_POPUP_ONLINE_ERROR_NO_ROAMING&lt;br /&gt;
 2500053 ← CM_POPUP_ONLINE_ERROR_GSM_ACTIVE&lt;br /&gt;
 2500054 ← CM_POPUP_ONLINE_ERROR_ROAMING_DISCLAIMER&lt;br /&gt;
 2500048 ← CM_POPUP_ONLINE_ERROR_NO_PHONE&lt;br /&gt;
 2500049 ← CM_POPUP_ONLINE_ERROR_NO_PIN&lt;br /&gt;
 2500050 ← CM_POPUP_ONLINE_ERROR_NO_SIMAP&lt;br /&gt;
 2500051 ← CM_POPUP_ONLINE_ERROR_DATA_DEACTIVATE&lt;br /&gt;
 2500060 ← CM_POPUP_WLAN_BONDING_ERROR_ELSE&lt;br /&gt;
 2500061 ← CM_POPUP_WLAN_BONDING_ERROR_PIN&lt;br /&gt;
 2500058 ← CM_POPUP_ONLINE_ERROR_NO_SIM&lt;br /&gt;
 2500039 ← CM_POPUP_BLUETOOTH_EXTERNAL_CODE_EDIT&lt;br /&gt;
 2500045 ← CM_POPUP_ONLINE_CONNECTION_REQUEST&lt;br /&gt;
 2500044 ← CM_POPUP_ONLINE_DISCLAIMER_SHOW&lt;br /&gt;
 2500047 ← CM_POPUP_ONLINE_ERROR_NO_CONFIG&lt;br /&gt;
 2500083 ← CM_POPUP_BLUETOOTH_EXTERNAL_MAIN&lt;br /&gt;
 2500092 ← CM_POPUP_ONLINE_ERROR_SIM_FAILURE&lt;br /&gt;
 2500090 ← CM_POPUP_ONLINE_ERROR_NO_PUK&lt;br /&gt;
 2500065 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG_PROFILES_MAIN&lt;br /&gt;
 2500137 ← CM_POPUP_ONLINE_ERROR_NO_ESIM&lt;br /&gt;
 2500138 ← CM_POPUP_ONLINE_ERROR_NO_PHONE_ESIM&lt;br /&gt;
 2500150 ← CM_POPUP_ONLINE_GPS&lt;br /&gt;
 2500018 ← CM_POPUP_BLUETOOTH_OBEX_CODE_PASSWORD&lt;br /&gt;
 2500111 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG&lt;br /&gt;
 2500016 ← CM_POPUP_BLUETOOTH_BONDING_ERROR&lt;br /&gt;
 2500017 ← CM_POPUP_BLUETOOTH_OBEX_CODE_ID&lt;br /&gt;
 2500098 ← CM_POPUP_BLUETOOTH_OBEX_MAIN&lt;br /&gt;
 2500099 ← CM_POPUP_BLUETOOTH_NA&lt;br /&gt;
 2500113 ← CM_POPUP_ONLINE_ERROR_DATA_MODULE_DEACTIVATE&lt;br /&gt;
&lt;br /&gt;
== TV ==&lt;br /&gt;
 2600015 ← TV_POPUP_EWS_MAIN&lt;br /&gt;
 2600016 ← TV_POPUP_EWS_PREFECTURES&lt;br /&gt;
 2600045 ← TV_POPUP_EWS_SMT&lt;br /&gt;
&lt;br /&gt;
== SOS ==&lt;br /&gt;
 3300043 ← SOS_POPUP_MEC_ACCOMPLISHED&lt;br /&gt;
 3300042 ← SOS_POPUP_MEC_REDIAL&lt;br /&gt;
 3300041 ← SOS_POPUP_MEC_FAILED_1&lt;br /&gt;
 3300040 ← SOS_POPUP_MEC_SENDING_DATA&lt;br /&gt;
 3300046 ← SOS_POPUP_REDIAL&lt;br /&gt;
 3300045 ← SOS_POPUP_MEC_CANCELED&lt;br /&gt;
 3300044 ← SOS_POPUP_MEC_FAILED&lt;br /&gt;
 3300035 ← SOS_POPUP_CANCELED&lt;br /&gt;
 3300032 ← SOS_POPUP_ACCOMPLISHED&lt;br /&gt;
 3300039 ← SOS_POPUP_MEC_CONNECTED&lt;br /&gt;
 3300038 ← SOS_POPUP_MEC_CONNECTING&lt;br /&gt;
 3300037 ← OPR_POPUP_CANCELED&lt;br /&gt;
 3300036 ← SOS_POPUP_FAILED&lt;br /&gt;
 3300009 ← OPR_POPUP_CONNECTING&lt;br /&gt;
 3300008 ← OPR_POPUP_DATA_SEND&lt;br /&gt;
 3300011 ← OPR_POPUP_DISCONNECT&lt;br /&gt;
 3300010 ← OPR_POPUP_CONNECTED&lt;br /&gt;
 3300005 ← OPR_POPUP_DATA_END_ACTIVE_CALL&lt;br /&gt;
 3300007 ← OPR_POPUP_DATA_COLLECT&lt;br /&gt;
 3300006 ← SOS_POPUP_ONLINE_LICENSE_NOTE_WEBSHOP&lt;br /&gt;
 3300001 ← OPR_POPUP_MANUAL_CONSIERGE&lt;br /&gt;
 3300003 ← OPR_POPUP_AUTOMATIC&lt;br /&gt;
 3300002 ← OPR_POPUP_MANUAL_CALLCENTER&lt;br /&gt;
 3300028 ← SOS_POPUP_LICENSE_TEASER_NOTE_WEBSHOP&lt;br /&gt;
 3300029 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 3300030 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300031 ← OPR_POPUP_CALL_FAILED&lt;br /&gt;
 3300024 ← SOS_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 3300025 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 3300026 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300027 ← SOS_POPUP_LICENSE_TEASER_NOTE_MAIN&lt;br /&gt;
 3300020 ← SOS_POPUP_CONNECTED&lt;br /&gt;
 3300021 ← SOS_POPUP_SENDING_DATA&lt;br /&gt;
 3300022 ← SOS_POPUP_CALLBACK_INCOMING&lt;br /&gt;
 3300017 ← OPR_DEST_POPUP_MAIN&lt;br /&gt;
 3300018 ← SOS_POPUP_MEC_MAIN&lt;br /&gt;
 3300019 ← SOS_POPUP_CONNECTING&lt;br /&gt;
&lt;br /&gt;
== CHARGING ==&lt;br /&gt;
 3400000 ← CHARGING_POPUP_OBJECT&lt;br /&gt;
 3400001 ← CHARGING_POPUP_FOREIGN_OBJECT_DETECT&lt;br /&gt;
 3400002 ← CHARGING_POPUP_REMINDER&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=437</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=437"/>
		<updated>2026-05-19T07:39:16Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* CAR Early apps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GENERIC ==&lt;br /&gt;
 35 ← KombiActivePopup&lt;br /&gt;
 42 ← MAIN_POPUP_SYSTEM_BAT_WARNING&lt;br /&gt;
 43 ← MAIN_POPUP_SYSTEM_TEMP&lt;br /&gt;
 52 ← POPUP_VOLUME&lt;br /&gt;
 61 ← POPUP_ANNOUNCEMENT&lt;br /&gt;
 62 ← StatusBarG22 / PartialPopupStatusbar //bottom of the screen&lt;br /&gt;
 64 ← PartialPopupDiagnosis&lt;br /&gt;
 65 ← DebugInfos / PartialPopupDebugInfo&lt;br /&gt;
 66 ← SETTINGS_POPUP_RESET_DRIVER_ERROR&lt;br /&gt;
 67 ← SETTINGS_POPUP_PTT_NO_SDS&lt;br /&gt;
 68 ← sdsDebugPopup&lt;br /&gt;
 72 ← Standby / POPUP_STANDBY&lt;br /&gt;
 75 ← UserHint&lt;br /&gt;
 76 ← UserHint&lt;br /&gt;
 78 ← UserHint&lt;br /&gt;
 80 ← UserHint&lt;br /&gt;
 81 ← UserHint&lt;br /&gt;
 85 ← Presets / PRESET_POPUP&lt;br /&gt;
 93 ← CM_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 94 ← CM_POPUP_ONLINE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 95 ← PartialPopupSportSkin&lt;br /&gt;
 96 ← UserHint&lt;br /&gt;
 97 ← UserHint&lt;br /&gt;
 98 ← UserHint&lt;br /&gt;
 100 ← SDS_LOGICAL_POPUP&lt;br /&gt;
 101 ← StatusBarG24 / PartialPopupStatusbarG24SCD&lt;br /&gt;
 102 ← POPUP_COMBI_POPUP_ACTIVE_DUMMY&lt;br /&gt;
 103 ← UserHint&lt;br /&gt;
 105 ← UserHint&lt;br /&gt;
 113 ← POPUP_NO_NAV_AVAILABLE&lt;br /&gt;
 114 ← MAIN_POPUP_LAYOUT_SPORT_CLASSIC&lt;br /&gt;
 115 ← POPUP_STANDBY_G24&lt;br /&gt;
 116 ← POPUP_ANNOUNCEMENT_G24&lt;br /&gt;
 119 ← Conversion Matrix / POPUP_CONVERSION_MATRIX_ASIA&lt;br /&gt;
 155 ← MAIN_POPUP_SDIS_MEDIA&lt;br /&gt;
 179 ← MAIN_POPUP_SDIS_NAVI&lt;br /&gt;
 180 ← MEDIA_POPUP_A2LS_MAIN&lt;br /&gt;
 183 ← AUDI_CONNECT_POPUP_HINT_MAIN&lt;br /&gt;
 184 ← SETTINGS_POPUP_PTT_NO_SDS_DRIVE_SELECT&lt;br /&gt;
&lt;br /&gt;
== TUNER ==&lt;br /&gt;
 100012 ← TUNER_POPUP_LIST_MSG_ERROR&lt;br /&gt;
 100013 ← TUNER_POPUP_LIST_MSG_ANTENNA&lt;br /&gt;
 100015 ← TUNER_POPUP_LIST_MSG_UPDATE_DONE&lt;br /&gt;
 100032 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_MAIN&lt;br /&gt;
 100033 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_NOPHONE&lt;br /&gt;
 100143 ← TUNER_POPUP_LIST_MSG_INVALID_MAIN&lt;br /&gt;
 100144 ← TUNER_POPUP_LIST_MSG_UNKNOWN&lt;br /&gt;
 100145 ← TUNER_POPUP_LIST_MSG_UPDATE_MAIN&lt;br /&gt;
 100146 ← TUNER_POPUP_LIST_MSG_SIRIUS_ESN&lt;br /&gt;
 100147 ← TUNER_POPUP_OPT&lt;br /&gt;
 100152 ← PP_TUNER_POPUP_TAG_TRANSFER_OK&lt;br /&gt;
 100153 ← PP_TUNER_POPUP_TAG_TRANSFER_RETRY&lt;br /&gt;
 100155 ← PP_TUNER_POPUP_TAG_TRANSFER_MAIN&lt;br /&gt;
 100158 ← TUNER_POPUP_SXM_CALL_NAR&lt;br /&gt;
 100161 ← TUNER_POPUP_RT_LOCATION&lt;br /&gt;
 100162 ← TUNER_POPUP_RT_TEL&lt;br /&gt;
 100163 ← TUNER_POPUP_RT_SMS&lt;br /&gt;
 100164 ← TUNER_POPUP_RT_EMAIL&lt;br /&gt;
 100165 ← TUNER_POPUP_RT_SERVICE_NA&lt;br /&gt;
 100167 ← TUNER_POPUP_RT_NOPHONE_02_MAIN&lt;br /&gt;
&lt;br /&gt;
== MEDIA ==&lt;br /&gt;
 200009 ← source selection //needs to be checked&lt;br /&gt;
 200081 ← MEDIA_POPUP_COPY_SUMMARY_UNIVERSAL&lt;br /&gt;
 200119 ← // video playback title &amp;amp; progress bar&lt;br /&gt;
 200134 ← MEDIA_POPUP_SWITCH_SOURCE_MAIN&lt;br /&gt;
 200135 ← MEDIA_POPUP_SECOND_DEVICE_MAIN&lt;br /&gt;
 200145 ← MEDIA_POPUP_ERRORS_UNIVERSAL&lt;br /&gt;
 200204 ← MEDIA_POPUP_COPY_SUMMARY_OK&lt;br /&gt;
 200205 ← MEDIA_POPUP_PRESET_DISABLED&lt;br /&gt;
&lt;br /&gt;
== PHONE ==&lt;br /&gt;
 300000 ← entertainment drawer //needs to be checked&lt;br /&gt;
 300084 ← TEL_POPUP_ERR&lt;br /&gt;
 300085 ← TEL_POPUP_BATTERY_WARNING&lt;br /&gt;
 300161 ← TEL_POPUP_MFL_PHONE_NA&lt;br /&gt;
 300162 ← TEL_POPUP_MFL_CALL_LIST&lt;br /&gt;
 300164 ← TEL_POPUP_SERVICE_CODE_HFP&lt;br /&gt;
 300166 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NET&lt;br /&gt;
 300167 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_ACTIVE&lt;br /&gt;
 300168 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_NOT_ACTIVE&lt;br /&gt;
 300169 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_ACTIVE&lt;br /&gt;
 300170 ← TEL_POPUP_SERVICE_CODE_SAP_REQ&lt;br /&gt;
 300171 ← TEL_POPUP_SERVICE_CODE_SAP_OK&lt;br /&gt;
 300172 ← TEL_POPUP_SERVICE_CODE_SAP_ERR&lt;br /&gt;
 300173 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US&lt;br /&gt;
 300174 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_ACTIVE&lt;br /&gt;
 300175 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_NOT_ACTIVE&lt;br /&gt;
 300176 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NOT_ACTIVE&lt;br /&gt;
 300181 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_ACTIVATE_OK&lt;br /&gt;
 300182 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_CANCEL_OK&lt;br /&gt;
 300183 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_ACTIVATE_OK&lt;br /&gt;
 300184 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_CANCEL_OK&lt;br /&gt;
 300185 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_ACTIVATE_OK&lt;br /&gt;
 300186 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_CANCEL_OK&lt;br /&gt;
 300213 ← TEL_POPUP_AUTOGRAP&lt;br /&gt;
 300329 ← TEL_POPUP_AUDIO&lt;br /&gt;
&lt;br /&gt;
== MAP ==&lt;br /&gt;
 400367 ← DEST_POPUP_NAVI_REMOVED_MAIN&lt;br /&gt;
 400354 ← MAP_POPUP_HOV_LANE&lt;br /&gt;
 400373 ← MAP_POPUP_MINI_MAP&lt;br /&gt;
 400372 ← MAP_POPUP_SELENA_MAIN&lt;br /&gt;
 400345 ← DEST_POPUP_NO_HOME_ADDRESS_XXX&lt;br /&gt;
 400269 ← DEST_POPUP_ADDRESS_NAR_INVALID_NUMBER&lt;br /&gt;
 400281 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TUNNEL_ASIA&lt;br /&gt;
 400280 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_FERRY_ASIA&lt;br /&gt;
 400277 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_MOTORWAY_ASIA&lt;br /&gt;
 400279 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_BRIDGE_ASIA&lt;br /&gt;
 400278 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TOLL_ASIA&lt;br /&gt;
 400231 ← MAP_POPUP_GE_LICENCE_EXPIRED&lt;br /&gt;
 400230 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT_EDIT&lt;br /&gt;
 400225 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_FULL&lt;br /&gt;
 400224 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_ERROR&lt;br /&gt;
 400232 ← MAP_POPUP_ONLINE_TRAFFIC_LICENCE_EXPIRED&lt;br /&gt;
 400254 ← MAP_POPUP_DB_MERGE_FINISHED_ASIA&lt;br /&gt;
 400194 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT&lt;br /&gt;
 400205 ← MAP_POPUP_ROUTECALC_FAIL_MULTI&lt;br /&gt;
 400204 ← MAP_POPUP_ROUTECALC_FAIL_SINGLE&lt;br /&gt;
 400214 ← MAP_POPUP_MAPMODE_GOOGLE_MESSAGES_OFFLINE&lt;br /&gt;
 400215 ← MAP_POPUP_MAPMODE_GOOGLE_NO_DATA&lt;br /&gt;
 400211 ← NAV_SDS_POPUP_CONTACT&lt;br /&gt;
 400220 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_TEMP_ERROR&lt;br /&gt;
 400221 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_COUNTRY&lt;br /&gt;
 400222 ← MAP_POPUP_MAPVIEW_STREETVIEW_DRIVING&lt;br /&gt;
 400223 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_OK&lt;br /&gt;
 400218 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_LICENCE&lt;br /&gt;
 400219 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_CONNECTION&lt;br /&gt;
 400186 ← MAP_POPUP_SHOW_POI_WARNING_MAIN&lt;br /&gt;
 400190 ← DEST_POPUP_NVC_NUMBER_INVALID_MAIN&lt;br /&gt;
 400133 ← MAP_POPUP_SEMIDYN_BLOCK_MAIN&lt;br /&gt;
 400134 ← MAP_POPUP_SEMIDYN_BETTER&lt;br /&gt;
 400149 ← DEST_POPUP_DATABASE_INCOMPLETE&lt;br /&gt;
 400124 ← DEST_POPUP_DEMO_MODE_ACTIVE&lt;br /&gt;
 400120 ← DEST_POPUP_SETDEST_ONE_DEST&lt;br /&gt;
 400104 ← MAP_POPUP_GAS_STATION_LIST&lt;br /&gt;
 400103 ← MAP_POPUP_GAS_WARNING_MAIN&lt;br /&gt;
 400079 ← DEST_POPUP_SETDEST_TWO_DEST&lt;br /&gt;
&lt;br /&gt;
== ??? ==&lt;br /&gt;
 500006 ← MAP_POPUP_SHOW_URGENT_WARNING_MAIN&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
== Garage Door Opener, Charisma, Bordbook ==&lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
 600045 ← MAIN_POPUP_SYSTEM_TEL_MAX_WARNING&lt;br /&gt;
 600046 ← MAIN_POPUP_SYSTEM_THEFT_PROTECTION&lt;br /&gt;
 600047 ← MAIN_POPUP_SHOWROOM&lt;br /&gt;
 600086 ← CAR_POPUP_UGDO_LEARN_VISIBLE&lt;br /&gt;
 600087 ← CAR_POPUP_UGDO_SYNC_VISIBLE&lt;br /&gt;
 600106 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN&lt;br /&gt;
 600107 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_DISCLAIMER&lt;br /&gt;
 600108 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_EMPTY&lt;br /&gt;
 600112 ← SETTINGS_POPUP_INSTRUCTION_BOOK_VIDEO&lt;br /&gt;
 600114 ← CAR_POPUP_VISIBLE&lt;br /&gt;
 600128 ← CAR_POPUP_DRIVING_SCHOOL_MAIN&lt;br /&gt;
 600138 ← CAR_POPUP_DRIVE_SELECT_LIFT_N_A&lt;br /&gt;
 600139 ← CAR_POPUP_DRIVE_SELECT_EFFICIENCY_N_A&lt;br /&gt;
 600145 ← SETTINGS_POPUP_INSTRUCTION_BOOK_WAITING&lt;br /&gt;
 600298 ← CAR_POPUP_AUXAC&lt;br /&gt;
&lt;br /&gt;
 700017 ← ADB_POPUP_DOWNLOAD_ERROR&lt;br /&gt;
 700045 ← ADB_SDS_POPUP_CONTACT&lt;br /&gt;
&lt;br /&gt;
== MAPS Japan ==&lt;br /&gt;
 900016 ← MAP_POPUP_VICS_DSRC_FIGURE_JP&lt;br /&gt;
 900022 ← MAP_POPUP_VICS_GEN2_EMERGENCY_JP_MAIN&lt;br /&gt;
 900014 ← MAP_OPT_VICS_SETUP_JP_POPUP_MSG&lt;br /&gt;
 900005 ← MAP_POPUP_DSRC_TTS_PPU_JP&lt;br /&gt;
&lt;br /&gt;
== SoftWare DownLoad ==&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
 1700000 ← UpdateInterrupted&lt;br /&gt;
 1700002 ← UpdateFailure&lt;br /&gt;
 1700003 ← UpdateSuccessful&lt;br /&gt;
 1700009 ← CompatibilityCheckFailure&lt;br /&gt;
 1700010 ← custDownloadInfoPopup&lt;br /&gt;
 1700017 ← SummaryChanged&lt;br /&gt;
 1700069 ← custDownloadLeaveProgress&lt;br /&gt;
&lt;br /&gt;
== ETC payment system ==&lt;br /&gt;
 1100048 ← ETC_POPUP_NO_CARD_INSERTED_JP_MAIN&lt;br /&gt;
 1100049 ← ETC_POPUP_CARD_STILL_INSERT_JP_MAIN&lt;br /&gt;
 1100053 ← ETC_POPUP_ERROR_JP&lt;br /&gt;
 1100054 ← ETC_POPUP_PASS_GATE_JP&lt;br /&gt;
 1100055 ← MAIN_POPUP_TIMEZONE&lt;br /&gt;
 1100056 ← MAIN_POPUP_SOMMER_TIME&lt;br /&gt;
&lt;br /&gt;
== SETTINGS ==&lt;br /&gt;
 1700079 ← SETTINGS_POPUP_GEN_NEW_DATA_AVAILABLE&lt;br /&gt;
 1700078 ← SETTINGS_POPUP_NAVI_LICENCE_GETTTING_INVALID&lt;br /&gt;
 1700077 ← SETTINGS_POPUP_NAVI_NEW_DATA_AVAILABLE_LICENCE_NOT_AVAILABLE&lt;br /&gt;
 1700076 ← SETTINGS_POPUP_UPDATE_ONLINE_NEW_DATA_AVAILABLE_LICENCE_AVAILABLE&lt;br /&gt;
 1700090 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DISCLAIMER&lt;br /&gt;
 1700091 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL&lt;br /&gt;
 1700082 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE_RETRY_POSSIBLE&lt;br /&gt;
 1700083 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE&lt;br /&gt;
 1700086 ← SETTINGS_POPUP_ONLINE_UPDATE_INCOMPATIBLE_DATA&lt;br /&gt;
 1700087 ← SETTINGS_POPUP_ONLINE_UPDATE_SERVER_FAILURE&lt;br /&gt;
 1700084 ← SETTINGS_POPUP_ONLINE_UPDATE_ACCESS_FAILURE&lt;br /&gt;
 1700085 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_DATA&lt;br /&gt;
 1700047 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_SUCCESSFUL&lt;br /&gt;
 1700046 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_FAILURE&lt;br /&gt;
 1700048 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_INTERRUPT_SD&lt;br /&gt;
 1700054 ← SETTINGS_POPUP_UPDATE_SOURCE_CONFIRMATION&lt;br /&gt;
 1700145 ← SETTINGS_POPUP_ONLINE_UPDATE_UOTASERVER_FAILURE&lt;br /&gt;
 1700144 ← SETTINGS_POPUP_UPDATE_PERSONALIZE&lt;br /&gt;
 1700146 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_SERVICE&lt;br /&gt;
 1700140 ← SETTINGS_POPUP_UPDATE_ONLINE_PROPOSAL_TRAVEL_NEW_DATA_AVAILABLE_LICENCE&lt;br /&gt;
 1700141 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DESTINATION&lt;br /&gt;
 1700142 ← SETTINGS_POPUP_UPDATE_NAV_DB_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
 1700143 ← SETTINGS_POPUP_UPDATE_PPOI_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
&lt;br /&gt;
== CAR Early apps ==&lt;br /&gt;
 2100000 ← CAR_POPUP_PARKING_PLA_ACTIVE_PARK&lt;br /&gt;
 2100001 ← CAR_POPUP_PARKING_APS_OPS_VPS_RVC&lt;br /&gt;
 2100002 ← CAR_POPUP_PARKING_ARA&lt;br /&gt;
 2100008 ← CAR_POPUP_PARKING_OPS // RVC overlay &amp;amp; front automatic detection popup&lt;br /&gt;
 2100009 ← CAR_POPUP_PARKING_ARA_TEXTS&lt;br /&gt;
 2100010 ← CAR_POPUP_PARKING_PLA_TEXTS_MAIN&lt;br /&gt;
 2100016 ← CAR_POPUP_SEAT_RIGHT&lt;br /&gt;
 2100017 ← CAR_POPUP_SEAT_LEFT&lt;br /&gt;
 2100018 ← CAR_POPUP_SEATMEMORY_LEFT&lt;br /&gt;
 2100021 ← CAR_POPUP_SEATMEMORY_RIGHT&lt;br /&gt;
 2100030 ← CAR_POPUP_SEAT_KOMBI_LEFT&lt;br /&gt;
 2100031 ← CAR_POPUP_SEAT_KOMBI_RIGHT&lt;br /&gt;
 2100035 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_LEFT&lt;br /&gt;
 2100036 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_SELECTION&lt;br /&gt;
 2100037 ← CAR_POPUP_PARKING_VISIBLE&lt;br /&gt;
 2100038 ← CAR_POPUP_PARKING_PLA_TEXT_OK&lt;br /&gt;
 2100040 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_RIGHT&lt;br /&gt;
 2100042 ← CAR_POPUP_CHARGE_END_INVISIBLE&lt;br /&gt;
 2100043 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_OUT&lt;br /&gt;
 2100044 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_CENTER&lt;br /&gt;
 2100045 ← CAR_POPUP_SOCCONTROL_MAIN&lt;br /&gt;
 2100065 ← CAR_POPUP_END_AUXCOMBINED_MAIN&lt;br /&gt;
 2100066 ← CAR_POPUP_END_AUXAC_MAIN&lt;br /&gt;
 2100067 ← CAR_POPUP_CHARGE_END&lt;br /&gt;
 2100070 ← CAR_POPUP_CHARGE_END_INVISIBLE_A3MQB&lt;br /&gt;
 2100071 ← CAR_POPUP_PARKING_ARA_TEXTS_CENTER&lt;br /&gt;
&lt;br /&gt;
== OFFICE ==&lt;br /&gt;
 2200104 ← OFFICE_POPUP_MAIL_STORE_VCARD_OK&lt;br /&gt;
 2200099 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_2&lt;br /&gt;
 2200100 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_1&lt;br /&gt;
 2200101 ← OFFICE_POPUP_SMS_STORE_VCARD_OK&lt;br /&gt;
 2200102 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_1&lt;br /&gt;
 2200103 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_2&lt;br /&gt;
 2200091 ← OFFICE_POPUP_MAIL_SPEED_DISCLAIMER&lt;br /&gt;
 2200090 ← OFFICE_POPUP_MAIL_STORE_DRAFT_OK&lt;br /&gt;
 2200089 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200088 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200092 ← OFFICE_POPUP_SMS_SPEED_DISCLAIMER&lt;br /&gt;
 2200083 ← OFFICE_POPUP_SMS_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200087 ← OFFICE_POPUP_MAIL_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200086 ← OFFICE_POPUP_SMS_STORE_DRAFT_OK&lt;br /&gt;
 2200085 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200084 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200078 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_1&lt;br /&gt;
 2200079 ← OFFICE_POPUP_SMS_STORE_TEMP_OK&lt;br /&gt;
 2200076 ← OFFICE_POPUP_SMS_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200077 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_2&lt;br /&gt;
 2200070 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_2&lt;br /&gt;
 2200071 ← OFFICE_POPUP_MAIL_STORE_TEMP_OK&lt;br /&gt;
 2200068 ← OFFICE_POPUP_MAIL_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200069 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_1&lt;br /&gt;
 2200155 ← OFFICE_POPUP_MAIL_MAX_CHARS&lt;br /&gt;
 2200154 ← OFFICE_POPUP_SMS_MAX_CHARS&lt;br /&gt;
 2200153 ← OFFICE_POPUP_SDS_CONTACT_MAIL_MORE&lt;br /&gt;
 2200152 ← OFFICE_POPUP_SMS_SIM_DELETE_DONE&lt;br /&gt;
 2200151 ← OFFICE_POPUP_SMS_SIM_DELETE_ERROR&lt;br /&gt;
 2200150 ← OFFICE_POPUP_SMS_SIM_DELETE_MAIN&lt;br /&gt;
 2200003 ← OFFICE_POPUP_SDS_ACCOUNT_NAMES&lt;br /&gt;
&lt;br /&gt;
== ONLINE ==&lt;br /&gt;
 2300071 ← CM_POPUP_ONLINE_ERROR_LICENSE_CHECK_QUERY&lt;br /&gt;
 2300070 ← CM_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 2300069 ← CM_POPUP_ONLINE_SERVICELIST_NA&lt;br /&gt;
 2300068 ← CM_POPUP_ONLINE_TEASER_NOTE_MAIN&lt;br /&gt;
 2300092 ← CM_POPUP_ONLINE_LICENSE_REJECTED&lt;br /&gt;
 2300090 ← CM_POPUP_ONLINE_NOT_LICENSED&lt;br /&gt;
 2300091 ← CM_POPUP_ONLINE_NOT_ACTIVATED&lt;br /&gt;
 2300060 ← AUDI_CONNECT_RHMI_POPUP_TIMEOUT&lt;br /&gt;
 2300061 ← AUDI_CONNECT_RHMI_POPUP&lt;br /&gt;
 2300057 ← AUDI_CONNECT_POPUP_OPT&lt;br /&gt;
 2300059 ← AUDI_CONNECT_RHMI_POPUP_BUTTON&lt;br /&gt;
 2300139 ← CM_POPUP_ONLINE_NOT_ACTIVATED_G22&lt;br /&gt;
 2300155 ← CM_POPUP_ONLINE_ERRORS_OUT_OF_RANGE&lt;br /&gt;
 2300208 ← AUDI_CONNECT_KEYCARD_POPUP_DEACTIVATE&lt;br /&gt;
 2300210 ← AUDI_CONNECT_SERVICE_ACK_POPUP_MOBILITY_REQUIREMENTS&lt;br /&gt;
 2300204 ← AUDI_CONNECT_KEYCARD_ACTIVATION_ERR_POPUP&lt;br /&gt;
 2300205 ← AUDI_CONNECT_KEYCARD_PHONEBOX_HINT_POPUP&lt;br /&gt;
 2300207 ← AUDI_CONNECT_KEYCARD_POPUP_ACTIVATE&lt;br /&gt;
 2300162 ← AUDI_CONNECT_POPUP_NEW_DESTINATIONS&lt;br /&gt;
&lt;br /&gt;
 2500052 ← CM_POPUP_ONLINE_ERROR_NO_ROAMING&lt;br /&gt;
 2500053 ← CM_POPUP_ONLINE_ERROR_GSM_ACTIVE&lt;br /&gt;
 2500054 ← CM_POPUP_ONLINE_ERROR_ROAMING_DISCLAIMER&lt;br /&gt;
 2500048 ← CM_POPUP_ONLINE_ERROR_NO_PHONE&lt;br /&gt;
 2500049 ← CM_POPUP_ONLINE_ERROR_NO_PIN&lt;br /&gt;
 2500050 ← CM_POPUP_ONLINE_ERROR_NO_SIMAP&lt;br /&gt;
 2500051 ← CM_POPUP_ONLINE_ERROR_DATA_DEACTIVATE&lt;br /&gt;
 2500060 ← CM_POPUP_WLAN_BONDING_ERROR_ELSE&lt;br /&gt;
 2500061 ← CM_POPUP_WLAN_BONDING_ERROR_PIN&lt;br /&gt;
 2500058 ← CM_POPUP_ONLINE_ERROR_NO_SIM&lt;br /&gt;
 2500039 ← CM_POPUP_BLUETOOTH_EXTERNAL_CODE_EDIT&lt;br /&gt;
 2500045 ← CM_POPUP_ONLINE_CONNECTION_REQUEST&lt;br /&gt;
 2500044 ← CM_POPUP_ONLINE_DISCLAIMER_SHOW&lt;br /&gt;
 2500047 ← CM_POPUP_ONLINE_ERROR_NO_CONFIG&lt;br /&gt;
 2500083 ← CM_POPUP_BLUETOOTH_EXTERNAL_MAIN&lt;br /&gt;
 2500092 ← CM_POPUP_ONLINE_ERROR_SIM_FAILURE&lt;br /&gt;
 2500090 ← CM_POPUP_ONLINE_ERROR_NO_PUK&lt;br /&gt;
 2500065 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG_PROFILES_MAIN&lt;br /&gt;
 2500137 ← CM_POPUP_ONLINE_ERROR_NO_ESIM&lt;br /&gt;
 2500138 ← CM_POPUP_ONLINE_ERROR_NO_PHONE_ESIM&lt;br /&gt;
 2500150 ← CM_POPUP_ONLINE_GPS&lt;br /&gt;
 2500018 ← CM_POPUP_BLUETOOTH_OBEX_CODE_PASSWORD&lt;br /&gt;
 2500111 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG&lt;br /&gt;
 2500016 ← CM_POPUP_BLUETOOTH_BONDING_ERROR&lt;br /&gt;
 2500017 ← CM_POPUP_BLUETOOTH_OBEX_CODE_ID&lt;br /&gt;
 2500098 ← CM_POPUP_BLUETOOTH_OBEX_MAIN&lt;br /&gt;
 2500099 ← CM_POPUP_BLUETOOTH_NA&lt;br /&gt;
 2500113 ← CM_POPUP_ONLINE_ERROR_DATA_MODULE_DEACTIVATE&lt;br /&gt;
&lt;br /&gt;
== TV ==&lt;br /&gt;
 2600015 ← TV_POPUP_EWS_MAIN&lt;br /&gt;
 2600016 ← TV_POPUP_EWS_PREFECTURES&lt;br /&gt;
 2600045 ← TV_POPUP_EWS_SMT&lt;br /&gt;
&lt;br /&gt;
== SOS ==&lt;br /&gt;
 3300043 ← SOS_POPUP_MEC_ACCOMPLISHED&lt;br /&gt;
 3300042 ← SOS_POPUP_MEC_REDIAL&lt;br /&gt;
 3300041 ← SOS_POPUP_MEC_FAILED_1&lt;br /&gt;
 3300040 ← SOS_POPUP_MEC_SENDING_DATA&lt;br /&gt;
 3300046 ← SOS_POPUP_REDIAL&lt;br /&gt;
 3300045 ← SOS_POPUP_MEC_CANCELED&lt;br /&gt;
 3300044 ← SOS_POPUP_MEC_FAILED&lt;br /&gt;
 3300035 ← SOS_POPUP_CANCELED&lt;br /&gt;
 3300032 ← SOS_POPUP_ACCOMPLISHED&lt;br /&gt;
 3300039 ← SOS_POPUP_MEC_CONNECTED&lt;br /&gt;
 3300038 ← SOS_POPUP_MEC_CONNECTING&lt;br /&gt;
 3300037 ← OPR_POPUP_CANCELED&lt;br /&gt;
 3300036 ← SOS_POPUP_FAILED&lt;br /&gt;
 3300009 ← OPR_POPUP_CONNECTING&lt;br /&gt;
 3300008 ← OPR_POPUP_DATA_SEND&lt;br /&gt;
 3300011 ← OPR_POPUP_DISCONNECT&lt;br /&gt;
 3300010 ← OPR_POPUP_CONNECTED&lt;br /&gt;
 3300005 ← OPR_POPUP_DATA_END_ACTIVE_CALL&lt;br /&gt;
 3300007 ← OPR_POPUP_DATA_COLLECT&lt;br /&gt;
 3300006 ← SOS_POPUP_ONLINE_LICENSE_NOTE_WEBSHOP&lt;br /&gt;
 3300001 ← OPR_POPUP_MANUAL_CONSIERGE&lt;br /&gt;
 3300003 ← OPR_POPUP_AUTOMATIC&lt;br /&gt;
 3300002 ← OPR_POPUP_MANUAL_CALLCENTER&lt;br /&gt;
 3300028 ← SOS_POPUP_LICENSE_TEASER_NOTE_WEBSHOP&lt;br /&gt;
 3300029 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 3300030 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300031 ← OPR_POPUP_CALL_FAILED&lt;br /&gt;
 3300024 ← SOS_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 3300025 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 3300026 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300027 ← SOS_POPUP_LICENSE_TEASER_NOTE_MAIN&lt;br /&gt;
 3300020 ← SOS_POPUP_CONNECTED&lt;br /&gt;
 3300021 ← SOS_POPUP_SENDING_DATA&lt;br /&gt;
 3300022 ← SOS_POPUP_CALLBACK_INCOMING&lt;br /&gt;
 3300017 ← OPR_DEST_POPUP_MAIN&lt;br /&gt;
 3300018 ← SOS_POPUP_MEC_MAIN&lt;br /&gt;
 3300019 ← SOS_POPUP_CONNECTING&lt;br /&gt;
&lt;br /&gt;
== CHARGING ==&lt;br /&gt;
 3400000 ← CHARGING_POPUP_OBJECT&lt;br /&gt;
 3400001 ← CHARGING_POPUP_FOREIGN_OBJECT_DETECT&lt;br /&gt;
 3400002 ← CHARGING_POPUP_REMINDER&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=436</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=436"/>
		<updated>2026-05-19T07:38:18Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* MEDIA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GENERIC ==&lt;br /&gt;
 35 ← KombiActivePopup&lt;br /&gt;
 42 ← MAIN_POPUP_SYSTEM_BAT_WARNING&lt;br /&gt;
 43 ← MAIN_POPUP_SYSTEM_TEMP&lt;br /&gt;
 52 ← POPUP_VOLUME&lt;br /&gt;
 61 ← POPUP_ANNOUNCEMENT&lt;br /&gt;
 62 ← StatusBarG22 / PartialPopupStatusbar //bottom of the screen&lt;br /&gt;
 64 ← PartialPopupDiagnosis&lt;br /&gt;
 65 ← DebugInfos / PartialPopupDebugInfo&lt;br /&gt;
 66 ← SETTINGS_POPUP_RESET_DRIVER_ERROR&lt;br /&gt;
 67 ← SETTINGS_POPUP_PTT_NO_SDS&lt;br /&gt;
 68 ← sdsDebugPopup&lt;br /&gt;
 72 ← Standby / POPUP_STANDBY&lt;br /&gt;
 75 ← UserHint&lt;br /&gt;
 76 ← UserHint&lt;br /&gt;
 78 ← UserHint&lt;br /&gt;
 80 ← UserHint&lt;br /&gt;
 81 ← UserHint&lt;br /&gt;
 85 ← Presets / PRESET_POPUP&lt;br /&gt;
 93 ← CM_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 94 ← CM_POPUP_ONLINE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 95 ← PartialPopupSportSkin&lt;br /&gt;
 96 ← UserHint&lt;br /&gt;
 97 ← UserHint&lt;br /&gt;
 98 ← UserHint&lt;br /&gt;
 100 ← SDS_LOGICAL_POPUP&lt;br /&gt;
 101 ← StatusBarG24 / PartialPopupStatusbarG24SCD&lt;br /&gt;
 102 ← POPUP_COMBI_POPUP_ACTIVE_DUMMY&lt;br /&gt;
 103 ← UserHint&lt;br /&gt;
 105 ← UserHint&lt;br /&gt;
 113 ← POPUP_NO_NAV_AVAILABLE&lt;br /&gt;
 114 ← MAIN_POPUP_LAYOUT_SPORT_CLASSIC&lt;br /&gt;
 115 ← POPUP_STANDBY_G24&lt;br /&gt;
 116 ← POPUP_ANNOUNCEMENT_G24&lt;br /&gt;
 119 ← Conversion Matrix / POPUP_CONVERSION_MATRIX_ASIA&lt;br /&gt;
 155 ← MAIN_POPUP_SDIS_MEDIA&lt;br /&gt;
 179 ← MAIN_POPUP_SDIS_NAVI&lt;br /&gt;
 180 ← MEDIA_POPUP_A2LS_MAIN&lt;br /&gt;
 183 ← AUDI_CONNECT_POPUP_HINT_MAIN&lt;br /&gt;
 184 ← SETTINGS_POPUP_PTT_NO_SDS_DRIVE_SELECT&lt;br /&gt;
&lt;br /&gt;
== TUNER ==&lt;br /&gt;
 100012 ← TUNER_POPUP_LIST_MSG_ERROR&lt;br /&gt;
 100013 ← TUNER_POPUP_LIST_MSG_ANTENNA&lt;br /&gt;
 100015 ← TUNER_POPUP_LIST_MSG_UPDATE_DONE&lt;br /&gt;
 100032 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_MAIN&lt;br /&gt;
 100033 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_NOPHONE&lt;br /&gt;
 100143 ← TUNER_POPUP_LIST_MSG_INVALID_MAIN&lt;br /&gt;
 100144 ← TUNER_POPUP_LIST_MSG_UNKNOWN&lt;br /&gt;
 100145 ← TUNER_POPUP_LIST_MSG_UPDATE_MAIN&lt;br /&gt;
 100146 ← TUNER_POPUP_LIST_MSG_SIRIUS_ESN&lt;br /&gt;
 100147 ← TUNER_POPUP_OPT&lt;br /&gt;
 100152 ← PP_TUNER_POPUP_TAG_TRANSFER_OK&lt;br /&gt;
 100153 ← PP_TUNER_POPUP_TAG_TRANSFER_RETRY&lt;br /&gt;
 100155 ← PP_TUNER_POPUP_TAG_TRANSFER_MAIN&lt;br /&gt;
 100158 ← TUNER_POPUP_SXM_CALL_NAR&lt;br /&gt;
 100161 ← TUNER_POPUP_RT_LOCATION&lt;br /&gt;
 100162 ← TUNER_POPUP_RT_TEL&lt;br /&gt;
 100163 ← TUNER_POPUP_RT_SMS&lt;br /&gt;
 100164 ← TUNER_POPUP_RT_EMAIL&lt;br /&gt;
 100165 ← TUNER_POPUP_RT_SERVICE_NA&lt;br /&gt;
 100167 ← TUNER_POPUP_RT_NOPHONE_02_MAIN&lt;br /&gt;
&lt;br /&gt;
== MEDIA ==&lt;br /&gt;
 200009 ← source selection //needs to be checked&lt;br /&gt;
 200081 ← MEDIA_POPUP_COPY_SUMMARY_UNIVERSAL&lt;br /&gt;
 200119 ← // video playback title &amp;amp; progress bar&lt;br /&gt;
 200134 ← MEDIA_POPUP_SWITCH_SOURCE_MAIN&lt;br /&gt;
 200135 ← MEDIA_POPUP_SECOND_DEVICE_MAIN&lt;br /&gt;
 200145 ← MEDIA_POPUP_ERRORS_UNIVERSAL&lt;br /&gt;
 200204 ← MEDIA_POPUP_COPY_SUMMARY_OK&lt;br /&gt;
 200205 ← MEDIA_POPUP_PRESET_DISABLED&lt;br /&gt;
&lt;br /&gt;
== PHONE ==&lt;br /&gt;
 300000 ← entertainment drawer //needs to be checked&lt;br /&gt;
 300084 ← TEL_POPUP_ERR&lt;br /&gt;
 300085 ← TEL_POPUP_BATTERY_WARNING&lt;br /&gt;
 300161 ← TEL_POPUP_MFL_PHONE_NA&lt;br /&gt;
 300162 ← TEL_POPUP_MFL_CALL_LIST&lt;br /&gt;
 300164 ← TEL_POPUP_SERVICE_CODE_HFP&lt;br /&gt;
 300166 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NET&lt;br /&gt;
 300167 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_ACTIVE&lt;br /&gt;
 300168 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_NOT_ACTIVE&lt;br /&gt;
 300169 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_ACTIVE&lt;br /&gt;
 300170 ← TEL_POPUP_SERVICE_CODE_SAP_REQ&lt;br /&gt;
 300171 ← TEL_POPUP_SERVICE_CODE_SAP_OK&lt;br /&gt;
 300172 ← TEL_POPUP_SERVICE_CODE_SAP_ERR&lt;br /&gt;
 300173 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US&lt;br /&gt;
 300174 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_ACTIVE&lt;br /&gt;
 300175 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_NOT_ACTIVE&lt;br /&gt;
 300176 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NOT_ACTIVE&lt;br /&gt;
 300181 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_ACTIVATE_OK&lt;br /&gt;
 300182 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_CANCEL_OK&lt;br /&gt;
 300183 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_ACTIVATE_OK&lt;br /&gt;
 300184 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_CANCEL_OK&lt;br /&gt;
 300185 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_ACTIVATE_OK&lt;br /&gt;
 300186 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_CANCEL_OK&lt;br /&gt;
 300213 ← TEL_POPUP_AUTOGRAP&lt;br /&gt;
 300329 ← TEL_POPUP_AUDIO&lt;br /&gt;
&lt;br /&gt;
== MAP ==&lt;br /&gt;
 400367 ← DEST_POPUP_NAVI_REMOVED_MAIN&lt;br /&gt;
 400354 ← MAP_POPUP_HOV_LANE&lt;br /&gt;
 400373 ← MAP_POPUP_MINI_MAP&lt;br /&gt;
 400372 ← MAP_POPUP_SELENA_MAIN&lt;br /&gt;
 400345 ← DEST_POPUP_NO_HOME_ADDRESS_XXX&lt;br /&gt;
 400269 ← DEST_POPUP_ADDRESS_NAR_INVALID_NUMBER&lt;br /&gt;
 400281 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TUNNEL_ASIA&lt;br /&gt;
 400280 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_FERRY_ASIA&lt;br /&gt;
 400277 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_MOTORWAY_ASIA&lt;br /&gt;
 400279 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_BRIDGE_ASIA&lt;br /&gt;
 400278 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TOLL_ASIA&lt;br /&gt;
 400231 ← MAP_POPUP_GE_LICENCE_EXPIRED&lt;br /&gt;
 400230 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT_EDIT&lt;br /&gt;
 400225 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_FULL&lt;br /&gt;
 400224 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_ERROR&lt;br /&gt;
 400232 ← MAP_POPUP_ONLINE_TRAFFIC_LICENCE_EXPIRED&lt;br /&gt;
 400254 ← MAP_POPUP_DB_MERGE_FINISHED_ASIA&lt;br /&gt;
 400194 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT&lt;br /&gt;
 400205 ← MAP_POPUP_ROUTECALC_FAIL_MULTI&lt;br /&gt;
 400204 ← MAP_POPUP_ROUTECALC_FAIL_SINGLE&lt;br /&gt;
 400214 ← MAP_POPUP_MAPMODE_GOOGLE_MESSAGES_OFFLINE&lt;br /&gt;
 400215 ← MAP_POPUP_MAPMODE_GOOGLE_NO_DATA&lt;br /&gt;
 400211 ← NAV_SDS_POPUP_CONTACT&lt;br /&gt;
 400220 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_TEMP_ERROR&lt;br /&gt;
 400221 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_COUNTRY&lt;br /&gt;
 400222 ← MAP_POPUP_MAPVIEW_STREETVIEW_DRIVING&lt;br /&gt;
 400223 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_OK&lt;br /&gt;
 400218 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_LICENCE&lt;br /&gt;
 400219 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_CONNECTION&lt;br /&gt;
 400186 ← MAP_POPUP_SHOW_POI_WARNING_MAIN&lt;br /&gt;
 400190 ← DEST_POPUP_NVC_NUMBER_INVALID_MAIN&lt;br /&gt;
 400133 ← MAP_POPUP_SEMIDYN_BLOCK_MAIN&lt;br /&gt;
 400134 ← MAP_POPUP_SEMIDYN_BETTER&lt;br /&gt;
 400149 ← DEST_POPUP_DATABASE_INCOMPLETE&lt;br /&gt;
 400124 ← DEST_POPUP_DEMO_MODE_ACTIVE&lt;br /&gt;
 400120 ← DEST_POPUP_SETDEST_ONE_DEST&lt;br /&gt;
 400104 ← MAP_POPUP_GAS_STATION_LIST&lt;br /&gt;
 400103 ← MAP_POPUP_GAS_WARNING_MAIN&lt;br /&gt;
 400079 ← DEST_POPUP_SETDEST_TWO_DEST&lt;br /&gt;
&lt;br /&gt;
== ??? ==&lt;br /&gt;
 500006 ← MAP_POPUP_SHOW_URGENT_WARNING_MAIN&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
== Garage Door Opener, Charisma, Bordbook ==&lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
 600045 ← MAIN_POPUP_SYSTEM_TEL_MAX_WARNING&lt;br /&gt;
 600046 ← MAIN_POPUP_SYSTEM_THEFT_PROTECTION&lt;br /&gt;
 600047 ← MAIN_POPUP_SHOWROOM&lt;br /&gt;
 600086 ← CAR_POPUP_UGDO_LEARN_VISIBLE&lt;br /&gt;
 600087 ← CAR_POPUP_UGDO_SYNC_VISIBLE&lt;br /&gt;
 600106 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN&lt;br /&gt;
 600107 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_DISCLAIMER&lt;br /&gt;
 600108 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_EMPTY&lt;br /&gt;
 600112 ← SETTINGS_POPUP_INSTRUCTION_BOOK_VIDEO&lt;br /&gt;
 600114 ← CAR_POPUP_VISIBLE&lt;br /&gt;
 600128 ← CAR_POPUP_DRIVING_SCHOOL_MAIN&lt;br /&gt;
 600138 ← CAR_POPUP_DRIVE_SELECT_LIFT_N_A&lt;br /&gt;
 600139 ← CAR_POPUP_DRIVE_SELECT_EFFICIENCY_N_A&lt;br /&gt;
 600145 ← SETTINGS_POPUP_INSTRUCTION_BOOK_WAITING&lt;br /&gt;
 600298 ← CAR_POPUP_AUXAC&lt;br /&gt;
&lt;br /&gt;
 700017 ← ADB_POPUP_DOWNLOAD_ERROR&lt;br /&gt;
 700045 ← ADB_SDS_POPUP_CONTACT&lt;br /&gt;
&lt;br /&gt;
== MAPS Japan ==&lt;br /&gt;
 900016 ← MAP_POPUP_VICS_DSRC_FIGURE_JP&lt;br /&gt;
 900022 ← MAP_POPUP_VICS_GEN2_EMERGENCY_JP_MAIN&lt;br /&gt;
 900014 ← MAP_OPT_VICS_SETUP_JP_POPUP_MSG&lt;br /&gt;
 900005 ← MAP_POPUP_DSRC_TTS_PPU_JP&lt;br /&gt;
&lt;br /&gt;
== SoftWare DownLoad ==&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
 1700000 ← UpdateInterrupted&lt;br /&gt;
 1700002 ← UpdateFailure&lt;br /&gt;
 1700003 ← UpdateSuccessful&lt;br /&gt;
 1700009 ← CompatibilityCheckFailure&lt;br /&gt;
 1700010 ← custDownloadInfoPopup&lt;br /&gt;
 1700017 ← SummaryChanged&lt;br /&gt;
 1700069 ← custDownloadLeaveProgress&lt;br /&gt;
&lt;br /&gt;
== ETC payment system ==&lt;br /&gt;
 1100048 ← ETC_POPUP_NO_CARD_INSERTED_JP_MAIN&lt;br /&gt;
 1100049 ← ETC_POPUP_CARD_STILL_INSERT_JP_MAIN&lt;br /&gt;
 1100053 ← ETC_POPUP_ERROR_JP&lt;br /&gt;
 1100054 ← ETC_POPUP_PASS_GATE_JP&lt;br /&gt;
 1100055 ← MAIN_POPUP_TIMEZONE&lt;br /&gt;
 1100056 ← MAIN_POPUP_SOMMER_TIME&lt;br /&gt;
&lt;br /&gt;
== SETTINGS ==&lt;br /&gt;
 1700079 ← SETTINGS_POPUP_GEN_NEW_DATA_AVAILABLE&lt;br /&gt;
 1700078 ← SETTINGS_POPUP_NAVI_LICENCE_GETTTING_INVALID&lt;br /&gt;
 1700077 ← SETTINGS_POPUP_NAVI_NEW_DATA_AVAILABLE_LICENCE_NOT_AVAILABLE&lt;br /&gt;
 1700076 ← SETTINGS_POPUP_UPDATE_ONLINE_NEW_DATA_AVAILABLE_LICENCE_AVAILABLE&lt;br /&gt;
 1700090 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DISCLAIMER&lt;br /&gt;
 1700091 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL&lt;br /&gt;
 1700082 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE_RETRY_POSSIBLE&lt;br /&gt;
 1700083 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE&lt;br /&gt;
 1700086 ← SETTINGS_POPUP_ONLINE_UPDATE_INCOMPATIBLE_DATA&lt;br /&gt;
 1700087 ← SETTINGS_POPUP_ONLINE_UPDATE_SERVER_FAILURE&lt;br /&gt;
 1700084 ← SETTINGS_POPUP_ONLINE_UPDATE_ACCESS_FAILURE&lt;br /&gt;
 1700085 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_DATA&lt;br /&gt;
 1700047 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_SUCCESSFUL&lt;br /&gt;
 1700046 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_FAILURE&lt;br /&gt;
 1700048 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_INTERRUPT_SD&lt;br /&gt;
 1700054 ← SETTINGS_POPUP_UPDATE_SOURCE_CONFIRMATION&lt;br /&gt;
 1700145 ← SETTINGS_POPUP_ONLINE_UPDATE_UOTASERVER_FAILURE&lt;br /&gt;
 1700144 ← SETTINGS_POPUP_UPDATE_PERSONALIZE&lt;br /&gt;
 1700146 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_SERVICE&lt;br /&gt;
 1700140 ← SETTINGS_POPUP_UPDATE_ONLINE_PROPOSAL_TRAVEL_NEW_DATA_AVAILABLE_LICENCE&lt;br /&gt;
 1700141 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DESTINATION&lt;br /&gt;
 1700142 ← SETTINGS_POPUP_UPDATE_NAV_DB_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
 1700143 ← SETTINGS_POPUP_UPDATE_PPOI_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
&lt;br /&gt;
== CAR Early apps ==&lt;br /&gt;
 2100000 ← CAR_POPUP_PARKING_PLA_ACTIVE_PARK&lt;br /&gt;
 2100001 ← CAR_POPUP_PARKING_APS_OPS_VPS_RVC&lt;br /&gt;
 2100002 ← CAR_POPUP_PARKING_ARA&lt;br /&gt;
 2100008 ← CAR_POPUP_PARKING_OPS&lt;br /&gt;
 2100009 ← CAR_POPUP_PARKING_ARA_TEXTS&lt;br /&gt;
 2100010 ← CAR_POPUP_PARKING_PLA_TEXTS_MAIN&lt;br /&gt;
 2100016 ← CAR_POPUP_SEAT_RIGHT&lt;br /&gt;
 2100017 ← CAR_POPUP_SEAT_LEFT&lt;br /&gt;
 2100018 ← CAR_POPUP_SEATMEMORY_LEFT&lt;br /&gt;
 2100021 ← CAR_POPUP_SEATMEMORY_RIGHT&lt;br /&gt;
 2100030 ← CAR_POPUP_SEAT_KOMBI_LEFT&lt;br /&gt;
 2100031 ← CAR_POPUP_SEAT_KOMBI_RIGHT&lt;br /&gt;
 2100035 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_LEFT&lt;br /&gt;
 2100036 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_SELECTION&lt;br /&gt;
 2100037 ← CAR_POPUP_PARKING_VISIBLE&lt;br /&gt;
 2100038 ← CAR_POPUP_PARKING_PLA_TEXT_OK&lt;br /&gt;
 2100040 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_RIGHT&lt;br /&gt;
 2100042 ← CAR_POPUP_CHARGE_END_INVISIBLE&lt;br /&gt;
 2100043 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_OUT&lt;br /&gt;
 2100044 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_CENTER&lt;br /&gt;
 2100045 ← CAR_POPUP_SOCCONTROL_MAIN&lt;br /&gt;
 2100065 ← CAR_POPUP_END_AUXCOMBINED_MAIN&lt;br /&gt;
 2100066 ← CAR_POPUP_END_AUXAC_MAIN&lt;br /&gt;
 2100067 ← CAR_POPUP_CHARGE_END&lt;br /&gt;
 2100070 ← CAR_POPUP_CHARGE_END_INVISIBLE_A3MQB&lt;br /&gt;
 2100071 ← CAR_POPUP_PARKING_ARA_TEXTS_CENTER&lt;br /&gt;
&lt;br /&gt;
== OFFICE ==&lt;br /&gt;
 2200104 ← OFFICE_POPUP_MAIL_STORE_VCARD_OK&lt;br /&gt;
 2200099 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_2&lt;br /&gt;
 2200100 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_1&lt;br /&gt;
 2200101 ← OFFICE_POPUP_SMS_STORE_VCARD_OK&lt;br /&gt;
 2200102 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_1&lt;br /&gt;
 2200103 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_2&lt;br /&gt;
 2200091 ← OFFICE_POPUP_MAIL_SPEED_DISCLAIMER&lt;br /&gt;
 2200090 ← OFFICE_POPUP_MAIL_STORE_DRAFT_OK&lt;br /&gt;
 2200089 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200088 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200092 ← OFFICE_POPUP_SMS_SPEED_DISCLAIMER&lt;br /&gt;
 2200083 ← OFFICE_POPUP_SMS_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200087 ← OFFICE_POPUP_MAIL_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200086 ← OFFICE_POPUP_SMS_STORE_DRAFT_OK&lt;br /&gt;
 2200085 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200084 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200078 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_1&lt;br /&gt;
 2200079 ← OFFICE_POPUP_SMS_STORE_TEMP_OK&lt;br /&gt;
 2200076 ← OFFICE_POPUP_SMS_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200077 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_2&lt;br /&gt;
 2200070 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_2&lt;br /&gt;
 2200071 ← OFFICE_POPUP_MAIL_STORE_TEMP_OK&lt;br /&gt;
 2200068 ← OFFICE_POPUP_MAIL_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200069 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_1&lt;br /&gt;
 2200155 ← OFFICE_POPUP_MAIL_MAX_CHARS&lt;br /&gt;
 2200154 ← OFFICE_POPUP_SMS_MAX_CHARS&lt;br /&gt;
 2200153 ← OFFICE_POPUP_SDS_CONTACT_MAIL_MORE&lt;br /&gt;
 2200152 ← OFFICE_POPUP_SMS_SIM_DELETE_DONE&lt;br /&gt;
 2200151 ← OFFICE_POPUP_SMS_SIM_DELETE_ERROR&lt;br /&gt;
 2200150 ← OFFICE_POPUP_SMS_SIM_DELETE_MAIN&lt;br /&gt;
 2200003 ← OFFICE_POPUP_SDS_ACCOUNT_NAMES&lt;br /&gt;
&lt;br /&gt;
== ONLINE ==&lt;br /&gt;
 2300071 ← CM_POPUP_ONLINE_ERROR_LICENSE_CHECK_QUERY&lt;br /&gt;
 2300070 ← CM_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 2300069 ← CM_POPUP_ONLINE_SERVICELIST_NA&lt;br /&gt;
 2300068 ← CM_POPUP_ONLINE_TEASER_NOTE_MAIN&lt;br /&gt;
 2300092 ← CM_POPUP_ONLINE_LICENSE_REJECTED&lt;br /&gt;
 2300090 ← CM_POPUP_ONLINE_NOT_LICENSED&lt;br /&gt;
 2300091 ← CM_POPUP_ONLINE_NOT_ACTIVATED&lt;br /&gt;
 2300060 ← AUDI_CONNECT_RHMI_POPUP_TIMEOUT&lt;br /&gt;
 2300061 ← AUDI_CONNECT_RHMI_POPUP&lt;br /&gt;
 2300057 ← AUDI_CONNECT_POPUP_OPT&lt;br /&gt;
 2300059 ← AUDI_CONNECT_RHMI_POPUP_BUTTON&lt;br /&gt;
 2300139 ← CM_POPUP_ONLINE_NOT_ACTIVATED_G22&lt;br /&gt;
 2300155 ← CM_POPUP_ONLINE_ERRORS_OUT_OF_RANGE&lt;br /&gt;
 2300208 ← AUDI_CONNECT_KEYCARD_POPUP_DEACTIVATE&lt;br /&gt;
 2300210 ← AUDI_CONNECT_SERVICE_ACK_POPUP_MOBILITY_REQUIREMENTS&lt;br /&gt;
 2300204 ← AUDI_CONNECT_KEYCARD_ACTIVATION_ERR_POPUP&lt;br /&gt;
 2300205 ← AUDI_CONNECT_KEYCARD_PHONEBOX_HINT_POPUP&lt;br /&gt;
 2300207 ← AUDI_CONNECT_KEYCARD_POPUP_ACTIVATE&lt;br /&gt;
 2300162 ← AUDI_CONNECT_POPUP_NEW_DESTINATIONS&lt;br /&gt;
&lt;br /&gt;
 2500052 ← CM_POPUP_ONLINE_ERROR_NO_ROAMING&lt;br /&gt;
 2500053 ← CM_POPUP_ONLINE_ERROR_GSM_ACTIVE&lt;br /&gt;
 2500054 ← CM_POPUP_ONLINE_ERROR_ROAMING_DISCLAIMER&lt;br /&gt;
 2500048 ← CM_POPUP_ONLINE_ERROR_NO_PHONE&lt;br /&gt;
 2500049 ← CM_POPUP_ONLINE_ERROR_NO_PIN&lt;br /&gt;
 2500050 ← CM_POPUP_ONLINE_ERROR_NO_SIMAP&lt;br /&gt;
 2500051 ← CM_POPUP_ONLINE_ERROR_DATA_DEACTIVATE&lt;br /&gt;
 2500060 ← CM_POPUP_WLAN_BONDING_ERROR_ELSE&lt;br /&gt;
 2500061 ← CM_POPUP_WLAN_BONDING_ERROR_PIN&lt;br /&gt;
 2500058 ← CM_POPUP_ONLINE_ERROR_NO_SIM&lt;br /&gt;
 2500039 ← CM_POPUP_BLUETOOTH_EXTERNAL_CODE_EDIT&lt;br /&gt;
 2500045 ← CM_POPUP_ONLINE_CONNECTION_REQUEST&lt;br /&gt;
 2500044 ← CM_POPUP_ONLINE_DISCLAIMER_SHOW&lt;br /&gt;
 2500047 ← CM_POPUP_ONLINE_ERROR_NO_CONFIG&lt;br /&gt;
 2500083 ← CM_POPUP_BLUETOOTH_EXTERNAL_MAIN&lt;br /&gt;
 2500092 ← CM_POPUP_ONLINE_ERROR_SIM_FAILURE&lt;br /&gt;
 2500090 ← CM_POPUP_ONLINE_ERROR_NO_PUK&lt;br /&gt;
 2500065 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG_PROFILES_MAIN&lt;br /&gt;
 2500137 ← CM_POPUP_ONLINE_ERROR_NO_ESIM&lt;br /&gt;
 2500138 ← CM_POPUP_ONLINE_ERROR_NO_PHONE_ESIM&lt;br /&gt;
 2500150 ← CM_POPUP_ONLINE_GPS&lt;br /&gt;
 2500018 ← CM_POPUP_BLUETOOTH_OBEX_CODE_PASSWORD&lt;br /&gt;
 2500111 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG&lt;br /&gt;
 2500016 ← CM_POPUP_BLUETOOTH_BONDING_ERROR&lt;br /&gt;
 2500017 ← CM_POPUP_BLUETOOTH_OBEX_CODE_ID&lt;br /&gt;
 2500098 ← CM_POPUP_BLUETOOTH_OBEX_MAIN&lt;br /&gt;
 2500099 ← CM_POPUP_BLUETOOTH_NA&lt;br /&gt;
 2500113 ← CM_POPUP_ONLINE_ERROR_DATA_MODULE_DEACTIVATE&lt;br /&gt;
&lt;br /&gt;
== TV ==&lt;br /&gt;
 2600015 ← TV_POPUP_EWS_MAIN&lt;br /&gt;
 2600016 ← TV_POPUP_EWS_PREFECTURES&lt;br /&gt;
 2600045 ← TV_POPUP_EWS_SMT&lt;br /&gt;
&lt;br /&gt;
== SOS ==&lt;br /&gt;
 3300043 ← SOS_POPUP_MEC_ACCOMPLISHED&lt;br /&gt;
 3300042 ← SOS_POPUP_MEC_REDIAL&lt;br /&gt;
 3300041 ← SOS_POPUP_MEC_FAILED_1&lt;br /&gt;
 3300040 ← SOS_POPUP_MEC_SENDING_DATA&lt;br /&gt;
 3300046 ← SOS_POPUP_REDIAL&lt;br /&gt;
 3300045 ← SOS_POPUP_MEC_CANCELED&lt;br /&gt;
 3300044 ← SOS_POPUP_MEC_FAILED&lt;br /&gt;
 3300035 ← SOS_POPUP_CANCELED&lt;br /&gt;
 3300032 ← SOS_POPUP_ACCOMPLISHED&lt;br /&gt;
 3300039 ← SOS_POPUP_MEC_CONNECTED&lt;br /&gt;
 3300038 ← SOS_POPUP_MEC_CONNECTING&lt;br /&gt;
 3300037 ← OPR_POPUP_CANCELED&lt;br /&gt;
 3300036 ← SOS_POPUP_FAILED&lt;br /&gt;
 3300009 ← OPR_POPUP_CONNECTING&lt;br /&gt;
 3300008 ← OPR_POPUP_DATA_SEND&lt;br /&gt;
 3300011 ← OPR_POPUP_DISCONNECT&lt;br /&gt;
 3300010 ← OPR_POPUP_CONNECTED&lt;br /&gt;
 3300005 ← OPR_POPUP_DATA_END_ACTIVE_CALL&lt;br /&gt;
 3300007 ← OPR_POPUP_DATA_COLLECT&lt;br /&gt;
 3300006 ← SOS_POPUP_ONLINE_LICENSE_NOTE_WEBSHOP&lt;br /&gt;
 3300001 ← OPR_POPUP_MANUAL_CONSIERGE&lt;br /&gt;
 3300003 ← OPR_POPUP_AUTOMATIC&lt;br /&gt;
 3300002 ← OPR_POPUP_MANUAL_CALLCENTER&lt;br /&gt;
 3300028 ← SOS_POPUP_LICENSE_TEASER_NOTE_WEBSHOP&lt;br /&gt;
 3300029 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 3300030 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300031 ← OPR_POPUP_CALL_FAILED&lt;br /&gt;
 3300024 ← SOS_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 3300025 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 3300026 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300027 ← SOS_POPUP_LICENSE_TEASER_NOTE_MAIN&lt;br /&gt;
 3300020 ← SOS_POPUP_CONNECTED&lt;br /&gt;
 3300021 ← SOS_POPUP_SENDING_DATA&lt;br /&gt;
 3300022 ← SOS_POPUP_CALLBACK_INCOMING&lt;br /&gt;
 3300017 ← OPR_DEST_POPUP_MAIN&lt;br /&gt;
 3300018 ← SOS_POPUP_MEC_MAIN&lt;br /&gt;
 3300019 ← SOS_POPUP_CONNECTING&lt;br /&gt;
&lt;br /&gt;
== CHARGING ==&lt;br /&gt;
 3400000 ← CHARGING_POPUP_OBJECT&lt;br /&gt;
 3400001 ← CHARGING_POPUP_FOREIGN_OBJECT_DETECT&lt;br /&gt;
 3400002 ← CHARGING_POPUP_REMINDER&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=435</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=435"/>
		<updated>2026-05-19T07:37:39Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* GENERIC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GENERIC ==&lt;br /&gt;
 35 ← KombiActivePopup&lt;br /&gt;
 42 ← MAIN_POPUP_SYSTEM_BAT_WARNING&lt;br /&gt;
 43 ← MAIN_POPUP_SYSTEM_TEMP&lt;br /&gt;
 52 ← POPUP_VOLUME&lt;br /&gt;
 61 ← POPUP_ANNOUNCEMENT&lt;br /&gt;
 62 ← StatusBarG22 / PartialPopupStatusbar //bottom of the screen&lt;br /&gt;
 64 ← PartialPopupDiagnosis&lt;br /&gt;
 65 ← DebugInfos / PartialPopupDebugInfo&lt;br /&gt;
 66 ← SETTINGS_POPUP_RESET_DRIVER_ERROR&lt;br /&gt;
 67 ← SETTINGS_POPUP_PTT_NO_SDS&lt;br /&gt;
 68 ← sdsDebugPopup&lt;br /&gt;
 72 ← Standby / POPUP_STANDBY&lt;br /&gt;
 75 ← UserHint&lt;br /&gt;
 76 ← UserHint&lt;br /&gt;
 78 ← UserHint&lt;br /&gt;
 80 ← UserHint&lt;br /&gt;
 81 ← UserHint&lt;br /&gt;
 85 ← Presets / PRESET_POPUP&lt;br /&gt;
 93 ← CM_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 94 ← CM_POPUP_ONLINE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 95 ← PartialPopupSportSkin&lt;br /&gt;
 96 ← UserHint&lt;br /&gt;
 97 ← UserHint&lt;br /&gt;
 98 ← UserHint&lt;br /&gt;
 100 ← SDS_LOGICAL_POPUP&lt;br /&gt;
 101 ← StatusBarG24 / PartialPopupStatusbarG24SCD&lt;br /&gt;
 102 ← POPUP_COMBI_POPUP_ACTIVE_DUMMY&lt;br /&gt;
 103 ← UserHint&lt;br /&gt;
 105 ← UserHint&lt;br /&gt;
 113 ← POPUP_NO_NAV_AVAILABLE&lt;br /&gt;
 114 ← MAIN_POPUP_LAYOUT_SPORT_CLASSIC&lt;br /&gt;
 115 ← POPUP_STANDBY_G24&lt;br /&gt;
 116 ← POPUP_ANNOUNCEMENT_G24&lt;br /&gt;
 119 ← Conversion Matrix / POPUP_CONVERSION_MATRIX_ASIA&lt;br /&gt;
 155 ← MAIN_POPUP_SDIS_MEDIA&lt;br /&gt;
 179 ← MAIN_POPUP_SDIS_NAVI&lt;br /&gt;
 180 ← MEDIA_POPUP_A2LS_MAIN&lt;br /&gt;
 183 ← AUDI_CONNECT_POPUP_HINT_MAIN&lt;br /&gt;
 184 ← SETTINGS_POPUP_PTT_NO_SDS_DRIVE_SELECT&lt;br /&gt;
&lt;br /&gt;
== TUNER ==&lt;br /&gt;
 100012 ← TUNER_POPUP_LIST_MSG_ERROR&lt;br /&gt;
 100013 ← TUNER_POPUP_LIST_MSG_ANTENNA&lt;br /&gt;
 100015 ← TUNER_POPUP_LIST_MSG_UPDATE_DONE&lt;br /&gt;
 100032 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_MAIN&lt;br /&gt;
 100033 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_NOPHONE&lt;br /&gt;
 100143 ← TUNER_POPUP_LIST_MSG_INVALID_MAIN&lt;br /&gt;
 100144 ← TUNER_POPUP_LIST_MSG_UNKNOWN&lt;br /&gt;
 100145 ← TUNER_POPUP_LIST_MSG_UPDATE_MAIN&lt;br /&gt;
 100146 ← TUNER_POPUP_LIST_MSG_SIRIUS_ESN&lt;br /&gt;
 100147 ← TUNER_POPUP_OPT&lt;br /&gt;
 100152 ← PP_TUNER_POPUP_TAG_TRANSFER_OK&lt;br /&gt;
 100153 ← PP_TUNER_POPUP_TAG_TRANSFER_RETRY&lt;br /&gt;
 100155 ← PP_TUNER_POPUP_TAG_TRANSFER_MAIN&lt;br /&gt;
 100158 ← TUNER_POPUP_SXM_CALL_NAR&lt;br /&gt;
 100161 ← TUNER_POPUP_RT_LOCATION&lt;br /&gt;
 100162 ← TUNER_POPUP_RT_TEL&lt;br /&gt;
 100163 ← TUNER_POPUP_RT_SMS&lt;br /&gt;
 100164 ← TUNER_POPUP_RT_EMAIL&lt;br /&gt;
 100165 ← TUNER_POPUP_RT_SERVICE_NA&lt;br /&gt;
 100167 ← TUNER_POPUP_RT_NOPHONE_02_MAIN&lt;br /&gt;
&lt;br /&gt;
== MEDIA ==&lt;br /&gt;
 200009 ← source selection //needs to be checked&lt;br /&gt;
 200081 ← MEDIA_POPUP_COPY_SUMMARY_UNIVERSAL&lt;br /&gt;
 200134 ← MEDIA_POPUP_SWITCH_SOURCE_MAIN&lt;br /&gt;
 200135 ← MEDIA_POPUP_SECOND_DEVICE_MAIN&lt;br /&gt;
 200145 ← MEDIA_POPUP_ERRORS_UNIVERSAL&lt;br /&gt;
 200204 ← MEDIA_POPUP_COPY_SUMMARY_OK&lt;br /&gt;
 200205 ← MEDIA_POPUP_PRESET_DISABLED&lt;br /&gt;
&lt;br /&gt;
== PHONE ==&lt;br /&gt;
 300000 ← entertainment drawer //needs to be checked&lt;br /&gt;
 300084 ← TEL_POPUP_ERR&lt;br /&gt;
 300085 ← TEL_POPUP_BATTERY_WARNING&lt;br /&gt;
 300161 ← TEL_POPUP_MFL_PHONE_NA&lt;br /&gt;
 300162 ← TEL_POPUP_MFL_CALL_LIST&lt;br /&gt;
 300164 ← TEL_POPUP_SERVICE_CODE_HFP&lt;br /&gt;
 300166 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NET&lt;br /&gt;
 300167 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_ACTIVE&lt;br /&gt;
 300168 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_NOT_ACTIVE&lt;br /&gt;
 300169 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_ACTIVE&lt;br /&gt;
 300170 ← TEL_POPUP_SERVICE_CODE_SAP_REQ&lt;br /&gt;
 300171 ← TEL_POPUP_SERVICE_CODE_SAP_OK&lt;br /&gt;
 300172 ← TEL_POPUP_SERVICE_CODE_SAP_ERR&lt;br /&gt;
 300173 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US&lt;br /&gt;
 300174 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_ACTIVE&lt;br /&gt;
 300175 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_NOT_ACTIVE&lt;br /&gt;
 300176 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NOT_ACTIVE&lt;br /&gt;
 300181 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_ACTIVATE_OK&lt;br /&gt;
 300182 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_CANCEL_OK&lt;br /&gt;
 300183 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_ACTIVATE_OK&lt;br /&gt;
 300184 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_CANCEL_OK&lt;br /&gt;
 300185 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_ACTIVATE_OK&lt;br /&gt;
 300186 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_CANCEL_OK&lt;br /&gt;
 300213 ← TEL_POPUP_AUTOGRAP&lt;br /&gt;
 300329 ← TEL_POPUP_AUDIO&lt;br /&gt;
&lt;br /&gt;
== MAP ==&lt;br /&gt;
 400367 ← DEST_POPUP_NAVI_REMOVED_MAIN&lt;br /&gt;
 400354 ← MAP_POPUP_HOV_LANE&lt;br /&gt;
 400373 ← MAP_POPUP_MINI_MAP&lt;br /&gt;
 400372 ← MAP_POPUP_SELENA_MAIN&lt;br /&gt;
 400345 ← DEST_POPUP_NO_HOME_ADDRESS_XXX&lt;br /&gt;
 400269 ← DEST_POPUP_ADDRESS_NAR_INVALID_NUMBER&lt;br /&gt;
 400281 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TUNNEL_ASIA&lt;br /&gt;
 400280 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_FERRY_ASIA&lt;br /&gt;
 400277 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_MOTORWAY_ASIA&lt;br /&gt;
 400279 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_BRIDGE_ASIA&lt;br /&gt;
 400278 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TOLL_ASIA&lt;br /&gt;
 400231 ← MAP_POPUP_GE_LICENCE_EXPIRED&lt;br /&gt;
 400230 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT_EDIT&lt;br /&gt;
 400225 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_FULL&lt;br /&gt;
 400224 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_ERROR&lt;br /&gt;
 400232 ← MAP_POPUP_ONLINE_TRAFFIC_LICENCE_EXPIRED&lt;br /&gt;
 400254 ← MAP_POPUP_DB_MERGE_FINISHED_ASIA&lt;br /&gt;
 400194 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT&lt;br /&gt;
 400205 ← MAP_POPUP_ROUTECALC_FAIL_MULTI&lt;br /&gt;
 400204 ← MAP_POPUP_ROUTECALC_FAIL_SINGLE&lt;br /&gt;
 400214 ← MAP_POPUP_MAPMODE_GOOGLE_MESSAGES_OFFLINE&lt;br /&gt;
 400215 ← MAP_POPUP_MAPMODE_GOOGLE_NO_DATA&lt;br /&gt;
 400211 ← NAV_SDS_POPUP_CONTACT&lt;br /&gt;
 400220 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_TEMP_ERROR&lt;br /&gt;
 400221 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_COUNTRY&lt;br /&gt;
 400222 ← MAP_POPUP_MAPVIEW_STREETVIEW_DRIVING&lt;br /&gt;
 400223 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_OK&lt;br /&gt;
 400218 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_LICENCE&lt;br /&gt;
 400219 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_CONNECTION&lt;br /&gt;
 400186 ← MAP_POPUP_SHOW_POI_WARNING_MAIN&lt;br /&gt;
 400190 ← DEST_POPUP_NVC_NUMBER_INVALID_MAIN&lt;br /&gt;
 400133 ← MAP_POPUP_SEMIDYN_BLOCK_MAIN&lt;br /&gt;
 400134 ← MAP_POPUP_SEMIDYN_BETTER&lt;br /&gt;
 400149 ← DEST_POPUP_DATABASE_INCOMPLETE&lt;br /&gt;
 400124 ← DEST_POPUP_DEMO_MODE_ACTIVE&lt;br /&gt;
 400120 ← DEST_POPUP_SETDEST_ONE_DEST&lt;br /&gt;
 400104 ← MAP_POPUP_GAS_STATION_LIST&lt;br /&gt;
 400103 ← MAP_POPUP_GAS_WARNING_MAIN&lt;br /&gt;
 400079 ← DEST_POPUP_SETDEST_TWO_DEST&lt;br /&gt;
&lt;br /&gt;
== ??? ==&lt;br /&gt;
 500006 ← MAP_POPUP_SHOW_URGENT_WARNING_MAIN&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
== Garage Door Opener, Charisma, Bordbook ==&lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
 600045 ← MAIN_POPUP_SYSTEM_TEL_MAX_WARNING&lt;br /&gt;
 600046 ← MAIN_POPUP_SYSTEM_THEFT_PROTECTION&lt;br /&gt;
 600047 ← MAIN_POPUP_SHOWROOM&lt;br /&gt;
 600086 ← CAR_POPUP_UGDO_LEARN_VISIBLE&lt;br /&gt;
 600087 ← CAR_POPUP_UGDO_SYNC_VISIBLE&lt;br /&gt;
 600106 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN&lt;br /&gt;
 600107 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_DISCLAIMER&lt;br /&gt;
 600108 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_EMPTY&lt;br /&gt;
 600112 ← SETTINGS_POPUP_INSTRUCTION_BOOK_VIDEO&lt;br /&gt;
 600114 ← CAR_POPUP_VISIBLE&lt;br /&gt;
 600128 ← CAR_POPUP_DRIVING_SCHOOL_MAIN&lt;br /&gt;
 600138 ← CAR_POPUP_DRIVE_SELECT_LIFT_N_A&lt;br /&gt;
 600139 ← CAR_POPUP_DRIVE_SELECT_EFFICIENCY_N_A&lt;br /&gt;
 600145 ← SETTINGS_POPUP_INSTRUCTION_BOOK_WAITING&lt;br /&gt;
 600298 ← CAR_POPUP_AUXAC&lt;br /&gt;
&lt;br /&gt;
 700017 ← ADB_POPUP_DOWNLOAD_ERROR&lt;br /&gt;
 700045 ← ADB_SDS_POPUP_CONTACT&lt;br /&gt;
&lt;br /&gt;
== MAPS Japan ==&lt;br /&gt;
 900016 ← MAP_POPUP_VICS_DSRC_FIGURE_JP&lt;br /&gt;
 900022 ← MAP_POPUP_VICS_GEN2_EMERGENCY_JP_MAIN&lt;br /&gt;
 900014 ← MAP_OPT_VICS_SETUP_JP_POPUP_MSG&lt;br /&gt;
 900005 ← MAP_POPUP_DSRC_TTS_PPU_JP&lt;br /&gt;
&lt;br /&gt;
== SoftWare DownLoad ==&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
 1700000 ← UpdateInterrupted&lt;br /&gt;
 1700002 ← UpdateFailure&lt;br /&gt;
 1700003 ← UpdateSuccessful&lt;br /&gt;
 1700009 ← CompatibilityCheckFailure&lt;br /&gt;
 1700010 ← custDownloadInfoPopup&lt;br /&gt;
 1700017 ← SummaryChanged&lt;br /&gt;
 1700069 ← custDownloadLeaveProgress&lt;br /&gt;
&lt;br /&gt;
== ETC payment system ==&lt;br /&gt;
 1100048 ← ETC_POPUP_NO_CARD_INSERTED_JP_MAIN&lt;br /&gt;
 1100049 ← ETC_POPUP_CARD_STILL_INSERT_JP_MAIN&lt;br /&gt;
 1100053 ← ETC_POPUP_ERROR_JP&lt;br /&gt;
 1100054 ← ETC_POPUP_PASS_GATE_JP&lt;br /&gt;
 1100055 ← MAIN_POPUP_TIMEZONE&lt;br /&gt;
 1100056 ← MAIN_POPUP_SOMMER_TIME&lt;br /&gt;
&lt;br /&gt;
== SETTINGS ==&lt;br /&gt;
 1700079 ← SETTINGS_POPUP_GEN_NEW_DATA_AVAILABLE&lt;br /&gt;
 1700078 ← SETTINGS_POPUP_NAVI_LICENCE_GETTTING_INVALID&lt;br /&gt;
 1700077 ← SETTINGS_POPUP_NAVI_NEW_DATA_AVAILABLE_LICENCE_NOT_AVAILABLE&lt;br /&gt;
 1700076 ← SETTINGS_POPUP_UPDATE_ONLINE_NEW_DATA_AVAILABLE_LICENCE_AVAILABLE&lt;br /&gt;
 1700090 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DISCLAIMER&lt;br /&gt;
 1700091 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL&lt;br /&gt;
 1700082 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE_RETRY_POSSIBLE&lt;br /&gt;
 1700083 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE&lt;br /&gt;
 1700086 ← SETTINGS_POPUP_ONLINE_UPDATE_INCOMPATIBLE_DATA&lt;br /&gt;
 1700087 ← SETTINGS_POPUP_ONLINE_UPDATE_SERVER_FAILURE&lt;br /&gt;
 1700084 ← SETTINGS_POPUP_ONLINE_UPDATE_ACCESS_FAILURE&lt;br /&gt;
 1700085 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_DATA&lt;br /&gt;
 1700047 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_SUCCESSFUL&lt;br /&gt;
 1700046 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_FAILURE&lt;br /&gt;
 1700048 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_INTERRUPT_SD&lt;br /&gt;
 1700054 ← SETTINGS_POPUP_UPDATE_SOURCE_CONFIRMATION&lt;br /&gt;
 1700145 ← SETTINGS_POPUP_ONLINE_UPDATE_UOTASERVER_FAILURE&lt;br /&gt;
 1700144 ← SETTINGS_POPUP_UPDATE_PERSONALIZE&lt;br /&gt;
 1700146 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_SERVICE&lt;br /&gt;
 1700140 ← SETTINGS_POPUP_UPDATE_ONLINE_PROPOSAL_TRAVEL_NEW_DATA_AVAILABLE_LICENCE&lt;br /&gt;
 1700141 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DESTINATION&lt;br /&gt;
 1700142 ← SETTINGS_POPUP_UPDATE_NAV_DB_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
 1700143 ← SETTINGS_POPUP_UPDATE_PPOI_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
&lt;br /&gt;
== CAR Early apps ==&lt;br /&gt;
 2100000 ← CAR_POPUP_PARKING_PLA_ACTIVE_PARK&lt;br /&gt;
 2100001 ← CAR_POPUP_PARKING_APS_OPS_VPS_RVC&lt;br /&gt;
 2100002 ← CAR_POPUP_PARKING_ARA&lt;br /&gt;
 2100008 ← CAR_POPUP_PARKING_OPS&lt;br /&gt;
 2100009 ← CAR_POPUP_PARKING_ARA_TEXTS&lt;br /&gt;
 2100010 ← CAR_POPUP_PARKING_PLA_TEXTS_MAIN&lt;br /&gt;
 2100016 ← CAR_POPUP_SEAT_RIGHT&lt;br /&gt;
 2100017 ← CAR_POPUP_SEAT_LEFT&lt;br /&gt;
 2100018 ← CAR_POPUP_SEATMEMORY_LEFT&lt;br /&gt;
 2100021 ← CAR_POPUP_SEATMEMORY_RIGHT&lt;br /&gt;
 2100030 ← CAR_POPUP_SEAT_KOMBI_LEFT&lt;br /&gt;
 2100031 ← CAR_POPUP_SEAT_KOMBI_RIGHT&lt;br /&gt;
 2100035 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_LEFT&lt;br /&gt;
 2100036 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_SELECTION&lt;br /&gt;
 2100037 ← CAR_POPUP_PARKING_VISIBLE&lt;br /&gt;
 2100038 ← CAR_POPUP_PARKING_PLA_TEXT_OK&lt;br /&gt;
 2100040 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_RIGHT&lt;br /&gt;
 2100042 ← CAR_POPUP_CHARGE_END_INVISIBLE&lt;br /&gt;
 2100043 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_OUT&lt;br /&gt;
 2100044 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_CENTER&lt;br /&gt;
 2100045 ← CAR_POPUP_SOCCONTROL_MAIN&lt;br /&gt;
 2100065 ← CAR_POPUP_END_AUXCOMBINED_MAIN&lt;br /&gt;
 2100066 ← CAR_POPUP_END_AUXAC_MAIN&lt;br /&gt;
 2100067 ← CAR_POPUP_CHARGE_END&lt;br /&gt;
 2100070 ← CAR_POPUP_CHARGE_END_INVISIBLE_A3MQB&lt;br /&gt;
 2100071 ← CAR_POPUP_PARKING_ARA_TEXTS_CENTER&lt;br /&gt;
&lt;br /&gt;
== OFFICE ==&lt;br /&gt;
 2200104 ← OFFICE_POPUP_MAIL_STORE_VCARD_OK&lt;br /&gt;
 2200099 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_2&lt;br /&gt;
 2200100 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_1&lt;br /&gt;
 2200101 ← OFFICE_POPUP_SMS_STORE_VCARD_OK&lt;br /&gt;
 2200102 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_1&lt;br /&gt;
 2200103 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_2&lt;br /&gt;
 2200091 ← OFFICE_POPUP_MAIL_SPEED_DISCLAIMER&lt;br /&gt;
 2200090 ← OFFICE_POPUP_MAIL_STORE_DRAFT_OK&lt;br /&gt;
 2200089 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200088 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200092 ← OFFICE_POPUP_SMS_SPEED_DISCLAIMER&lt;br /&gt;
 2200083 ← OFFICE_POPUP_SMS_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200087 ← OFFICE_POPUP_MAIL_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200086 ← OFFICE_POPUP_SMS_STORE_DRAFT_OK&lt;br /&gt;
 2200085 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200084 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200078 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_1&lt;br /&gt;
 2200079 ← OFFICE_POPUP_SMS_STORE_TEMP_OK&lt;br /&gt;
 2200076 ← OFFICE_POPUP_SMS_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200077 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_2&lt;br /&gt;
 2200070 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_2&lt;br /&gt;
 2200071 ← OFFICE_POPUP_MAIL_STORE_TEMP_OK&lt;br /&gt;
 2200068 ← OFFICE_POPUP_MAIL_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200069 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_1&lt;br /&gt;
 2200155 ← OFFICE_POPUP_MAIL_MAX_CHARS&lt;br /&gt;
 2200154 ← OFFICE_POPUP_SMS_MAX_CHARS&lt;br /&gt;
 2200153 ← OFFICE_POPUP_SDS_CONTACT_MAIL_MORE&lt;br /&gt;
 2200152 ← OFFICE_POPUP_SMS_SIM_DELETE_DONE&lt;br /&gt;
 2200151 ← OFFICE_POPUP_SMS_SIM_DELETE_ERROR&lt;br /&gt;
 2200150 ← OFFICE_POPUP_SMS_SIM_DELETE_MAIN&lt;br /&gt;
 2200003 ← OFFICE_POPUP_SDS_ACCOUNT_NAMES&lt;br /&gt;
&lt;br /&gt;
== ONLINE ==&lt;br /&gt;
 2300071 ← CM_POPUP_ONLINE_ERROR_LICENSE_CHECK_QUERY&lt;br /&gt;
 2300070 ← CM_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 2300069 ← CM_POPUP_ONLINE_SERVICELIST_NA&lt;br /&gt;
 2300068 ← CM_POPUP_ONLINE_TEASER_NOTE_MAIN&lt;br /&gt;
 2300092 ← CM_POPUP_ONLINE_LICENSE_REJECTED&lt;br /&gt;
 2300090 ← CM_POPUP_ONLINE_NOT_LICENSED&lt;br /&gt;
 2300091 ← CM_POPUP_ONLINE_NOT_ACTIVATED&lt;br /&gt;
 2300060 ← AUDI_CONNECT_RHMI_POPUP_TIMEOUT&lt;br /&gt;
 2300061 ← AUDI_CONNECT_RHMI_POPUP&lt;br /&gt;
 2300057 ← AUDI_CONNECT_POPUP_OPT&lt;br /&gt;
 2300059 ← AUDI_CONNECT_RHMI_POPUP_BUTTON&lt;br /&gt;
 2300139 ← CM_POPUP_ONLINE_NOT_ACTIVATED_G22&lt;br /&gt;
 2300155 ← CM_POPUP_ONLINE_ERRORS_OUT_OF_RANGE&lt;br /&gt;
 2300208 ← AUDI_CONNECT_KEYCARD_POPUP_DEACTIVATE&lt;br /&gt;
 2300210 ← AUDI_CONNECT_SERVICE_ACK_POPUP_MOBILITY_REQUIREMENTS&lt;br /&gt;
 2300204 ← AUDI_CONNECT_KEYCARD_ACTIVATION_ERR_POPUP&lt;br /&gt;
 2300205 ← AUDI_CONNECT_KEYCARD_PHONEBOX_HINT_POPUP&lt;br /&gt;
 2300207 ← AUDI_CONNECT_KEYCARD_POPUP_ACTIVATE&lt;br /&gt;
 2300162 ← AUDI_CONNECT_POPUP_NEW_DESTINATIONS&lt;br /&gt;
&lt;br /&gt;
 2500052 ← CM_POPUP_ONLINE_ERROR_NO_ROAMING&lt;br /&gt;
 2500053 ← CM_POPUP_ONLINE_ERROR_GSM_ACTIVE&lt;br /&gt;
 2500054 ← CM_POPUP_ONLINE_ERROR_ROAMING_DISCLAIMER&lt;br /&gt;
 2500048 ← CM_POPUP_ONLINE_ERROR_NO_PHONE&lt;br /&gt;
 2500049 ← CM_POPUP_ONLINE_ERROR_NO_PIN&lt;br /&gt;
 2500050 ← CM_POPUP_ONLINE_ERROR_NO_SIMAP&lt;br /&gt;
 2500051 ← CM_POPUP_ONLINE_ERROR_DATA_DEACTIVATE&lt;br /&gt;
 2500060 ← CM_POPUP_WLAN_BONDING_ERROR_ELSE&lt;br /&gt;
 2500061 ← CM_POPUP_WLAN_BONDING_ERROR_PIN&lt;br /&gt;
 2500058 ← CM_POPUP_ONLINE_ERROR_NO_SIM&lt;br /&gt;
 2500039 ← CM_POPUP_BLUETOOTH_EXTERNAL_CODE_EDIT&lt;br /&gt;
 2500045 ← CM_POPUP_ONLINE_CONNECTION_REQUEST&lt;br /&gt;
 2500044 ← CM_POPUP_ONLINE_DISCLAIMER_SHOW&lt;br /&gt;
 2500047 ← CM_POPUP_ONLINE_ERROR_NO_CONFIG&lt;br /&gt;
 2500083 ← CM_POPUP_BLUETOOTH_EXTERNAL_MAIN&lt;br /&gt;
 2500092 ← CM_POPUP_ONLINE_ERROR_SIM_FAILURE&lt;br /&gt;
 2500090 ← CM_POPUP_ONLINE_ERROR_NO_PUK&lt;br /&gt;
 2500065 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG_PROFILES_MAIN&lt;br /&gt;
 2500137 ← CM_POPUP_ONLINE_ERROR_NO_ESIM&lt;br /&gt;
 2500138 ← CM_POPUP_ONLINE_ERROR_NO_PHONE_ESIM&lt;br /&gt;
 2500150 ← CM_POPUP_ONLINE_GPS&lt;br /&gt;
 2500018 ← CM_POPUP_BLUETOOTH_OBEX_CODE_PASSWORD&lt;br /&gt;
 2500111 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG&lt;br /&gt;
 2500016 ← CM_POPUP_BLUETOOTH_BONDING_ERROR&lt;br /&gt;
 2500017 ← CM_POPUP_BLUETOOTH_OBEX_CODE_ID&lt;br /&gt;
 2500098 ← CM_POPUP_BLUETOOTH_OBEX_MAIN&lt;br /&gt;
 2500099 ← CM_POPUP_BLUETOOTH_NA&lt;br /&gt;
 2500113 ← CM_POPUP_ONLINE_ERROR_DATA_MODULE_DEACTIVATE&lt;br /&gt;
&lt;br /&gt;
== TV ==&lt;br /&gt;
 2600015 ← TV_POPUP_EWS_MAIN&lt;br /&gt;
 2600016 ← TV_POPUP_EWS_PREFECTURES&lt;br /&gt;
 2600045 ← TV_POPUP_EWS_SMT&lt;br /&gt;
&lt;br /&gt;
== SOS ==&lt;br /&gt;
 3300043 ← SOS_POPUP_MEC_ACCOMPLISHED&lt;br /&gt;
 3300042 ← SOS_POPUP_MEC_REDIAL&lt;br /&gt;
 3300041 ← SOS_POPUP_MEC_FAILED_1&lt;br /&gt;
 3300040 ← SOS_POPUP_MEC_SENDING_DATA&lt;br /&gt;
 3300046 ← SOS_POPUP_REDIAL&lt;br /&gt;
 3300045 ← SOS_POPUP_MEC_CANCELED&lt;br /&gt;
 3300044 ← SOS_POPUP_MEC_FAILED&lt;br /&gt;
 3300035 ← SOS_POPUP_CANCELED&lt;br /&gt;
 3300032 ← SOS_POPUP_ACCOMPLISHED&lt;br /&gt;
 3300039 ← SOS_POPUP_MEC_CONNECTED&lt;br /&gt;
 3300038 ← SOS_POPUP_MEC_CONNECTING&lt;br /&gt;
 3300037 ← OPR_POPUP_CANCELED&lt;br /&gt;
 3300036 ← SOS_POPUP_FAILED&lt;br /&gt;
 3300009 ← OPR_POPUP_CONNECTING&lt;br /&gt;
 3300008 ← OPR_POPUP_DATA_SEND&lt;br /&gt;
 3300011 ← OPR_POPUP_DISCONNECT&lt;br /&gt;
 3300010 ← OPR_POPUP_CONNECTED&lt;br /&gt;
 3300005 ← OPR_POPUP_DATA_END_ACTIVE_CALL&lt;br /&gt;
 3300007 ← OPR_POPUP_DATA_COLLECT&lt;br /&gt;
 3300006 ← SOS_POPUP_ONLINE_LICENSE_NOTE_WEBSHOP&lt;br /&gt;
 3300001 ← OPR_POPUP_MANUAL_CONSIERGE&lt;br /&gt;
 3300003 ← OPR_POPUP_AUTOMATIC&lt;br /&gt;
 3300002 ← OPR_POPUP_MANUAL_CALLCENTER&lt;br /&gt;
 3300028 ← SOS_POPUP_LICENSE_TEASER_NOTE_WEBSHOP&lt;br /&gt;
 3300029 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 3300030 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300031 ← OPR_POPUP_CALL_FAILED&lt;br /&gt;
 3300024 ← SOS_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 3300025 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 3300026 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300027 ← SOS_POPUP_LICENSE_TEASER_NOTE_MAIN&lt;br /&gt;
 3300020 ← SOS_POPUP_CONNECTED&lt;br /&gt;
 3300021 ← SOS_POPUP_SENDING_DATA&lt;br /&gt;
 3300022 ← SOS_POPUP_CALLBACK_INCOMING&lt;br /&gt;
 3300017 ← OPR_DEST_POPUP_MAIN&lt;br /&gt;
 3300018 ← SOS_POPUP_MEC_MAIN&lt;br /&gt;
 3300019 ← SOS_POPUP_CONNECTING&lt;br /&gt;
&lt;br /&gt;
== CHARGING ==&lt;br /&gt;
 3400000 ← CHARGING_POPUP_OBJECT&lt;br /&gt;
 3400001 ← CHARGING_POPUP_FOREIGN_OBJECT_DETECT&lt;br /&gt;
 3400002 ← CHARGING_POPUP_REMINDER&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=VMOPTIONS&amp;diff=434</id>
		<title>VMOPTIONS</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=VMOPTIONS&amp;diff=434"/>
		<updated>2026-05-19T07:33:03Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Those can be used to overwrite some parameters of the HMI, like vehicle coding and adaptation, rendering options, screen resolution, menu visibility...&lt;br /&gt;
&lt;br /&gt;
 IS_PRODUCTION_MODE=false //tested; unlocks couple dev options&lt;br /&gt;
 &lt;br /&gt;
 showDisplayManagerInfo=true //tested; contentID, displayableID, opacities&lt;br /&gt;
 showDrawTimeStatistic=true //tested; fps, rendering status&lt;br /&gt;
 showScreenInfo=true //tested; ScreenID, ScreenName, kzb loading status&lt;br /&gt;
 showPartialPopupDebugInfos=true //tested; PartialPopups loaded into slots&lt;br /&gt;
 MenuShowStatistics=true //tested; scroll speed, stroboscope status&lt;br /&gt;
 &lt;br /&gt;
 CarParkingHoseMinTimeBetweenUpdates=300 //tested; Car OPS trajectory lines update interval in (ms)&lt;br /&gt;
 media.video.disableSpeedthreshold=true //tested; overrides VIM-LOCK and allows video on display&lt;br /&gt;
&lt;br /&gt;
== Boolean ==&lt;br /&gt;
Found by searching for &amp;lt;code&amp;gt;SystemProperties.getBoolean&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Boolean.getBoolean&amp;lt;/code&amp;gt;.&lt;br /&gt;
 showScreenChangeAnimationInfo&lt;br /&gt;
 showEventQueueStatistic&lt;br /&gt;
 showCombi=true //most likely adds VC data to other screen debug overlays&lt;br /&gt;
 showMemUsageDetail //interesting!&lt;br /&gt;
 showMemoryUsage&lt;br /&gt;
&lt;br /&gt;
 UseGEMSkinOverride //override for LastmodeStorage for the Combi skin&lt;br /&gt;
 SimulateSWDL //debugging SWaP code validation&lt;br /&gt;
 SkipLicenseCheck //online services license &amp;amp; Google Earth MMI&lt;br /&gt;
 DISABLE_LOGGING&lt;br /&gt;
 DISABLE_ANNOTATION&lt;br /&gt;
 DisableLicenseBrowser&lt;br /&gt;
 Official_Release&lt;br /&gt;
 dev_mode //booting without PCSIM &lt;br /&gt;
 enableGEM //most likely enables Green Engineering Menu even with disabled in adaptation&lt;br /&gt;
&lt;br /&gt;
 ignoreToucheventDeltatime&lt;br /&gt;
 checkScenegraphConsistency&lt;br /&gt;
 ignoreInvalidEALNodes&lt;br /&gt;
 EnablePermanentRendering&lt;br /&gt;
 ignoreEALStartupErrors&lt;br /&gt;
 useLongNodeNames //???&lt;br /&gt;
 EALEnableObjectTracer&lt;br /&gt;
 EALEnableObjectTracingOnScreenChange&lt;br /&gt;
 EALEnableRegistry&lt;br /&gt;
 3DCarFXAA&lt;br /&gt;
 supportHDDS //something with keypanel and fireWheelButtonEvent() function&lt;br /&gt;
 logMetricsToConsole&lt;br /&gt;
 G24_NO_MMIKOMBI&lt;br /&gt;
 EnableInstrumentation&lt;br /&gt;
 OnDemandResLoadingStats&lt;br /&gt;
 useNameForScreenshotFile&lt;br /&gt;
 SYNC_EARLY_RVC&lt;br /&gt;
 START_HIGH_HMI_WATCHDOG&lt;br /&gt;
 StartAudioBeforePhone&lt;br /&gt;
 DumpExtendedBundleInformation&lt;br /&gt;
 navStreetviewOverviewmap&lt;br /&gt;
 navPreferredGasStations&lt;br /&gt;
 disableScrollByCrosshairs&lt;br /&gt;
 useWordPrediction&lt;br /&gt;
 TEL_DEVELOPMENT&lt;br /&gt;
 externalSDS&lt;br /&gt;
 useLegacyDSITelephone&lt;br /&gt;
 MOSTListSupported&lt;br /&gt;
 DisableClusterFunctionSyncNavi&lt;br /&gt;
 DisableClusterFunctionSyncAudio&lt;br /&gt;
 enableOnlineDictationLicense&lt;br /&gt;
 RemoteHMIConnecitivityOverride&lt;br /&gt;
 RHMI_VE_DISABLE_TRUFFEL_INSTANCE&lt;br /&gt;
 RemoteHMIUseBrowserScrollbar&lt;br /&gt;
 sdsPauseActive&lt;br /&gt;
 enableNLU&lt;br /&gt;
 ActivateNaviDebugPopup&lt;br /&gt;
 hmi.audio.simulation&lt;br /&gt;
 hmi.speech.audio.simulation&lt;br /&gt;
 disableJointMode&lt;br /&gt;
 UseIconExtractor&lt;br /&gt;
 BreakdownEnabled&lt;br /&gt;
 PoiCallEnabled&lt;br /&gt;
 ConciergeEnabled&lt;br /&gt;
 ANSICOLOR&lt;br /&gt;
 DisableCombiSync&lt;br /&gt;
 user.data.export.simulation&lt;br /&gt;
 user.data.export.keep.tmp.files&lt;br /&gt;
 IGNORE_CALIBRATION&lt;br /&gt;
 clusterMapMostAlwaysOn&lt;br /&gt;
 clusterMapAlwaysOn //interesting!&lt;br /&gt;
 FUNCTIONCOUNTER_ACTIVE&lt;br /&gt;
 UseInternalLocationAccessor&lt;br /&gt;
 ETC_SENSOR_DATA_REPLAY&lt;br /&gt;
 DRRD_TRUFFLES&lt;br /&gt;
 demoModeIgnoreClamp&lt;br /&gt;
 enableSoftZoom&lt;br /&gt;
 disableZoomTimer&lt;br /&gt;
 AlwaysRenderMap&lt;br /&gt;
 disableSoftZoom&lt;br /&gt;
 enableSoftZoomConditional&lt;br /&gt;
 enableSoftRotation&lt;br /&gt;
 POIOnlineSim&lt;br /&gt;
 disablePOICategoryPreLoad&lt;br /&gt;
 disableAdaptiveSleeping&lt;br /&gt;
 EnableIdleRendering&lt;br /&gt;
 loadAllFontsForStandard&lt;br /&gt;
 mergeSelectionDrawerOnDemand&lt;br /&gt;
 EnableAutomaticViewSizeChange&lt;br /&gt;
 EnableStageKeepingOnHMIPopup&lt;br /&gt;
 EnableStageKeepingOnCombiPopup&lt;br /&gt;
 EALEnableFontLayoutWorkaround&lt;br /&gt;
 enableRTL&lt;br /&gt;
 removeNodeBeforeDestroy&lt;br /&gt;
 ActivateIdleDestroying&lt;br /&gt;
 disableTextNodeCache&lt;br /&gt;
 disableTextureCache&lt;br /&gt;
 partialRenderingEnabled&lt;br /&gt;
 partialOffscreenRenderingEnabled&lt;br /&gt;
 de.audi.kbd.dsi.oldKeyPanel&lt;br /&gt;
&lt;br /&gt;
== Integer ==&lt;br /&gt;
Found by looking for &amp;lt;code&amp;gt;Integer.getInteger&amp;lt;/code&amp;gt;.&lt;br /&gt;
 imageOpacityIfLockingActive=50&lt;br /&gt;
 scrollAnimationInterval=20&lt;br /&gt;
 touchRepaintInterval=50&lt;br /&gt;
 mainWizardIconOpacityIfLockingActive=50&lt;br /&gt;
 ealMergeFlagLoadingHint=1&lt;br /&gt;
 CAR_CLASS&lt;br /&gt;
 CAR_GENERATION&lt;br /&gt;
 CAR_DERIVATE&lt;br /&gt;
 CAR_DERIVATE_SUPPLEMENT&lt;br /&gt;
 NhtsaTimerDelay=5000&lt;br /&gt;
 screenCacheSizePassive=3&lt;br /&gt;
 screenCacheSizeActive=6&lt;br /&gt;
 ealObjectWarnLimit=1500&lt;br /&gt;
 ealMemorySize&lt;br /&gt;
 maxTimeNodeDestroying&lt;br /&gt;
 idleDestroyingStart&lt;br /&gt;
 maxNoOfNodesToDestroy&lt;br /&gt;
 memoryUsageUnit&lt;br /&gt;
 textureCacheSize0&lt;br /&gt;
 textureCacheSize1&lt;br /&gt;
 textureCacheCarViewerStandardSize&lt;br /&gt;
 textureCacheAsyncSize&lt;br /&gt;
 textureCacheSizes&lt;br /&gt;
 textureCacheTypes&lt;br /&gt;
 mainAreaDesaturation&lt;br /&gt;
 annotationErrorCorrection&lt;br /&gt;
 maxRecursiveDepthAddingCheck&lt;br /&gt;
 maxNumberOfIdleRenderStepsForOpsAsyncMerge&lt;br /&gt;
 EALEnableDumpEveryNSeconds&lt;br /&gt;
 LowMemoryDumpWhileTracingLevel&lt;br /&gt;
 delayTimeForIdleRenderStepsForOpsAsyncMerge&lt;br /&gt;
 RadioTextDisplayTime&lt;br /&gt;
 SlideshowDisplayDuration1&lt;br /&gt;
 SlideshowDisplayDuration2&lt;br /&gt;
 ScreenRes=2 //interesting! (2:800x480)&lt;br /&gt;
 MaxStatsLogs&lt;br /&gt;
 MaxLogsExceededStrategy&lt;br /&gt;
 ErrorDumpTriggerPort&lt;br /&gt;
 ERROR_DUMP_MAX&lt;br /&gt;
 INTELLICALL_MODE&lt;br /&gt;
 FlagMemCPU&lt;br /&gt;
 DSI_PERSISTENCE_READ_TIMEOUT=5000&lt;br /&gt;
 SWDLAutoRetries=0&lt;br /&gt;
 jar.cacheSize&lt;br /&gt;
 dumpPriority&lt;br /&gt;
 dumpThreadOnPort&lt;br /&gt;
 deadlockDetection=-1&lt;br /&gt;
&lt;br /&gt;
== Long ==&lt;br /&gt;
 Long.getLong&lt;br /&gt;
&lt;br /&gt;
 log.jvm.heap.watchdog.time&lt;br /&gt;
 log.jvm.heap.min.free.memory&lt;br /&gt;
 BUNDLE_START_TIMEOUT&lt;br /&gt;
 WAIT_FOR_AUDIO_TIMEOUT&lt;br /&gt;
 BUNDLE_START_TIMEOUT&lt;br /&gt;
 HMI_START_TIMEOUT&lt;br /&gt;
 DSI_PERSISTENCE_TIMEOUT&lt;br /&gt;
 WAIT_FOR_RVC_AVAILABLE&lt;br /&gt;
 WAIT_FOR_FIRST_POWERSTATE&lt;br /&gt;
 WAIT_FOR_MAP_AVAILABLE&lt;br /&gt;
 WAIT_FOR_SDS_AVAILABLE&lt;br /&gt;
 WAIT_FOR_FIRST_MMIKOMBISYNC&lt;br /&gt;
 WAIT_FOR_FIRST_SCREEN_PAINTED&lt;br /&gt;
 startup.rse.media.delay&lt;br /&gt;
 startup.rse.navi.delay&lt;br /&gt;
 startup.rse.post.delay&lt;br /&gt;
 startup.max.domain.wait&lt;br /&gt;
 MAX_EVENT_TIME&lt;br /&gt;
 ttsRequestTimer&lt;br /&gt;
&lt;br /&gt;
== String ==&lt;br /&gt;
 overrideInstalledStateFromProperty&lt;br /&gt;
 &lt;br /&gt;
 media.config.cd=installed&lt;br /&gt;
 media.config.cdc=installed&lt;br /&gt;
 media.config.dvd=installed&lt;br /&gt;
 media.config.dvdc=installed&lt;br /&gt;
 media.config.hdd=installed&lt;br /&gt;
 media.config.sd=installed&lt;br /&gt;
 media.config.aux=installed&lt;br /&gt;
 media.config.usb=installed&lt;br /&gt;
 media.config.bt=installed&lt;br /&gt;
 media.config.wlan=installed&lt;br /&gt;
 media.config.tv=installed&lt;br /&gt;
 media.config.avin=installed&lt;br /&gt;
 media.config.online=installed&lt;br /&gt;
&lt;br /&gt;
 System.getProperty&lt;br /&gt;
 &lt;br /&gt;
 ipl.config.dir=/etc/eso/production&lt;br /&gt;
 ipl.config.myProcName=hmi&lt;br /&gt;
 ipl.config.resource=/resources&lt;br /&gt;
 java.library.path&lt;br /&gt;
 com.ibm.oti.vm.bootstrap.library.path&lt;br /&gt;
 OEM=AU&lt;br /&gt;
 REGION=ER&lt;br /&gt;
 RUN_MODE=normal&lt;br /&gt;
 hwg.font.path=/mnt/app/eso/hmi/fonts&lt;br /&gt;
 ImageRoot=/mnt/app/eso/hmi/lsd/images&lt;br /&gt;
 KzbRoot=/mnt/app/eso/hmi/lsd/kzbs&lt;br /&gt;
 ErrorDumpDir=/mnt/ota/system/logs/&lt;br /&gt;
 externalized.logs.path=/mnt/app/eso/hmi/lsd/ext_logs/&lt;br /&gt;
 line.separator //line break sign&lt;br /&gt;
 org.apache.commons.id.uuid.config.resource.filename //apache setting for file read/write&lt;br /&gt;
 os.name //detecting test environment &lt;br /&gt;
 user.dir //security and Apache related&lt;br /&gt;
 arc.debug //???&lt;br /&gt;
 MenuScrollAlgorithm //old or new scroll animation type?&lt;br /&gt;
 SpellerCharacterSetPath //for Asian characters via touchpad&lt;br /&gt;
&lt;br /&gt;
== other ==&lt;br /&gt;
 BoardbookInfoFilePath=/mnt/boardbook/ //redirect user manual root to different location&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=Automatic_write_enabling_on_SSH_connection&amp;diff=433</id>
		<title>Automatic write enabling on SSH connection</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=Automatic_write_enabling_on_SSH_connection&amp;diff=433"/>
		<updated>2026-05-17T11:35:12Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== root/.profile method ==&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.173.189.1&lt;br /&gt;
 &lt;br /&gt;
 mount -uw /net/mmx/mnt/app &lt;br /&gt;
 echo &amp;quot;/bin/mount -uw /net/mmx/fs/sda0 2&amp;gt;/dev/null&amp;quot; &amp;gt;&amp;gt; /net/mmx/mnt/app/root/.profile&lt;br /&gt;
 echo &amp;quot;/bin/mount -uw /net/mmx/fs/sda1 2&amp;gt;/dev/null&amp;quot; &amp;gt;&amp;gt; /net/mmx/mnt/app/root/.profile&lt;br /&gt;
 echo &amp;quot;/bin/mount -uw /mnt/app&amp;quot; &amp;gt;&amp;gt; /net/mmx/mnt/app/root/.profile&lt;br /&gt;
 echo &amp;quot;/bin/mount -uw /mnt/system&amp;quot; &amp;gt;&amp;gt; /net/mmx/mnt/app/root/.profile&lt;br /&gt;
 sync&lt;br /&gt;
 mount -ur /net/mmx/mnt/app&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=Automatic_write_enabling_on_SSH_connection&amp;diff=432</id>
		<title>Automatic write enabling on SSH connection</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=Automatic_write_enabling_on_SSH_connection&amp;diff=432"/>
		<updated>2026-05-17T11:29:40Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== .profile method ==&lt;br /&gt;
&lt;br /&gt;
 ssh root@10.173.189.1&lt;br /&gt;
 &lt;br /&gt;
 mount -uw /net/mmx/mnt/app &lt;br /&gt;
 echo &amp;quot;/bin/mount -uw /net/mmx/fs/sda0 2&amp;gt;/dev/null&amp;quot; &amp;gt;&amp;gt; /net/mmx/mnt/app/root/.profile&lt;br /&gt;
 echo &amp;quot;/bin/mount -uw /net/mmx/fs/sda1 2&amp;gt;/dev/null&amp;quot; &amp;gt;&amp;gt; /net/mmx/mnt/app/root/.profile&lt;br /&gt;
 echo &amp;quot;/bin/mount -uw /mnt/app&amp;quot; &amp;gt;&amp;gt; /net/mmx/mnt/app/root/.profile&lt;br /&gt;
 echo &amp;quot;/bin/mount -uw /mnt/system&amp;quot; &amp;gt;&amp;gt; /net/mmx/mnt/app/root/.profile&lt;br /&gt;
 sync&lt;br /&gt;
 mount -ur /net/mmx/mnt/app&lt;br /&gt;
 &lt;br /&gt;
 exit&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=Persistence&amp;diff=431</id>
		<title>Persistence</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=Persistence&amp;diff=431"/>
		<updated>2026-05-17T11:04:19Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* Namespaces and keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Persistence Client - PC ==&lt;br /&gt;
//TODO&lt;br /&gt;
&lt;br /&gt;
== Namespaces and keys ==&lt;br /&gt;
=== 37 ===&lt;br /&gt;
* 2424838 - TVEngineering.configureGUI&lt;br /&gt;
&lt;br /&gt;
=== 256 ===&lt;br /&gt;
* 1 - MU skin?&lt;br /&gt;
* 20 - LastmodeStorage (checksum is CRC32, Reversed 0xEDB88320, Little Endian (DCBA))&lt;br /&gt;
* 250 - Clock format&lt;br /&gt;
&lt;br /&gt;
=== 257 ===&lt;br /&gt;
SWDL?&lt;br /&gt;
* 1 - currentUpdate.displayName&lt;br /&gt;
* 2 - currentUpdate.newVersion&lt;br /&gt;
* 4 - getCustomerNaviDbChoice&lt;br /&gt;
* 7 - LastInstalledReleaseVersion&lt;br /&gt;
* 5000 - deviceNames&lt;br /&gt;
* 5001 - displayNames&lt;br /&gt;
* 5002 - deviceVersions&lt;br /&gt;
* 5003 - mediaId &lt;br /&gt;
* 5004 - naviDbChoices&lt;br /&gt;
* 5006 - SWDL related&lt;br /&gt;
* 5007 - InstalledPackageIds&lt;br /&gt;
&lt;br /&gt;
=== 262 ===&lt;br /&gt;
* 20 - something keyboard related&lt;br /&gt;
* 100 - MemCPU flag&lt;br /&gt;
* 101 - ScreenInfo flag&lt;br /&gt;
* 102 - EventQueueStatistics flag&lt;br /&gt;
&lt;br /&gt;
=== 1002 ===&lt;br /&gt;
Media app?&lt;br /&gt;
* 19 - ParentalPassword&lt;br /&gt;
* 220 - reset to factory settings?&lt;br /&gt;
&lt;br /&gt;
=== 1003 ===&lt;br /&gt;
* 90 - SIM card ID&lt;br /&gt;
* 100 - Mobile SIM card setting&lt;br /&gt;
&lt;br /&gt;
=== 1004 ===&lt;br /&gt;
Navi app?&lt;br /&gt;
* 10 - rgActive?&lt;br /&gt;
* 20 - inside area&lt;br /&gt;
* 30 - time stamp&lt;br /&gt;
* 200 - dayNightView&lt;br /&gt;
* 210 - autoZoom&lt;br /&gt;
* 220 - mapType&lt;br /&gt;
* 240 - orientation&lt;br /&gt;
* 250 - additionalInfos&lt;br /&gt;
* 260 - tmcSymbols&lt;br /&gt;
* 270 - show3DLandmarks&lt;br /&gt;
* 280 - favorites&lt;br /&gt;
* 290 - Cluster Input?&lt;br /&gt;
* 300 - guidanceMode&lt;br /&gt;
* 310 - announcementOnCall&lt;br /&gt;
* 320 - topPrivate&lt;br /&gt;
* 330 - show3DBuildings&lt;br /&gt;
* 360 - Trip settings?&lt;br /&gt;
* 370 - &lt;br /&gt;
* 380 - mapRepresentation&lt;br /&gt;
* 390 - &lt;br /&gt;
* 400 - Fuel Warning&lt;br /&gt;
* 410 - systemLayers&lt;br /&gt;
* 420 - splitScreen&lt;br /&gt;
* 430 - brandedPois&lt;br /&gt;
* 440 - crossingView&lt;br /&gt;
* 450 - speedAndFlowFreeflow&lt;br /&gt;
* 460 - speedAndFlowCongestions&lt;br /&gt;
* 470 - picNavIcons&lt;br /&gt;
* 600 - zoomLevelIndex&lt;br /&gt;
* 840 - &lt;br /&gt;
&lt;br /&gt;
=== 1005 ===&lt;br /&gt;
TMC app&lt;br /&gt;
* 10 - AutoRedirect&lt;br /&gt;
* 20 - TelAnnouncement&lt;br /&gt;
* 30 - TmcAnnouncement&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== 1006 ===&lt;br /&gt;
CAR app&lt;br /&gt;
* 0 - Charisma?&lt;br /&gt;
* 1 - Charisma?&lt;br /&gt;
* 2 - Charisma?&lt;br /&gt;
* 3 - Charisma?&lt;br /&gt;
* 4 - Charisma?&lt;br /&gt;
* 5 - Charisma?&lt;br /&gt;
* 10 - Joker Key function&lt;br /&gt;
* 30 - Charisma?&lt;br /&gt;
* 31 - Charisma?&lt;br /&gt;
* 32 - Charisma?&lt;br /&gt;
* 33 - Charisma?&lt;br /&gt;
* 40 - Driving School mode enabled&lt;br /&gt;
* 50 - OPS view mode&lt;br /&gt;
* 80-86 - AirCondition&lt;br /&gt;
* 90-97 - AC Seat&lt;br /&gt;
* 117 - Charisma?&lt;br /&gt;
* 118 - Charisma?&lt;br /&gt;
&lt;br /&gt;
=== 1007 ===&lt;br /&gt;
TV app?&lt;br /&gt;
* 1 - Active source&lt;br /&gt;
&lt;br /&gt;
=== 1008 ===&lt;br /&gt;
* 2 - Audio Focus Client&lt;br /&gt;
&lt;br /&gt;
=== 1009 ===&lt;br /&gt;
* 1 - Wireless Charging Reminder&lt;br /&gt;
* 10 - Wireless Charging Reminder reset to factory&lt;br /&gt;
* 19 - User Mute&lt;br /&gt;
* 29 - Touch sound enabled&lt;br /&gt;
&lt;br /&gt;
=== 1011 ===&lt;br /&gt;
User system settings&lt;br /&gt;
* 30 - automaticModeActive&lt;br /&gt;
* 31 - timeZoneautomaticActive&lt;br /&gt;
* 40 - shallShowUserHints&lt;br /&gt;
* 41 - initialUserHintConfig&lt;br /&gt;
* 45 - proximity sensor&lt;br /&gt;
* 47 - display footer&lt;br /&gt;
* 49 - arrow hardKeys?&lt;br /&gt;
* 101 - persistTimeFormat&lt;br /&gt;
* 102 - persistDateFormat&lt;br /&gt;
&lt;br /&gt;
=== 1023 ===&lt;br /&gt;
* 10 - WarnFlagFromPersistence&lt;br /&gt;
* 40 - privacy mode&lt;br /&gt;
* 41 - SmartCardStatus&lt;br /&gt;
* 42 - StorageValue&lt;br /&gt;
&lt;br /&gt;
=== 1024 ===&lt;br /&gt;
ENI?&lt;br /&gt;
&lt;br /&gt;
=== 1030 ===&lt;br /&gt;
SDS?&lt;br /&gt;
&lt;br /&gt;
=== 1115 ===&lt;br /&gt;
Exlap&lt;br /&gt;
* 1 - Exlap status&lt;br /&gt;
&lt;br /&gt;
== sqlite.db ==&lt;br /&gt;
//TODO&lt;br /&gt;
&lt;br /&gt;
== whats is where ==&lt;br /&gt;
//TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref&amp;gt;https://docs.google.com/spreadsheets/d/11jJueBEbyBhkcEXmLNO3LIE5JX-ozgO3zKnJfRz5heM&amp;lt;/ref&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=Welcome_Sound_and_Heartbeat&amp;diff=430</id>
		<title>Welcome Sound and Heartbeat</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=Welcome_Sound_and_Heartbeat&amp;diff=430"/>
		<updated>2026-05-17T11:01:26Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;flags related to the availability of the feature&lt;br /&gt;
 CL_ANN_AMP_TONE_HEARTBEAT&lt;br /&gt;
 CL_ENT_AMP_TONE_WELCOME&lt;br /&gt;
 CL_ANN_AMP_MENU_TONE_HEARTBEAT&lt;br /&gt;
 TONEID_HEARTBEAT&lt;br /&gt;
 VOLUME_MENU_HEARTBEAT&lt;br /&gt;
 GREY_OUT_POPUP_HEARTBEAT_CHOICE&lt;br /&gt;
 VOLUME_HEARTBEAT_RANGE&lt;br /&gt;
 FOCUS_LISTENER_VOLUME_HEARTBEAT_CHOICE&lt;br /&gt;
&lt;br /&gt;
 TONE_LEFT_DRAWER_AUDI_DEPARTURE_SOUND&lt;br /&gt;
&lt;br /&gt;
 case 1000034: {&lt;br /&gt;
  return &amp;quot;TONE_HEARTBEAT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
function that checks readiness sound coding/adatpation?&lt;br /&gt;
    private boolean isReadinessSoundCoded() {&lt;br /&gt;
        return this.env.getSysConst(4596) == 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
 this.setSysConstBool(4596, this.getAdaptationANP().isVehicleReadinessSoundAvailable());&lt;br /&gt;
 this.setSysConstBool(4606, this.getAdaptationANP().isVehicleLeavingSoundAvailable());&lt;br /&gt;
 &lt;br /&gt;
   @Override&lt;br /&gt;
    public boolean isVehicleReadinessSoundAvailable() {&lt;br /&gt;
        return this.getBoolean(57, 0, false);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    @Override&lt;br /&gt;
    public boolean isVehicleLeavingSoundAvailable() {&lt;br /&gt;
        return this.getBoolean(57, 1, false);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
function that triggers the sound&lt;br /&gt;
    @Override&lt;br /&gt;
    public void play() {&lt;br /&gt;
        this.lc.log(10000000, &amp;quot;[HeartbeatPlayer.play]&amp;quot;);&lt;br /&gt;
        this.ringTonePlayer.playTone(this.playMode, 10);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
looks like those sound are considered to be ringtones. volume setting might be set to ringtone volume. Or fixed value.&lt;br /&gt;
&lt;br /&gt;
    static /* synthetic */ int access$302(Heartbeat heartbeat, int n) {&lt;br /&gt;
        heartbeat.heartbeatVolume = n;&lt;br /&gt;
        return heartbeat.heartbeatVolume;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    static /* synthetic */ int access$700(Heartbeat heartbeat) {&lt;br /&gt;
        return heartbeat.minHeartbeatVolume;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the definition of the volume menu:&lt;br /&gt;
    public void createVolumeMenus() {&lt;br /&gt;
        this.loweredEntMenus[0] = this.loweredEntAps;&lt;br /&gt;
        this.loweredEntMenus[1] = this.loweredEntNav;&lt;br /&gt;
        this.menus[3] = new PhoneRingtoneVolumeRange(this);&lt;br /&gt;
        this.menus[1] = new TAVolumeRange(this);&lt;br /&gt;
        this.menus[2] = new SDSVolumeRange(this);&lt;br /&gt;
        this.menus[0] = new NaviVolumeRange(this);&lt;br /&gt;
        this.menus[4] = this.loweredEntNav;&lt;br /&gt;
        this.menus[5] = this.loweredEntAps;&lt;br /&gt;
        this.menus[6] = new TouchpadVolumeRange(this);&lt;br /&gt;
        this.menus[7] = new SMSBeepVolumeRange(this);&lt;br /&gt;
        this.menus[8] = new HeartbeatVolumeRange(this);&lt;br /&gt;
        this.menus[9] = new RingtoneSelectionVolumeRange(this);&lt;br /&gt;
        this.menus[10] = new PhoneMicGainVolumeRange(this);&lt;br /&gt;
        if (this.env.getSysConst(4162) == 1) {&lt;br /&gt;
            this.menus[11] = new WirelessChargingVolumeRange(this);&lt;br /&gt;
        }&lt;br /&gt;
        this.menus[12] = new InfoAnnouncementVolumeRange(this);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;menu[8]&amp;lt;/code&amp;gt; is for the sound that we are looking for. Let&#039;s check how the &amp;lt;code&amp;gt;HeartbeatVolumeRange&amp;lt;/code&amp;gt; class looks like:&lt;br /&gt;
 public class HeartbeatVolumeRange&lt;br /&gt;
 extends AbstractVolumeRange {&lt;br /&gt;
    private static final int CONNECTION;&lt;br /&gt;
    private final int[] volumeConnections = new int[]{48, 82};&lt;br /&gt;
    private final int[] greyOutConnections = AudioConnection.GREY_OUT_ALL;&lt;br /&gt;
    private final HeartbeatPlayer player;&lt;br /&gt;
    private final String name;&lt;br /&gt;
&lt;br /&gt;
I this looks like the tone menu section responsible for Welcome/Heartbeat:&lt;br /&gt;
    private void executeConditiontONEHEARTBEATMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 3883: {&lt;br /&gt;
                if (this.evaluateSimpleChoiceModelValueEqualsCondition(3883, n2, 1)) {&lt;br /&gt;
                    if (hMIViewArray[0] != null) {&lt;br /&gt;
                        ((ScreenWidgetEVO)hMIViewArray[0]).setToplevelScreen(true);&lt;br /&gt;
                    }&lt;br /&gt;
                    if (hMIViewArray[0] == null) break;&lt;br /&gt;
                    ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(true);&lt;br /&gt;
                    break;&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ScreenWidgetEVO)hMIViewArray[0]).setToplevelScreen(false);&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(false);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 4073: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((RotaryController)hMIViewArray[0]).setEnabled(!this.evaluateSimpleChoiceModelValueGreaterCondition(4073, n2, 0));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
 sysConst(4596) //Heartbeat coded state&lt;br /&gt;
 getModel(-1807610112) //Heartbeat volume menu visibility state&lt;br /&gt;
&lt;br /&gt;
 //if heartbeat is coded, make the Heartbeat volume menu visible&lt;br /&gt;
 this.env.getChoiceModel(-1807610112).setValue(this.env.getSysConst(4596) == 1 ? 0 : 1);&lt;br /&gt;
&lt;br /&gt;
Volume setting is most likely stored in persistence memory. But here? Maybe close to this?&lt;br /&gt;
&lt;br /&gt;
    private void resetWirelessChargingReminderSignalChoice() {&lt;br /&gt;
        this.env.getStorageAccess().setInt(1009, 1, 2);&lt;br /&gt;
        this.env.getChoiceModel(1000102).setValue(2);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
 sysConst(4162) // Wireless Charging coding state&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=VMOPTIONS&amp;diff=429</id>
		<title>VMOPTIONS</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=VMOPTIONS&amp;diff=429"/>
		<updated>2026-05-17T10:58:14Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Those can be used to overwrite some parameters of the HMI, like vehicle coding and adaptation, rendering options, screen resolution, menu visibility...&lt;br /&gt;
&lt;br /&gt;
== Boolean ==&lt;br /&gt;
Found by searching for &amp;lt;code&amp;gt;SystemProperties.getBoolean&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Boolean.getBoolean&amp;lt;/code&amp;gt;.&lt;br /&gt;
 showDisplayManagerInfo //tested; contentID, displayableID, opacities&lt;br /&gt;
 showDrawTimeStatistic //tested; fps, rendering status&lt;br /&gt;
 showScreenInfo //tested; ScreenID, ScreenName, kzb loading status&lt;br /&gt;
 media.video.disableSpeedthreshold //tested; overrides VIM-LOCK and forces stream do display&lt;br /&gt;
 MenuShowStatistics //tested; scroll speed, stroboscope status&lt;br /&gt;
 IS_PRODUCTION_MODE //tested; if `false` unlocks couple dev options&lt;br /&gt;
&lt;br /&gt;
 showScreenChangeAnimationInfo&lt;br /&gt;
 showPartialPopupDebugInfos&lt;br /&gt;
 showEventQueueStatistic&lt;br /&gt;
 showCombi&lt;br /&gt;
 showMemUsageDetail //interesting!&lt;br /&gt;
 showMemoryUsage&lt;br /&gt;
&lt;br /&gt;
 UseGEMSkinOverride //override for LastmodeStorage for the Combi skin&lt;br /&gt;
 SimulateSWDL //debugging SWaP code validation&lt;br /&gt;
 SkipLicenseCheck //online services license &amp;amp; Google Earth MMI&lt;br /&gt;
 DISABLE_LOGGING&lt;br /&gt;
 DISABLE_ANNOTATION&lt;br /&gt;
 DisableLicenseBrowser&lt;br /&gt;
 Official_Release&lt;br /&gt;
 dev_mode //booting without PCSIM &lt;br /&gt;
 enableGEM //most likely enables Green Engineering Menu even with disabled in adaptation&lt;br /&gt;
&lt;br /&gt;
 ignoreToucheventDeltatime&lt;br /&gt;
 checkScenegraphConsistency&lt;br /&gt;
 ignoreInvalidEALNodes&lt;br /&gt;
 EnablePermanentRendering&lt;br /&gt;
 ignoreEALStartupErrors&lt;br /&gt;
 useLongNodeNames //???&lt;br /&gt;
 EALEnableObjectTracer&lt;br /&gt;
 EALEnableObjectTracingOnScreenChange&lt;br /&gt;
 EALEnableRegistry&lt;br /&gt;
 3DCarFXAA&lt;br /&gt;
 supportHDDS //something with keypanel and fireWheelButtonEvent() function&lt;br /&gt;
 logMetricsToConsole&lt;br /&gt;
 G24_NO_MMIKOMBI&lt;br /&gt;
 EnableInstrumentation&lt;br /&gt;
 OnDemandResLoadingStats&lt;br /&gt;
 useNameForScreenshotFile&lt;br /&gt;
 SYNC_EARLY_RVC&lt;br /&gt;
 START_HIGH_HMI_WATCHDOG&lt;br /&gt;
 StartAudioBeforePhone&lt;br /&gt;
 DumpExtendedBundleInformation&lt;br /&gt;
 navStreetviewOverviewmap&lt;br /&gt;
 navPreferredGasStations&lt;br /&gt;
 disableScrollByCrosshairs&lt;br /&gt;
 useWordPrediction&lt;br /&gt;
 TEL_DEVELOPMENT&lt;br /&gt;
 externalSDS&lt;br /&gt;
 useLegacyDSITelephone&lt;br /&gt;
 MOSTListSupported&lt;br /&gt;
 DisableClusterFunctionSyncNavi&lt;br /&gt;
 DisableClusterFunctionSyncAudio&lt;br /&gt;
 enableOnlineDictationLicense&lt;br /&gt;
 RemoteHMIConnecitivityOverride&lt;br /&gt;
 RHMI_VE_DISABLE_TRUFFEL_INSTANCE&lt;br /&gt;
 RemoteHMIUseBrowserScrollbar&lt;br /&gt;
 sdsPauseActive&lt;br /&gt;
 enableNLU&lt;br /&gt;
 ActivateNaviDebugPopup&lt;br /&gt;
 hmi.audio.simulation&lt;br /&gt;
 hmi.speech.audio.simulation&lt;br /&gt;
 disableJointMode&lt;br /&gt;
 UseIconExtractor&lt;br /&gt;
 BreakdownEnabled&lt;br /&gt;
 PoiCallEnabled&lt;br /&gt;
 ConciergeEnabled&lt;br /&gt;
 ANSICOLOR&lt;br /&gt;
 DisableCombiSync&lt;br /&gt;
 user.data.export.simulation&lt;br /&gt;
 user.data.export.keep.tmp.files&lt;br /&gt;
 IGNORE_CALIBRATION&lt;br /&gt;
 clusterMapMostAlwaysOn&lt;br /&gt;
 clusterMapAlwaysOn //interesting!&lt;br /&gt;
 FUNCTIONCOUNTER_ACTIVE&lt;br /&gt;
 UseInternalLocationAccessor&lt;br /&gt;
 ETC_SENSOR_DATA_REPLAY&lt;br /&gt;
 DRRD_TRUFFLES&lt;br /&gt;
 demoModeIgnoreClamp&lt;br /&gt;
 enableSoftZoom&lt;br /&gt;
 disableZoomTimer&lt;br /&gt;
 AlwaysRenderMap&lt;br /&gt;
 disableSoftZoom&lt;br /&gt;
 enableSoftZoomConditional&lt;br /&gt;
 enableSoftRotation&lt;br /&gt;
 POIOnlineSim&lt;br /&gt;
 disablePOICategoryPreLoad&lt;br /&gt;
 disableAdaptiveSleeping&lt;br /&gt;
 EnableIdleRendering&lt;br /&gt;
 loadAllFontsForStandard&lt;br /&gt;
 mergeSelectionDrawerOnDemand&lt;br /&gt;
 EnableAutomaticViewSizeChange&lt;br /&gt;
 EnableStageKeepingOnHMIPopup&lt;br /&gt;
 EnableStageKeepingOnCombiPopup&lt;br /&gt;
 EALEnableFontLayoutWorkaround&lt;br /&gt;
 enableRTL&lt;br /&gt;
 removeNodeBeforeDestroy&lt;br /&gt;
 ActivateIdleDestroying&lt;br /&gt;
 disableTextNodeCache&lt;br /&gt;
 disableTextureCache&lt;br /&gt;
 partialRenderingEnabled&lt;br /&gt;
 partialOffscreenRenderingEnabled&lt;br /&gt;
 de.audi.kbd.dsi.oldKeyPanel&lt;br /&gt;
&lt;br /&gt;
== Integer ==&lt;br /&gt;
Found by looking for &amp;lt;code&amp;gt;Integer.getInteger&amp;lt;/code&amp;gt;.&lt;br /&gt;
 imageOpacityIfLockingActive=50&lt;br /&gt;
 scrollAnimationInterval=20&lt;br /&gt;
 touchRepaintInterval=50&lt;br /&gt;
 mainWizardIconOpacityIfLockingActive=50&lt;br /&gt;
 ealMergeFlagLoadingHint=1&lt;br /&gt;
 CAR_CLASS&lt;br /&gt;
 CAR_GENERATION&lt;br /&gt;
 CAR_DERIVATE&lt;br /&gt;
 CAR_DERIVATE_SUPPLEMENT&lt;br /&gt;
 NhtsaTimerDelay=5000&lt;br /&gt;
 screenCacheSizePassive=3&lt;br /&gt;
 screenCacheSizeActive=6&lt;br /&gt;
 ealObjectWarnLimit=1500&lt;br /&gt;
 ealMemorySize&lt;br /&gt;
 maxTimeNodeDestroying&lt;br /&gt;
 idleDestroyingStart&lt;br /&gt;
 maxNoOfNodesToDestroy&lt;br /&gt;
 memoryUsageUnit&lt;br /&gt;
 textureCacheSize0&lt;br /&gt;
 textureCacheSize1&lt;br /&gt;
 textureCacheCarViewerStandardSize&lt;br /&gt;
 textureCacheAsyncSize&lt;br /&gt;
 textureCacheSizes&lt;br /&gt;
 textureCacheTypes&lt;br /&gt;
 mainAreaDesaturation&lt;br /&gt;
 annotationErrorCorrection&lt;br /&gt;
 maxRecursiveDepthAddingCheck&lt;br /&gt;
 maxNumberOfIdleRenderStepsForOpsAsyncMerge&lt;br /&gt;
 EALEnableDumpEveryNSeconds&lt;br /&gt;
 LowMemoryDumpWhileTracingLevel&lt;br /&gt;
 delayTimeForIdleRenderStepsForOpsAsyncMerge&lt;br /&gt;
 RadioTextDisplayTime&lt;br /&gt;
 SlideshowDisplayDuration1&lt;br /&gt;
 SlideshowDisplayDuration2&lt;br /&gt;
 ScreenRes=2 //interesting! (2:800x480)&lt;br /&gt;
 MaxStatsLogs&lt;br /&gt;
 MaxLogsExceededStrategy&lt;br /&gt;
 ErrorDumpTriggerPort&lt;br /&gt;
 ERROR_DUMP_MAX&lt;br /&gt;
 INTELLICALL_MODE&lt;br /&gt;
 FlagMemCPU&lt;br /&gt;
 DSI_PERSISTENCE_READ_TIMEOUT=5000&lt;br /&gt;
 SWDLAutoRetries=0&lt;br /&gt;
 jar.cacheSize&lt;br /&gt;
 dumpPriority&lt;br /&gt;
 dumpThreadOnPort&lt;br /&gt;
 deadlockDetection=-1&lt;br /&gt;
&lt;br /&gt;
== Long ==&lt;br /&gt;
 Long.getLong&lt;br /&gt;
&lt;br /&gt;
 log.jvm.heap.watchdog.time&lt;br /&gt;
 log.jvm.heap.min.free.memory&lt;br /&gt;
 BUNDLE_START_TIMEOUT&lt;br /&gt;
 WAIT_FOR_AUDIO_TIMEOUT&lt;br /&gt;
 BUNDLE_START_TIMEOUT&lt;br /&gt;
 HMI_START_TIMEOUT&lt;br /&gt;
 DSI_PERSISTENCE_TIMEOUT&lt;br /&gt;
 WAIT_FOR_RVC_AVAILABLE&lt;br /&gt;
 WAIT_FOR_FIRST_POWERSTATE&lt;br /&gt;
 WAIT_FOR_MAP_AVAILABLE&lt;br /&gt;
 WAIT_FOR_SDS_AVAILABLE&lt;br /&gt;
 WAIT_FOR_FIRST_MMIKOMBISYNC&lt;br /&gt;
 WAIT_FOR_FIRST_SCREEN_PAINTED&lt;br /&gt;
 startup.rse.media.delay&lt;br /&gt;
 startup.rse.navi.delay&lt;br /&gt;
 startup.rse.post.delay&lt;br /&gt;
 startup.max.domain.wait&lt;br /&gt;
 MAX_EVENT_TIME&lt;br /&gt;
 ttsRequestTimer&lt;br /&gt;
&lt;br /&gt;
== String ==&lt;br /&gt;
 overrideInstalledStateFromProperty&lt;br /&gt;
 &lt;br /&gt;
 media.config.cd=installed&lt;br /&gt;
 media.config.cdc=installed&lt;br /&gt;
 media.config.dvd=installed&lt;br /&gt;
 media.config.dvdc=installed&lt;br /&gt;
 media.config.hdd=installed&lt;br /&gt;
 media.config.sd=installed&lt;br /&gt;
 media.config.aux=installed&lt;br /&gt;
 media.config.usb=installed&lt;br /&gt;
 media.config.bt=installed&lt;br /&gt;
 media.config.wlan=installed&lt;br /&gt;
 media.config.tv=installed&lt;br /&gt;
 media.config.avin=installed&lt;br /&gt;
 media.config.online=installed&lt;br /&gt;
&lt;br /&gt;
 System.getProperty&lt;br /&gt;
 &lt;br /&gt;
 ipl.config.dir=/etc/eso/production&lt;br /&gt;
 ipl.config.myProcName=hmi&lt;br /&gt;
 ipl.config.resource=/resources&lt;br /&gt;
 java.library.path&lt;br /&gt;
 com.ibm.oti.vm.bootstrap.library.path&lt;br /&gt;
 OEM=AU&lt;br /&gt;
 REGION=ER&lt;br /&gt;
 RUN_MODE=normal&lt;br /&gt;
 hwg.font.path=/mnt/app/eso/hmi/fonts&lt;br /&gt;
 ImageRoot=/mnt/app/eso/hmi/lsd/images&lt;br /&gt;
 KzbRoot=/mnt/app/eso/hmi/lsd/kzbs&lt;br /&gt;
 ErrorDumpDir=/mnt/ota/system/logs/&lt;br /&gt;
 externalized.logs.path=/mnt/app/eso/hmi/lsd/ext_logs/&lt;br /&gt;
 line.separator //line break sign&lt;br /&gt;
 org.apache.commons.id.uuid.config.resource.filename //apache setting for file read/write&lt;br /&gt;
 os.name //detecting test environment &lt;br /&gt;
 user.dir //security and Apache related&lt;br /&gt;
 arc.debug //???&lt;br /&gt;
 MenuScrollAlgorithm //old or new scroll animation type?&lt;br /&gt;
 SpellerCharacterSetPath //for Asian characters via touchpad&lt;br /&gt;
&lt;br /&gt;
== other ==&lt;br /&gt;
 CarParkingHoseMinTimeBetweenUpdates=300 //most likely OPS trajectory update interval&lt;br /&gt;
 BoardbookInfoFilePath=/mnt/boardbook/ //redirect user manual root to different location&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=428</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=428"/>
		<updated>2026-04-14T19:18:34Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* UGNO, Charisma, Boardbook */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GENERIC ==&lt;br /&gt;
 35 ← KombiActivePopup&lt;br /&gt;
 42 ← MAIN_POPUP_SYSTEM_BAT_WARNING&lt;br /&gt;
 43 ← MAIN_POPUP_SYSTEM_TEMP&lt;br /&gt;
 52 ← POPUP_VOLUME&lt;br /&gt;
 61 ← POPUP_ANNOUNCEMENT&lt;br /&gt;
 62 ← StatusBarG22 / PartialPopupStatusbar&lt;br /&gt;
 64 ← PartialPopupDiagnosis&lt;br /&gt;
 65 ← DebugInfos / PartialPopupDebugInfo&lt;br /&gt;
 66 ← SETTINGS_POPUP_RESET_DRIVER_ERROR&lt;br /&gt;
 67 ← SETTINGS_POPUP_PTT_NO_SDS&lt;br /&gt;
 68 ← sdsDebugPopup&lt;br /&gt;
 72 ← Standby / POPUP_STANDBY&lt;br /&gt;
 75 ← UserHint&lt;br /&gt;
 76 ← UserHint&lt;br /&gt;
 78 ← UserHint&lt;br /&gt;
 80 ← UserHint&lt;br /&gt;
 81 ← UserHint&lt;br /&gt;
 85 ← Presets / PRESET_POPUP&lt;br /&gt;
 93 ← CM_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 94 ← CM_POPUP_ONLINE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 95 ← PartialPopupSportSkin&lt;br /&gt;
 96 ← UserHint&lt;br /&gt;
 97 ← UserHint&lt;br /&gt;
 98 ← UserHint&lt;br /&gt;
 100 ← SDS_LOGICAL_POPUP&lt;br /&gt;
 101 ← StatusBarG24 / PartialPopupStatusbarG24SCD&lt;br /&gt;
 102 ← POPUP_COMBI_POPUP_ACTIVE_DUMMY&lt;br /&gt;
 103 ← UserHint&lt;br /&gt;
 105 ← UserHint&lt;br /&gt;
 113 ← POPUP_NO_NAV_AVAILABLE&lt;br /&gt;
 114 ← MAIN_POPUP_LAYOUT_SPORT_CLASSIC&lt;br /&gt;
 115 ← POPUP_STANDBY_G24&lt;br /&gt;
 116 ← POPUP_ANNOUNCEMENT_G24&lt;br /&gt;
 119 ← Conversion Matrix / POPUP_CONVERSION_MATRIX_ASIA&lt;br /&gt;
 155 ← MAIN_POPUP_SDIS_MEDIA&lt;br /&gt;
 179 ← MAIN_POPUP_SDIS_NAVI&lt;br /&gt;
 180 ← MEDIA_POPUP_A2LS_MAIN&lt;br /&gt;
 183 ← AUDI_CONNECT_POPUP_HINT_MAIN&lt;br /&gt;
 184 ← SETTINGS_POPUP_PTT_NO_SDS_DRIVE_SELECT&lt;br /&gt;
&lt;br /&gt;
== TUNER ==&lt;br /&gt;
 100012 ← TUNER_POPUP_LIST_MSG_ERROR&lt;br /&gt;
 100013 ← TUNER_POPUP_LIST_MSG_ANTENNA&lt;br /&gt;
 100015 ← TUNER_POPUP_LIST_MSG_UPDATE_DONE&lt;br /&gt;
 100032 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_MAIN&lt;br /&gt;
 100033 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_NOPHONE&lt;br /&gt;
 100143 ← TUNER_POPUP_LIST_MSG_INVALID_MAIN&lt;br /&gt;
 100144 ← TUNER_POPUP_LIST_MSG_UNKNOWN&lt;br /&gt;
 100145 ← TUNER_POPUP_LIST_MSG_UPDATE_MAIN&lt;br /&gt;
 100146 ← TUNER_POPUP_LIST_MSG_SIRIUS_ESN&lt;br /&gt;
 100147 ← TUNER_POPUP_OPT&lt;br /&gt;
 100152 ← PP_TUNER_POPUP_TAG_TRANSFER_OK&lt;br /&gt;
 100153 ← PP_TUNER_POPUP_TAG_TRANSFER_RETRY&lt;br /&gt;
 100155 ← PP_TUNER_POPUP_TAG_TRANSFER_MAIN&lt;br /&gt;
 100158 ← TUNER_POPUP_SXM_CALL_NAR&lt;br /&gt;
 100161 ← TUNER_POPUP_RT_LOCATION&lt;br /&gt;
 100162 ← TUNER_POPUP_RT_TEL&lt;br /&gt;
 100163 ← TUNER_POPUP_RT_SMS&lt;br /&gt;
 100164 ← TUNER_POPUP_RT_EMAIL&lt;br /&gt;
 100165 ← TUNER_POPUP_RT_SERVICE_NA&lt;br /&gt;
 100167 ← TUNER_POPUP_RT_NOPHONE_02_MAIN&lt;br /&gt;
&lt;br /&gt;
== MEDIA ==&lt;br /&gt;
 200009 ← source selection //needs to be checked&lt;br /&gt;
 200081 ← MEDIA_POPUP_COPY_SUMMARY_UNIVERSAL&lt;br /&gt;
 200134 ← MEDIA_POPUP_SWITCH_SOURCE_MAIN&lt;br /&gt;
 200135 ← MEDIA_POPUP_SECOND_DEVICE_MAIN&lt;br /&gt;
 200145 ← MEDIA_POPUP_ERRORS_UNIVERSAL&lt;br /&gt;
 200204 ← MEDIA_POPUP_COPY_SUMMARY_OK&lt;br /&gt;
 200205 ← MEDIA_POPUP_PRESET_DISABLED&lt;br /&gt;
&lt;br /&gt;
== PHONE ==&lt;br /&gt;
 300000 ← entertainment drawer //needs to be checked&lt;br /&gt;
 300084 ← TEL_POPUP_ERR&lt;br /&gt;
 300085 ← TEL_POPUP_BATTERY_WARNING&lt;br /&gt;
 300161 ← TEL_POPUP_MFL_PHONE_NA&lt;br /&gt;
 300162 ← TEL_POPUP_MFL_CALL_LIST&lt;br /&gt;
 300164 ← TEL_POPUP_SERVICE_CODE_HFP&lt;br /&gt;
 300166 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NET&lt;br /&gt;
 300167 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_ACTIVE&lt;br /&gt;
 300168 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_NOT_ACTIVE&lt;br /&gt;
 300169 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_ACTIVE&lt;br /&gt;
 300170 ← TEL_POPUP_SERVICE_CODE_SAP_REQ&lt;br /&gt;
 300171 ← TEL_POPUP_SERVICE_CODE_SAP_OK&lt;br /&gt;
 300172 ← TEL_POPUP_SERVICE_CODE_SAP_ERR&lt;br /&gt;
 300173 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US&lt;br /&gt;
 300174 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_ACTIVE&lt;br /&gt;
 300175 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_NOT_ACTIVE&lt;br /&gt;
 300176 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NOT_ACTIVE&lt;br /&gt;
 300181 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_ACTIVATE_OK&lt;br /&gt;
 300182 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_CANCEL_OK&lt;br /&gt;
 300183 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_ACTIVATE_OK&lt;br /&gt;
 300184 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_CANCEL_OK&lt;br /&gt;
 300185 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_ACTIVATE_OK&lt;br /&gt;
 300186 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_CANCEL_OK&lt;br /&gt;
 300213 ← TEL_POPUP_AUTOGRAP&lt;br /&gt;
 300329 ← TEL_POPUP_AUDIO&lt;br /&gt;
&lt;br /&gt;
== MAP ==&lt;br /&gt;
 400367 ← DEST_POPUP_NAVI_REMOVED_MAIN&lt;br /&gt;
 400354 ← MAP_POPUP_HOV_LANE&lt;br /&gt;
 400373 ← MAP_POPUP_MINI_MAP&lt;br /&gt;
 400372 ← MAP_POPUP_SELENA_MAIN&lt;br /&gt;
 400345 ← DEST_POPUP_NO_HOME_ADDRESS_XXX&lt;br /&gt;
 400269 ← DEST_POPUP_ADDRESS_NAR_INVALID_NUMBER&lt;br /&gt;
 400281 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TUNNEL_ASIA&lt;br /&gt;
 400280 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_FERRY_ASIA&lt;br /&gt;
 400277 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_MOTORWAY_ASIA&lt;br /&gt;
 400279 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_BRIDGE_ASIA&lt;br /&gt;
 400278 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TOLL_ASIA&lt;br /&gt;
 400231 ← MAP_POPUP_GE_LICENCE_EXPIRED&lt;br /&gt;
 400230 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT_EDIT&lt;br /&gt;
 400225 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_FULL&lt;br /&gt;
 400224 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_ERROR&lt;br /&gt;
 400232 ← MAP_POPUP_ONLINE_TRAFFIC_LICENCE_EXPIRED&lt;br /&gt;
 400254 ← MAP_POPUP_DB_MERGE_FINISHED_ASIA&lt;br /&gt;
 400194 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT&lt;br /&gt;
 400205 ← MAP_POPUP_ROUTECALC_FAIL_MULTI&lt;br /&gt;
 400204 ← MAP_POPUP_ROUTECALC_FAIL_SINGLE&lt;br /&gt;
 400214 ← MAP_POPUP_MAPMODE_GOOGLE_MESSAGES_OFFLINE&lt;br /&gt;
 400215 ← MAP_POPUP_MAPMODE_GOOGLE_NO_DATA&lt;br /&gt;
 400211 ← NAV_SDS_POPUP_CONTACT&lt;br /&gt;
 400220 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_TEMP_ERROR&lt;br /&gt;
 400221 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_COUNTRY&lt;br /&gt;
 400222 ← MAP_POPUP_MAPVIEW_STREETVIEW_DRIVING&lt;br /&gt;
 400223 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_OK&lt;br /&gt;
 400218 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_LICENCE&lt;br /&gt;
 400219 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_CONNECTION&lt;br /&gt;
 400186 ← MAP_POPUP_SHOW_POI_WARNING_MAIN&lt;br /&gt;
 400190 ← DEST_POPUP_NVC_NUMBER_INVALID_MAIN&lt;br /&gt;
 400133 ← MAP_POPUP_SEMIDYN_BLOCK_MAIN&lt;br /&gt;
 400134 ← MAP_POPUP_SEMIDYN_BETTER&lt;br /&gt;
 400149 ← DEST_POPUP_DATABASE_INCOMPLETE&lt;br /&gt;
 400124 ← DEST_POPUP_DEMO_MODE_ACTIVE&lt;br /&gt;
 400120 ← DEST_POPUP_SETDEST_ONE_DEST&lt;br /&gt;
 400104 ← MAP_POPUP_GAS_STATION_LIST&lt;br /&gt;
 400103 ← MAP_POPUP_GAS_WARNING_MAIN&lt;br /&gt;
 400079 ← DEST_POPUP_SETDEST_TWO_DEST&lt;br /&gt;
&lt;br /&gt;
== ??? ==&lt;br /&gt;
 500006 ← MAP_POPUP_SHOW_URGENT_WARNING_MAIN&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
== Garage Door Opener, Charisma, Bordbook ==&lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
 600045 ← MAIN_POPUP_SYSTEM_TEL_MAX_WARNING&lt;br /&gt;
 600046 ← MAIN_POPUP_SYSTEM_THEFT_PROTECTION&lt;br /&gt;
 600047 ← MAIN_POPUP_SHOWROOM&lt;br /&gt;
 600086 ← CAR_POPUP_UGDO_LEARN_VISIBLE&lt;br /&gt;
 600087 ← CAR_POPUP_UGDO_SYNC_VISIBLE&lt;br /&gt;
 600106 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN&lt;br /&gt;
 600107 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_DISCLAIMER&lt;br /&gt;
 600108 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_EMPTY&lt;br /&gt;
 600112 ← SETTINGS_POPUP_INSTRUCTION_BOOK_VIDEO&lt;br /&gt;
 600114 ← CAR_POPUP_VISIBLE&lt;br /&gt;
 600128 ← CAR_POPUP_DRIVING_SCHOOL_MAIN&lt;br /&gt;
 600138 ← CAR_POPUP_DRIVE_SELECT_LIFT_N_A&lt;br /&gt;
 600139 ← CAR_POPUP_DRIVE_SELECT_EFFICIENCY_N_A&lt;br /&gt;
 600145 ← SETTINGS_POPUP_INSTRUCTION_BOOK_WAITING&lt;br /&gt;
 600298 ← CAR_POPUP_AUXAC&lt;br /&gt;
&lt;br /&gt;
 700017 ← ADB_POPUP_DOWNLOAD_ERROR&lt;br /&gt;
 700045 ← ADB_SDS_POPUP_CONTACT&lt;br /&gt;
&lt;br /&gt;
== MAPS Japan ==&lt;br /&gt;
 900016 ← MAP_POPUP_VICS_DSRC_FIGURE_JP&lt;br /&gt;
 900022 ← MAP_POPUP_VICS_GEN2_EMERGENCY_JP_MAIN&lt;br /&gt;
 900014 ← MAP_OPT_VICS_SETUP_JP_POPUP_MSG&lt;br /&gt;
 900005 ← MAP_POPUP_DSRC_TTS_PPU_JP&lt;br /&gt;
&lt;br /&gt;
== SoftWare DownLoad ==&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
 1700000 ← UpdateInterrupted&lt;br /&gt;
 1700002 ← UpdateFailure&lt;br /&gt;
 1700003 ← UpdateSuccessful&lt;br /&gt;
 1700009 ← CompatibilityCheckFailure&lt;br /&gt;
 1700010 ← custDownloadInfoPopup&lt;br /&gt;
 1700017 ← SummaryChanged&lt;br /&gt;
 1700069 ← custDownloadLeaveProgress&lt;br /&gt;
&lt;br /&gt;
== ETC payment system ==&lt;br /&gt;
 1100048 ← ETC_POPUP_NO_CARD_INSERTED_JP_MAIN&lt;br /&gt;
 1100049 ← ETC_POPUP_CARD_STILL_INSERT_JP_MAIN&lt;br /&gt;
 1100053 ← ETC_POPUP_ERROR_JP&lt;br /&gt;
 1100054 ← ETC_POPUP_PASS_GATE_JP&lt;br /&gt;
 1100055 ← MAIN_POPUP_TIMEZONE&lt;br /&gt;
 1100056 ← MAIN_POPUP_SOMMER_TIME&lt;br /&gt;
&lt;br /&gt;
== SETTINGS ==&lt;br /&gt;
 1700079 ← SETTINGS_POPUP_GEN_NEW_DATA_AVAILABLE&lt;br /&gt;
 1700078 ← SETTINGS_POPUP_NAVI_LICENCE_GETTTING_INVALID&lt;br /&gt;
 1700077 ← SETTINGS_POPUP_NAVI_NEW_DATA_AVAILABLE_LICENCE_NOT_AVAILABLE&lt;br /&gt;
 1700076 ← SETTINGS_POPUP_UPDATE_ONLINE_NEW_DATA_AVAILABLE_LICENCE_AVAILABLE&lt;br /&gt;
 1700090 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DISCLAIMER&lt;br /&gt;
 1700091 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL&lt;br /&gt;
 1700082 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE_RETRY_POSSIBLE&lt;br /&gt;
 1700083 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE&lt;br /&gt;
 1700086 ← SETTINGS_POPUP_ONLINE_UPDATE_INCOMPATIBLE_DATA&lt;br /&gt;
 1700087 ← SETTINGS_POPUP_ONLINE_UPDATE_SERVER_FAILURE&lt;br /&gt;
 1700084 ← SETTINGS_POPUP_ONLINE_UPDATE_ACCESS_FAILURE&lt;br /&gt;
 1700085 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_DATA&lt;br /&gt;
 1700047 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_SUCCESSFUL&lt;br /&gt;
 1700046 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_FAILURE&lt;br /&gt;
 1700048 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_INTERRUPT_SD&lt;br /&gt;
 1700054 ← SETTINGS_POPUP_UPDATE_SOURCE_CONFIRMATION&lt;br /&gt;
 1700145 ← SETTINGS_POPUP_ONLINE_UPDATE_UOTASERVER_FAILURE&lt;br /&gt;
 1700144 ← SETTINGS_POPUP_UPDATE_PERSONALIZE&lt;br /&gt;
 1700146 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_SERVICE&lt;br /&gt;
 1700140 ← SETTINGS_POPUP_UPDATE_ONLINE_PROPOSAL_TRAVEL_NEW_DATA_AVAILABLE_LICENCE&lt;br /&gt;
 1700141 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DESTINATION&lt;br /&gt;
 1700142 ← SETTINGS_POPUP_UPDATE_NAV_DB_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
 1700143 ← SETTINGS_POPUP_UPDATE_PPOI_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
&lt;br /&gt;
== CAR Early apps ==&lt;br /&gt;
 2100000 ← CAR_POPUP_PARKING_PLA_ACTIVE_PARK&lt;br /&gt;
 2100001 ← CAR_POPUP_PARKING_APS_OPS_VPS_RVC&lt;br /&gt;
 2100002 ← CAR_POPUP_PARKING_ARA&lt;br /&gt;
 2100008 ← CAR_POPUP_PARKING_OPS&lt;br /&gt;
 2100009 ← CAR_POPUP_PARKING_ARA_TEXTS&lt;br /&gt;
 2100010 ← CAR_POPUP_PARKING_PLA_TEXTS_MAIN&lt;br /&gt;
 2100016 ← CAR_POPUP_SEAT_RIGHT&lt;br /&gt;
 2100017 ← CAR_POPUP_SEAT_LEFT&lt;br /&gt;
 2100018 ← CAR_POPUP_SEATMEMORY_LEFT&lt;br /&gt;
 2100021 ← CAR_POPUP_SEATMEMORY_RIGHT&lt;br /&gt;
 2100030 ← CAR_POPUP_SEAT_KOMBI_LEFT&lt;br /&gt;
 2100031 ← CAR_POPUP_SEAT_KOMBI_RIGHT&lt;br /&gt;
 2100035 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_LEFT&lt;br /&gt;
 2100036 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_SELECTION&lt;br /&gt;
 2100037 ← CAR_POPUP_PARKING_VISIBLE&lt;br /&gt;
 2100038 ← CAR_POPUP_PARKING_PLA_TEXT_OK&lt;br /&gt;
 2100040 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_RIGHT&lt;br /&gt;
 2100042 ← CAR_POPUP_CHARGE_END_INVISIBLE&lt;br /&gt;
 2100043 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_OUT&lt;br /&gt;
 2100044 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_CENTER&lt;br /&gt;
 2100045 ← CAR_POPUP_SOCCONTROL_MAIN&lt;br /&gt;
 2100065 ← CAR_POPUP_END_AUXCOMBINED_MAIN&lt;br /&gt;
 2100066 ← CAR_POPUP_END_AUXAC_MAIN&lt;br /&gt;
 2100067 ← CAR_POPUP_CHARGE_END&lt;br /&gt;
 2100070 ← CAR_POPUP_CHARGE_END_INVISIBLE_A3MQB&lt;br /&gt;
 2100071 ← CAR_POPUP_PARKING_ARA_TEXTS_CENTER&lt;br /&gt;
&lt;br /&gt;
== OFFICE ==&lt;br /&gt;
 2200104 ← OFFICE_POPUP_MAIL_STORE_VCARD_OK&lt;br /&gt;
 2200099 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_2&lt;br /&gt;
 2200100 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_1&lt;br /&gt;
 2200101 ← OFFICE_POPUP_SMS_STORE_VCARD_OK&lt;br /&gt;
 2200102 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_1&lt;br /&gt;
 2200103 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_2&lt;br /&gt;
 2200091 ← OFFICE_POPUP_MAIL_SPEED_DISCLAIMER&lt;br /&gt;
 2200090 ← OFFICE_POPUP_MAIL_STORE_DRAFT_OK&lt;br /&gt;
 2200089 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200088 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200092 ← OFFICE_POPUP_SMS_SPEED_DISCLAIMER&lt;br /&gt;
 2200083 ← OFFICE_POPUP_SMS_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200087 ← OFFICE_POPUP_MAIL_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200086 ← OFFICE_POPUP_SMS_STORE_DRAFT_OK&lt;br /&gt;
 2200085 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200084 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200078 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_1&lt;br /&gt;
 2200079 ← OFFICE_POPUP_SMS_STORE_TEMP_OK&lt;br /&gt;
 2200076 ← OFFICE_POPUP_SMS_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200077 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_2&lt;br /&gt;
 2200070 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_2&lt;br /&gt;
 2200071 ← OFFICE_POPUP_MAIL_STORE_TEMP_OK&lt;br /&gt;
 2200068 ← OFFICE_POPUP_MAIL_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200069 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_1&lt;br /&gt;
 2200155 ← OFFICE_POPUP_MAIL_MAX_CHARS&lt;br /&gt;
 2200154 ← OFFICE_POPUP_SMS_MAX_CHARS&lt;br /&gt;
 2200153 ← OFFICE_POPUP_SDS_CONTACT_MAIL_MORE&lt;br /&gt;
 2200152 ← OFFICE_POPUP_SMS_SIM_DELETE_DONE&lt;br /&gt;
 2200151 ← OFFICE_POPUP_SMS_SIM_DELETE_ERROR&lt;br /&gt;
 2200150 ← OFFICE_POPUP_SMS_SIM_DELETE_MAIN&lt;br /&gt;
 2200003 ← OFFICE_POPUP_SDS_ACCOUNT_NAMES&lt;br /&gt;
&lt;br /&gt;
== ONLINE ==&lt;br /&gt;
 2300071 ← CM_POPUP_ONLINE_ERROR_LICENSE_CHECK_QUERY&lt;br /&gt;
 2300070 ← CM_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 2300069 ← CM_POPUP_ONLINE_SERVICELIST_NA&lt;br /&gt;
 2300068 ← CM_POPUP_ONLINE_TEASER_NOTE_MAIN&lt;br /&gt;
 2300092 ← CM_POPUP_ONLINE_LICENSE_REJECTED&lt;br /&gt;
 2300090 ← CM_POPUP_ONLINE_NOT_LICENSED&lt;br /&gt;
 2300091 ← CM_POPUP_ONLINE_NOT_ACTIVATED&lt;br /&gt;
 2300060 ← AUDI_CONNECT_RHMI_POPUP_TIMEOUT&lt;br /&gt;
 2300061 ← AUDI_CONNECT_RHMI_POPUP&lt;br /&gt;
 2300057 ← AUDI_CONNECT_POPUP_OPT&lt;br /&gt;
 2300059 ← AUDI_CONNECT_RHMI_POPUP_BUTTON&lt;br /&gt;
 2300139 ← CM_POPUP_ONLINE_NOT_ACTIVATED_G22&lt;br /&gt;
 2300155 ← CM_POPUP_ONLINE_ERRORS_OUT_OF_RANGE&lt;br /&gt;
 2300208 ← AUDI_CONNECT_KEYCARD_POPUP_DEACTIVATE&lt;br /&gt;
 2300210 ← AUDI_CONNECT_SERVICE_ACK_POPUP_MOBILITY_REQUIREMENTS&lt;br /&gt;
 2300204 ← AUDI_CONNECT_KEYCARD_ACTIVATION_ERR_POPUP&lt;br /&gt;
 2300205 ← AUDI_CONNECT_KEYCARD_PHONEBOX_HINT_POPUP&lt;br /&gt;
 2300207 ← AUDI_CONNECT_KEYCARD_POPUP_ACTIVATE&lt;br /&gt;
 2300162 ← AUDI_CONNECT_POPUP_NEW_DESTINATIONS&lt;br /&gt;
&lt;br /&gt;
 2500052 ← CM_POPUP_ONLINE_ERROR_NO_ROAMING&lt;br /&gt;
 2500053 ← CM_POPUP_ONLINE_ERROR_GSM_ACTIVE&lt;br /&gt;
 2500054 ← CM_POPUP_ONLINE_ERROR_ROAMING_DISCLAIMER&lt;br /&gt;
 2500048 ← CM_POPUP_ONLINE_ERROR_NO_PHONE&lt;br /&gt;
 2500049 ← CM_POPUP_ONLINE_ERROR_NO_PIN&lt;br /&gt;
 2500050 ← CM_POPUP_ONLINE_ERROR_NO_SIMAP&lt;br /&gt;
 2500051 ← CM_POPUP_ONLINE_ERROR_DATA_DEACTIVATE&lt;br /&gt;
 2500060 ← CM_POPUP_WLAN_BONDING_ERROR_ELSE&lt;br /&gt;
 2500061 ← CM_POPUP_WLAN_BONDING_ERROR_PIN&lt;br /&gt;
 2500058 ← CM_POPUP_ONLINE_ERROR_NO_SIM&lt;br /&gt;
 2500039 ← CM_POPUP_BLUETOOTH_EXTERNAL_CODE_EDIT&lt;br /&gt;
 2500045 ← CM_POPUP_ONLINE_CONNECTION_REQUEST&lt;br /&gt;
 2500044 ← CM_POPUP_ONLINE_DISCLAIMER_SHOW&lt;br /&gt;
 2500047 ← CM_POPUP_ONLINE_ERROR_NO_CONFIG&lt;br /&gt;
 2500083 ← CM_POPUP_BLUETOOTH_EXTERNAL_MAIN&lt;br /&gt;
 2500092 ← CM_POPUP_ONLINE_ERROR_SIM_FAILURE&lt;br /&gt;
 2500090 ← CM_POPUP_ONLINE_ERROR_NO_PUK&lt;br /&gt;
 2500065 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG_PROFILES_MAIN&lt;br /&gt;
 2500137 ← CM_POPUP_ONLINE_ERROR_NO_ESIM&lt;br /&gt;
 2500138 ← CM_POPUP_ONLINE_ERROR_NO_PHONE_ESIM&lt;br /&gt;
 2500150 ← CM_POPUP_ONLINE_GPS&lt;br /&gt;
 2500018 ← CM_POPUP_BLUETOOTH_OBEX_CODE_PASSWORD&lt;br /&gt;
 2500111 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG&lt;br /&gt;
 2500016 ← CM_POPUP_BLUETOOTH_BONDING_ERROR&lt;br /&gt;
 2500017 ← CM_POPUP_BLUETOOTH_OBEX_CODE_ID&lt;br /&gt;
 2500098 ← CM_POPUP_BLUETOOTH_OBEX_MAIN&lt;br /&gt;
 2500099 ← CM_POPUP_BLUETOOTH_NA&lt;br /&gt;
 2500113 ← CM_POPUP_ONLINE_ERROR_DATA_MODULE_DEACTIVATE&lt;br /&gt;
&lt;br /&gt;
== TV ==&lt;br /&gt;
 2600015 ← TV_POPUP_EWS_MAIN&lt;br /&gt;
 2600016 ← TV_POPUP_EWS_PREFECTURES&lt;br /&gt;
 2600045 ← TV_POPUP_EWS_SMT&lt;br /&gt;
&lt;br /&gt;
== SOS ==&lt;br /&gt;
 3300043 ← SOS_POPUP_MEC_ACCOMPLISHED&lt;br /&gt;
 3300042 ← SOS_POPUP_MEC_REDIAL&lt;br /&gt;
 3300041 ← SOS_POPUP_MEC_FAILED_1&lt;br /&gt;
 3300040 ← SOS_POPUP_MEC_SENDING_DATA&lt;br /&gt;
 3300046 ← SOS_POPUP_REDIAL&lt;br /&gt;
 3300045 ← SOS_POPUP_MEC_CANCELED&lt;br /&gt;
 3300044 ← SOS_POPUP_MEC_FAILED&lt;br /&gt;
 3300035 ← SOS_POPUP_CANCELED&lt;br /&gt;
 3300032 ← SOS_POPUP_ACCOMPLISHED&lt;br /&gt;
 3300039 ← SOS_POPUP_MEC_CONNECTED&lt;br /&gt;
 3300038 ← SOS_POPUP_MEC_CONNECTING&lt;br /&gt;
 3300037 ← OPR_POPUP_CANCELED&lt;br /&gt;
 3300036 ← SOS_POPUP_FAILED&lt;br /&gt;
 3300009 ← OPR_POPUP_CONNECTING&lt;br /&gt;
 3300008 ← OPR_POPUP_DATA_SEND&lt;br /&gt;
 3300011 ← OPR_POPUP_DISCONNECT&lt;br /&gt;
 3300010 ← OPR_POPUP_CONNECTED&lt;br /&gt;
 3300005 ← OPR_POPUP_DATA_END_ACTIVE_CALL&lt;br /&gt;
 3300007 ← OPR_POPUP_DATA_COLLECT&lt;br /&gt;
 3300006 ← SOS_POPUP_ONLINE_LICENSE_NOTE_WEBSHOP&lt;br /&gt;
 3300001 ← OPR_POPUP_MANUAL_CONSIERGE&lt;br /&gt;
 3300003 ← OPR_POPUP_AUTOMATIC&lt;br /&gt;
 3300002 ← OPR_POPUP_MANUAL_CALLCENTER&lt;br /&gt;
 3300028 ← SOS_POPUP_LICENSE_TEASER_NOTE_WEBSHOP&lt;br /&gt;
 3300029 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 3300030 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300031 ← OPR_POPUP_CALL_FAILED&lt;br /&gt;
 3300024 ← SOS_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 3300025 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 3300026 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300027 ← SOS_POPUP_LICENSE_TEASER_NOTE_MAIN&lt;br /&gt;
 3300020 ← SOS_POPUP_CONNECTED&lt;br /&gt;
 3300021 ← SOS_POPUP_SENDING_DATA&lt;br /&gt;
 3300022 ← SOS_POPUP_CALLBACK_INCOMING&lt;br /&gt;
 3300017 ← OPR_DEST_POPUP_MAIN&lt;br /&gt;
 3300018 ← SOS_POPUP_MEC_MAIN&lt;br /&gt;
 3300019 ← SOS_POPUP_CONNECTING&lt;br /&gt;
&lt;br /&gt;
== CHARGING ==&lt;br /&gt;
 3400000 ← CHARGING_POPUP_OBJECT&lt;br /&gt;
 3400001 ← CHARGING_POPUP_FOREIGN_OBJECT_DETECT&lt;br /&gt;
 3400002 ← CHARGING_POPUP_REMINDER&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=427</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=427"/>
		<updated>2026-04-14T18:48:10Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GENERIC ==&lt;br /&gt;
 35 ← KombiActivePopup&lt;br /&gt;
 42 ← MAIN_POPUP_SYSTEM_BAT_WARNING&lt;br /&gt;
 43 ← MAIN_POPUP_SYSTEM_TEMP&lt;br /&gt;
 52 ← POPUP_VOLUME&lt;br /&gt;
 61 ← POPUP_ANNOUNCEMENT&lt;br /&gt;
 62 ← StatusBarG22 / PartialPopupStatusbar&lt;br /&gt;
 64 ← PartialPopupDiagnosis&lt;br /&gt;
 65 ← DebugInfos / PartialPopupDebugInfo&lt;br /&gt;
 66 ← SETTINGS_POPUP_RESET_DRIVER_ERROR&lt;br /&gt;
 67 ← SETTINGS_POPUP_PTT_NO_SDS&lt;br /&gt;
 68 ← sdsDebugPopup&lt;br /&gt;
 72 ← Standby / POPUP_STANDBY&lt;br /&gt;
 75 ← UserHint&lt;br /&gt;
 76 ← UserHint&lt;br /&gt;
 78 ← UserHint&lt;br /&gt;
 80 ← UserHint&lt;br /&gt;
 81 ← UserHint&lt;br /&gt;
 85 ← Presets / PRESET_POPUP&lt;br /&gt;
 93 ← CM_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 94 ← CM_POPUP_ONLINE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 95 ← PartialPopupSportSkin&lt;br /&gt;
 96 ← UserHint&lt;br /&gt;
 97 ← UserHint&lt;br /&gt;
 98 ← UserHint&lt;br /&gt;
 100 ← SDS_LOGICAL_POPUP&lt;br /&gt;
 101 ← StatusBarG24 / PartialPopupStatusbarG24SCD&lt;br /&gt;
 102 ← POPUP_COMBI_POPUP_ACTIVE_DUMMY&lt;br /&gt;
 103 ← UserHint&lt;br /&gt;
 105 ← UserHint&lt;br /&gt;
 113 ← POPUP_NO_NAV_AVAILABLE&lt;br /&gt;
 114 ← MAIN_POPUP_LAYOUT_SPORT_CLASSIC&lt;br /&gt;
 115 ← POPUP_STANDBY_G24&lt;br /&gt;
 116 ← POPUP_ANNOUNCEMENT_G24&lt;br /&gt;
 119 ← Conversion Matrix / POPUP_CONVERSION_MATRIX_ASIA&lt;br /&gt;
 155 ← MAIN_POPUP_SDIS_MEDIA&lt;br /&gt;
 179 ← MAIN_POPUP_SDIS_NAVI&lt;br /&gt;
 180 ← MEDIA_POPUP_A2LS_MAIN&lt;br /&gt;
 183 ← AUDI_CONNECT_POPUP_HINT_MAIN&lt;br /&gt;
 184 ← SETTINGS_POPUP_PTT_NO_SDS_DRIVE_SELECT&lt;br /&gt;
&lt;br /&gt;
== TUNER ==&lt;br /&gt;
 100012 ← TUNER_POPUP_LIST_MSG_ERROR&lt;br /&gt;
 100013 ← TUNER_POPUP_LIST_MSG_ANTENNA&lt;br /&gt;
 100015 ← TUNER_POPUP_LIST_MSG_UPDATE_DONE&lt;br /&gt;
 100032 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_MAIN&lt;br /&gt;
 100033 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_NOPHONE&lt;br /&gt;
 100143 ← TUNER_POPUP_LIST_MSG_INVALID_MAIN&lt;br /&gt;
 100144 ← TUNER_POPUP_LIST_MSG_UNKNOWN&lt;br /&gt;
 100145 ← TUNER_POPUP_LIST_MSG_UPDATE_MAIN&lt;br /&gt;
 100146 ← TUNER_POPUP_LIST_MSG_SIRIUS_ESN&lt;br /&gt;
 100147 ← TUNER_POPUP_OPT&lt;br /&gt;
 100152 ← PP_TUNER_POPUP_TAG_TRANSFER_OK&lt;br /&gt;
 100153 ← PP_TUNER_POPUP_TAG_TRANSFER_RETRY&lt;br /&gt;
 100155 ← PP_TUNER_POPUP_TAG_TRANSFER_MAIN&lt;br /&gt;
 100158 ← TUNER_POPUP_SXM_CALL_NAR&lt;br /&gt;
 100161 ← TUNER_POPUP_RT_LOCATION&lt;br /&gt;
 100162 ← TUNER_POPUP_RT_TEL&lt;br /&gt;
 100163 ← TUNER_POPUP_RT_SMS&lt;br /&gt;
 100164 ← TUNER_POPUP_RT_EMAIL&lt;br /&gt;
 100165 ← TUNER_POPUP_RT_SERVICE_NA&lt;br /&gt;
 100167 ← TUNER_POPUP_RT_NOPHONE_02_MAIN&lt;br /&gt;
&lt;br /&gt;
== MEDIA ==&lt;br /&gt;
 200009 ← source selection //needs to be checked&lt;br /&gt;
 200081 ← MEDIA_POPUP_COPY_SUMMARY_UNIVERSAL&lt;br /&gt;
 200134 ← MEDIA_POPUP_SWITCH_SOURCE_MAIN&lt;br /&gt;
 200135 ← MEDIA_POPUP_SECOND_DEVICE_MAIN&lt;br /&gt;
 200145 ← MEDIA_POPUP_ERRORS_UNIVERSAL&lt;br /&gt;
 200204 ← MEDIA_POPUP_COPY_SUMMARY_OK&lt;br /&gt;
 200205 ← MEDIA_POPUP_PRESET_DISABLED&lt;br /&gt;
&lt;br /&gt;
== PHONE ==&lt;br /&gt;
 300000 ← entertainment drawer //needs to be checked&lt;br /&gt;
 300084 ← TEL_POPUP_ERR&lt;br /&gt;
 300085 ← TEL_POPUP_BATTERY_WARNING&lt;br /&gt;
 300161 ← TEL_POPUP_MFL_PHONE_NA&lt;br /&gt;
 300162 ← TEL_POPUP_MFL_CALL_LIST&lt;br /&gt;
 300164 ← TEL_POPUP_SERVICE_CODE_HFP&lt;br /&gt;
 300166 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NET&lt;br /&gt;
 300167 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_ACTIVE&lt;br /&gt;
 300168 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_NOT_ACTIVE&lt;br /&gt;
 300169 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_ACTIVE&lt;br /&gt;
 300170 ← TEL_POPUP_SERVICE_CODE_SAP_REQ&lt;br /&gt;
 300171 ← TEL_POPUP_SERVICE_CODE_SAP_OK&lt;br /&gt;
 300172 ← TEL_POPUP_SERVICE_CODE_SAP_ERR&lt;br /&gt;
 300173 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US&lt;br /&gt;
 300174 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_ACTIVE&lt;br /&gt;
 300175 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_NOT_ACTIVE&lt;br /&gt;
 300176 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NOT_ACTIVE&lt;br /&gt;
 300181 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_ACTIVATE_OK&lt;br /&gt;
 300182 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_CANCEL_OK&lt;br /&gt;
 300183 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_ACTIVATE_OK&lt;br /&gt;
 300184 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_CANCEL_OK&lt;br /&gt;
 300185 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_ACTIVATE_OK&lt;br /&gt;
 300186 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_CANCEL_OK&lt;br /&gt;
 300213 ← TEL_POPUP_AUTOGRAP&lt;br /&gt;
 300329 ← TEL_POPUP_AUDIO&lt;br /&gt;
&lt;br /&gt;
== MAP ==&lt;br /&gt;
 400367 ← DEST_POPUP_NAVI_REMOVED_MAIN&lt;br /&gt;
 400354 ← MAP_POPUP_HOV_LANE&lt;br /&gt;
 400373 ← MAP_POPUP_MINI_MAP&lt;br /&gt;
 400372 ← MAP_POPUP_SELENA_MAIN&lt;br /&gt;
 400345 ← DEST_POPUP_NO_HOME_ADDRESS_XXX&lt;br /&gt;
 400269 ← DEST_POPUP_ADDRESS_NAR_INVALID_NUMBER&lt;br /&gt;
 400281 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TUNNEL_ASIA&lt;br /&gt;
 400280 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_FERRY_ASIA&lt;br /&gt;
 400277 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_MOTORWAY_ASIA&lt;br /&gt;
 400279 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_BRIDGE_ASIA&lt;br /&gt;
 400278 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TOLL_ASIA&lt;br /&gt;
 400231 ← MAP_POPUP_GE_LICENCE_EXPIRED&lt;br /&gt;
 400230 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT_EDIT&lt;br /&gt;
 400225 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_FULL&lt;br /&gt;
 400224 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_ERROR&lt;br /&gt;
 400232 ← MAP_POPUP_ONLINE_TRAFFIC_LICENCE_EXPIRED&lt;br /&gt;
 400254 ← MAP_POPUP_DB_MERGE_FINISHED_ASIA&lt;br /&gt;
 400194 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT&lt;br /&gt;
 400205 ← MAP_POPUP_ROUTECALC_FAIL_MULTI&lt;br /&gt;
 400204 ← MAP_POPUP_ROUTECALC_FAIL_SINGLE&lt;br /&gt;
 400214 ← MAP_POPUP_MAPMODE_GOOGLE_MESSAGES_OFFLINE&lt;br /&gt;
 400215 ← MAP_POPUP_MAPMODE_GOOGLE_NO_DATA&lt;br /&gt;
 400211 ← NAV_SDS_POPUP_CONTACT&lt;br /&gt;
 400220 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_TEMP_ERROR&lt;br /&gt;
 400221 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_COUNTRY&lt;br /&gt;
 400222 ← MAP_POPUP_MAPVIEW_STREETVIEW_DRIVING&lt;br /&gt;
 400223 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_OK&lt;br /&gt;
 400218 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_LICENCE&lt;br /&gt;
 400219 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_CONNECTION&lt;br /&gt;
 400186 ← MAP_POPUP_SHOW_POI_WARNING_MAIN&lt;br /&gt;
 400190 ← DEST_POPUP_NVC_NUMBER_INVALID_MAIN&lt;br /&gt;
 400133 ← MAP_POPUP_SEMIDYN_BLOCK_MAIN&lt;br /&gt;
 400134 ← MAP_POPUP_SEMIDYN_BETTER&lt;br /&gt;
 400149 ← DEST_POPUP_DATABASE_INCOMPLETE&lt;br /&gt;
 400124 ← DEST_POPUP_DEMO_MODE_ACTIVE&lt;br /&gt;
 400120 ← DEST_POPUP_SETDEST_ONE_DEST&lt;br /&gt;
 400104 ← MAP_POPUP_GAS_STATION_LIST&lt;br /&gt;
 400103 ← MAP_POPUP_GAS_WARNING_MAIN&lt;br /&gt;
 400079 ← DEST_POPUP_SETDEST_TWO_DEST&lt;br /&gt;
&lt;br /&gt;
== ??? ==&lt;br /&gt;
 500006 ← MAP_POPUP_SHOW_URGENT_WARNING_MAIN&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
== UGNO, Charisma, Boardbook ==&lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
 600045 ← MAIN_POPUP_SYSTEM_TEL_MAX_WARNING&lt;br /&gt;
 600046 ← MAIN_POPUP_SYSTEM_THEFT_PROTECTION&lt;br /&gt;
 600047 ← MAIN_POPUP_SHOWROOM&lt;br /&gt;
 600086 ← CAR_POPUP_UGDO_LEARN_VISIBLE&lt;br /&gt;
 600087 ← CAR_POPUP_UGDO_SYNC_VISIBLE&lt;br /&gt;
 600106 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN&lt;br /&gt;
 600107 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_DISCLAIMER&lt;br /&gt;
 600108 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_EMPTY&lt;br /&gt;
 600112 ← SETTINGS_POPUP_INSTRUCTION_BOOK_VIDEO&lt;br /&gt;
 600114 ← CAR_POPUP_VISIBLE&lt;br /&gt;
 600128 ← CAR_POPUP_DRIVING_SCHOOL_MAIN&lt;br /&gt;
 600138 ← CAR_POPUP_DRIVE_SELECT_LIFT_N_A&lt;br /&gt;
 600139 ← CAR_POPUP_DRIVE_SELECT_EFFICIENCY_N_A&lt;br /&gt;
 600145 ← SETTINGS_POPUP_INSTRUCTION_BOOK_WAITING&lt;br /&gt;
 600298 ← CAR_POPUP_AUXAC&lt;br /&gt;
&lt;br /&gt;
 700017 ← ADB_POPUP_DOWNLOAD_ERROR&lt;br /&gt;
 700045 ← ADB_SDS_POPUP_CONTACT&lt;br /&gt;
&lt;br /&gt;
== MAPS Japan ==&lt;br /&gt;
 900016 ← MAP_POPUP_VICS_DSRC_FIGURE_JP&lt;br /&gt;
 900022 ← MAP_POPUP_VICS_GEN2_EMERGENCY_JP_MAIN&lt;br /&gt;
 900014 ← MAP_OPT_VICS_SETUP_JP_POPUP_MSG&lt;br /&gt;
 900005 ← MAP_POPUP_DSRC_TTS_PPU_JP&lt;br /&gt;
&lt;br /&gt;
== SoftWare DownLoad ==&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
 1700000 ← UpdateInterrupted&lt;br /&gt;
 1700002 ← UpdateFailure&lt;br /&gt;
 1700003 ← UpdateSuccessful&lt;br /&gt;
 1700009 ← CompatibilityCheckFailure&lt;br /&gt;
 1700010 ← custDownloadInfoPopup&lt;br /&gt;
 1700017 ← SummaryChanged&lt;br /&gt;
 1700069 ← custDownloadLeaveProgress&lt;br /&gt;
&lt;br /&gt;
== ETC payment system ==&lt;br /&gt;
 1100048 ← ETC_POPUP_NO_CARD_INSERTED_JP_MAIN&lt;br /&gt;
 1100049 ← ETC_POPUP_CARD_STILL_INSERT_JP_MAIN&lt;br /&gt;
 1100053 ← ETC_POPUP_ERROR_JP&lt;br /&gt;
 1100054 ← ETC_POPUP_PASS_GATE_JP&lt;br /&gt;
 1100055 ← MAIN_POPUP_TIMEZONE&lt;br /&gt;
 1100056 ← MAIN_POPUP_SOMMER_TIME&lt;br /&gt;
&lt;br /&gt;
== SETTINGS ==&lt;br /&gt;
 1700079 ← SETTINGS_POPUP_GEN_NEW_DATA_AVAILABLE&lt;br /&gt;
 1700078 ← SETTINGS_POPUP_NAVI_LICENCE_GETTTING_INVALID&lt;br /&gt;
 1700077 ← SETTINGS_POPUP_NAVI_NEW_DATA_AVAILABLE_LICENCE_NOT_AVAILABLE&lt;br /&gt;
 1700076 ← SETTINGS_POPUP_UPDATE_ONLINE_NEW_DATA_AVAILABLE_LICENCE_AVAILABLE&lt;br /&gt;
 1700090 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DISCLAIMER&lt;br /&gt;
 1700091 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL&lt;br /&gt;
 1700082 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE_RETRY_POSSIBLE&lt;br /&gt;
 1700083 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE&lt;br /&gt;
 1700086 ← SETTINGS_POPUP_ONLINE_UPDATE_INCOMPATIBLE_DATA&lt;br /&gt;
 1700087 ← SETTINGS_POPUP_ONLINE_UPDATE_SERVER_FAILURE&lt;br /&gt;
 1700084 ← SETTINGS_POPUP_ONLINE_UPDATE_ACCESS_FAILURE&lt;br /&gt;
 1700085 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_DATA&lt;br /&gt;
 1700047 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_SUCCESSFUL&lt;br /&gt;
 1700046 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_FAILURE&lt;br /&gt;
 1700048 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_INTERRUPT_SD&lt;br /&gt;
 1700054 ← SETTINGS_POPUP_UPDATE_SOURCE_CONFIRMATION&lt;br /&gt;
 1700145 ← SETTINGS_POPUP_ONLINE_UPDATE_UOTASERVER_FAILURE&lt;br /&gt;
 1700144 ← SETTINGS_POPUP_UPDATE_PERSONALIZE&lt;br /&gt;
 1700146 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_SERVICE&lt;br /&gt;
 1700140 ← SETTINGS_POPUP_UPDATE_ONLINE_PROPOSAL_TRAVEL_NEW_DATA_AVAILABLE_LICENCE&lt;br /&gt;
 1700141 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DESTINATION&lt;br /&gt;
 1700142 ← SETTINGS_POPUP_UPDATE_NAV_DB_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
 1700143 ← SETTINGS_POPUP_UPDATE_PPOI_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
&lt;br /&gt;
== CAR Early apps ==&lt;br /&gt;
 2100000 ← CAR_POPUP_PARKING_PLA_ACTIVE_PARK&lt;br /&gt;
 2100001 ← CAR_POPUP_PARKING_APS_OPS_VPS_RVC&lt;br /&gt;
 2100002 ← CAR_POPUP_PARKING_ARA&lt;br /&gt;
 2100008 ← CAR_POPUP_PARKING_OPS&lt;br /&gt;
 2100009 ← CAR_POPUP_PARKING_ARA_TEXTS&lt;br /&gt;
 2100010 ← CAR_POPUP_PARKING_PLA_TEXTS_MAIN&lt;br /&gt;
 2100016 ← CAR_POPUP_SEAT_RIGHT&lt;br /&gt;
 2100017 ← CAR_POPUP_SEAT_LEFT&lt;br /&gt;
 2100018 ← CAR_POPUP_SEATMEMORY_LEFT&lt;br /&gt;
 2100021 ← CAR_POPUP_SEATMEMORY_RIGHT&lt;br /&gt;
 2100030 ← CAR_POPUP_SEAT_KOMBI_LEFT&lt;br /&gt;
 2100031 ← CAR_POPUP_SEAT_KOMBI_RIGHT&lt;br /&gt;
 2100035 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_LEFT&lt;br /&gt;
 2100036 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_SELECTION&lt;br /&gt;
 2100037 ← CAR_POPUP_PARKING_VISIBLE&lt;br /&gt;
 2100038 ← CAR_POPUP_PARKING_PLA_TEXT_OK&lt;br /&gt;
 2100040 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_RIGHT&lt;br /&gt;
 2100042 ← CAR_POPUP_CHARGE_END_INVISIBLE&lt;br /&gt;
 2100043 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_OUT&lt;br /&gt;
 2100044 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_CENTER&lt;br /&gt;
 2100045 ← CAR_POPUP_SOCCONTROL_MAIN&lt;br /&gt;
 2100065 ← CAR_POPUP_END_AUXCOMBINED_MAIN&lt;br /&gt;
 2100066 ← CAR_POPUP_END_AUXAC_MAIN&lt;br /&gt;
 2100067 ← CAR_POPUP_CHARGE_END&lt;br /&gt;
 2100070 ← CAR_POPUP_CHARGE_END_INVISIBLE_A3MQB&lt;br /&gt;
 2100071 ← CAR_POPUP_PARKING_ARA_TEXTS_CENTER&lt;br /&gt;
&lt;br /&gt;
== OFFICE ==&lt;br /&gt;
 2200104 ← OFFICE_POPUP_MAIL_STORE_VCARD_OK&lt;br /&gt;
 2200099 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_2&lt;br /&gt;
 2200100 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_1&lt;br /&gt;
 2200101 ← OFFICE_POPUP_SMS_STORE_VCARD_OK&lt;br /&gt;
 2200102 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_1&lt;br /&gt;
 2200103 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_2&lt;br /&gt;
 2200091 ← OFFICE_POPUP_MAIL_SPEED_DISCLAIMER&lt;br /&gt;
 2200090 ← OFFICE_POPUP_MAIL_STORE_DRAFT_OK&lt;br /&gt;
 2200089 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200088 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200092 ← OFFICE_POPUP_SMS_SPEED_DISCLAIMER&lt;br /&gt;
 2200083 ← OFFICE_POPUP_SMS_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200087 ← OFFICE_POPUP_MAIL_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200086 ← OFFICE_POPUP_SMS_STORE_DRAFT_OK&lt;br /&gt;
 2200085 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200084 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200078 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_1&lt;br /&gt;
 2200079 ← OFFICE_POPUP_SMS_STORE_TEMP_OK&lt;br /&gt;
 2200076 ← OFFICE_POPUP_SMS_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200077 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_2&lt;br /&gt;
 2200070 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_2&lt;br /&gt;
 2200071 ← OFFICE_POPUP_MAIL_STORE_TEMP_OK&lt;br /&gt;
 2200068 ← OFFICE_POPUP_MAIL_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200069 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_1&lt;br /&gt;
 2200155 ← OFFICE_POPUP_MAIL_MAX_CHARS&lt;br /&gt;
 2200154 ← OFFICE_POPUP_SMS_MAX_CHARS&lt;br /&gt;
 2200153 ← OFFICE_POPUP_SDS_CONTACT_MAIL_MORE&lt;br /&gt;
 2200152 ← OFFICE_POPUP_SMS_SIM_DELETE_DONE&lt;br /&gt;
 2200151 ← OFFICE_POPUP_SMS_SIM_DELETE_ERROR&lt;br /&gt;
 2200150 ← OFFICE_POPUP_SMS_SIM_DELETE_MAIN&lt;br /&gt;
 2200003 ← OFFICE_POPUP_SDS_ACCOUNT_NAMES&lt;br /&gt;
&lt;br /&gt;
== ONLINE ==&lt;br /&gt;
 2300071 ← CM_POPUP_ONLINE_ERROR_LICENSE_CHECK_QUERY&lt;br /&gt;
 2300070 ← CM_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 2300069 ← CM_POPUP_ONLINE_SERVICELIST_NA&lt;br /&gt;
 2300068 ← CM_POPUP_ONLINE_TEASER_NOTE_MAIN&lt;br /&gt;
 2300092 ← CM_POPUP_ONLINE_LICENSE_REJECTED&lt;br /&gt;
 2300090 ← CM_POPUP_ONLINE_NOT_LICENSED&lt;br /&gt;
 2300091 ← CM_POPUP_ONLINE_NOT_ACTIVATED&lt;br /&gt;
 2300060 ← AUDI_CONNECT_RHMI_POPUP_TIMEOUT&lt;br /&gt;
 2300061 ← AUDI_CONNECT_RHMI_POPUP&lt;br /&gt;
 2300057 ← AUDI_CONNECT_POPUP_OPT&lt;br /&gt;
 2300059 ← AUDI_CONNECT_RHMI_POPUP_BUTTON&lt;br /&gt;
 2300139 ← CM_POPUP_ONLINE_NOT_ACTIVATED_G22&lt;br /&gt;
 2300155 ← CM_POPUP_ONLINE_ERRORS_OUT_OF_RANGE&lt;br /&gt;
 2300208 ← AUDI_CONNECT_KEYCARD_POPUP_DEACTIVATE&lt;br /&gt;
 2300210 ← AUDI_CONNECT_SERVICE_ACK_POPUP_MOBILITY_REQUIREMENTS&lt;br /&gt;
 2300204 ← AUDI_CONNECT_KEYCARD_ACTIVATION_ERR_POPUP&lt;br /&gt;
 2300205 ← AUDI_CONNECT_KEYCARD_PHONEBOX_HINT_POPUP&lt;br /&gt;
 2300207 ← AUDI_CONNECT_KEYCARD_POPUP_ACTIVATE&lt;br /&gt;
 2300162 ← AUDI_CONNECT_POPUP_NEW_DESTINATIONS&lt;br /&gt;
&lt;br /&gt;
 2500052 ← CM_POPUP_ONLINE_ERROR_NO_ROAMING&lt;br /&gt;
 2500053 ← CM_POPUP_ONLINE_ERROR_GSM_ACTIVE&lt;br /&gt;
 2500054 ← CM_POPUP_ONLINE_ERROR_ROAMING_DISCLAIMER&lt;br /&gt;
 2500048 ← CM_POPUP_ONLINE_ERROR_NO_PHONE&lt;br /&gt;
 2500049 ← CM_POPUP_ONLINE_ERROR_NO_PIN&lt;br /&gt;
 2500050 ← CM_POPUP_ONLINE_ERROR_NO_SIMAP&lt;br /&gt;
 2500051 ← CM_POPUP_ONLINE_ERROR_DATA_DEACTIVATE&lt;br /&gt;
 2500060 ← CM_POPUP_WLAN_BONDING_ERROR_ELSE&lt;br /&gt;
 2500061 ← CM_POPUP_WLAN_BONDING_ERROR_PIN&lt;br /&gt;
 2500058 ← CM_POPUP_ONLINE_ERROR_NO_SIM&lt;br /&gt;
 2500039 ← CM_POPUP_BLUETOOTH_EXTERNAL_CODE_EDIT&lt;br /&gt;
 2500045 ← CM_POPUP_ONLINE_CONNECTION_REQUEST&lt;br /&gt;
 2500044 ← CM_POPUP_ONLINE_DISCLAIMER_SHOW&lt;br /&gt;
 2500047 ← CM_POPUP_ONLINE_ERROR_NO_CONFIG&lt;br /&gt;
 2500083 ← CM_POPUP_BLUETOOTH_EXTERNAL_MAIN&lt;br /&gt;
 2500092 ← CM_POPUP_ONLINE_ERROR_SIM_FAILURE&lt;br /&gt;
 2500090 ← CM_POPUP_ONLINE_ERROR_NO_PUK&lt;br /&gt;
 2500065 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG_PROFILES_MAIN&lt;br /&gt;
 2500137 ← CM_POPUP_ONLINE_ERROR_NO_ESIM&lt;br /&gt;
 2500138 ← CM_POPUP_ONLINE_ERROR_NO_PHONE_ESIM&lt;br /&gt;
 2500150 ← CM_POPUP_ONLINE_GPS&lt;br /&gt;
 2500018 ← CM_POPUP_BLUETOOTH_OBEX_CODE_PASSWORD&lt;br /&gt;
 2500111 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG&lt;br /&gt;
 2500016 ← CM_POPUP_BLUETOOTH_BONDING_ERROR&lt;br /&gt;
 2500017 ← CM_POPUP_BLUETOOTH_OBEX_CODE_ID&lt;br /&gt;
 2500098 ← CM_POPUP_BLUETOOTH_OBEX_MAIN&lt;br /&gt;
 2500099 ← CM_POPUP_BLUETOOTH_NA&lt;br /&gt;
 2500113 ← CM_POPUP_ONLINE_ERROR_DATA_MODULE_DEACTIVATE&lt;br /&gt;
&lt;br /&gt;
== TV ==&lt;br /&gt;
 2600015 ← TV_POPUP_EWS_MAIN&lt;br /&gt;
 2600016 ← TV_POPUP_EWS_PREFECTURES&lt;br /&gt;
 2600045 ← TV_POPUP_EWS_SMT&lt;br /&gt;
&lt;br /&gt;
== SOS ==&lt;br /&gt;
 3300043 ← SOS_POPUP_MEC_ACCOMPLISHED&lt;br /&gt;
 3300042 ← SOS_POPUP_MEC_REDIAL&lt;br /&gt;
 3300041 ← SOS_POPUP_MEC_FAILED_1&lt;br /&gt;
 3300040 ← SOS_POPUP_MEC_SENDING_DATA&lt;br /&gt;
 3300046 ← SOS_POPUP_REDIAL&lt;br /&gt;
 3300045 ← SOS_POPUP_MEC_CANCELED&lt;br /&gt;
 3300044 ← SOS_POPUP_MEC_FAILED&lt;br /&gt;
 3300035 ← SOS_POPUP_CANCELED&lt;br /&gt;
 3300032 ← SOS_POPUP_ACCOMPLISHED&lt;br /&gt;
 3300039 ← SOS_POPUP_MEC_CONNECTED&lt;br /&gt;
 3300038 ← SOS_POPUP_MEC_CONNECTING&lt;br /&gt;
 3300037 ← OPR_POPUP_CANCELED&lt;br /&gt;
 3300036 ← SOS_POPUP_FAILED&lt;br /&gt;
 3300009 ← OPR_POPUP_CONNECTING&lt;br /&gt;
 3300008 ← OPR_POPUP_DATA_SEND&lt;br /&gt;
 3300011 ← OPR_POPUP_DISCONNECT&lt;br /&gt;
 3300010 ← OPR_POPUP_CONNECTED&lt;br /&gt;
 3300005 ← OPR_POPUP_DATA_END_ACTIVE_CALL&lt;br /&gt;
 3300007 ← OPR_POPUP_DATA_COLLECT&lt;br /&gt;
 3300006 ← SOS_POPUP_ONLINE_LICENSE_NOTE_WEBSHOP&lt;br /&gt;
 3300001 ← OPR_POPUP_MANUAL_CONSIERGE&lt;br /&gt;
 3300003 ← OPR_POPUP_AUTOMATIC&lt;br /&gt;
 3300002 ← OPR_POPUP_MANUAL_CALLCENTER&lt;br /&gt;
 3300028 ← SOS_POPUP_LICENSE_TEASER_NOTE_WEBSHOP&lt;br /&gt;
 3300029 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 3300030 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300031 ← OPR_POPUP_CALL_FAILED&lt;br /&gt;
 3300024 ← SOS_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 3300025 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 3300026 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300027 ← SOS_POPUP_LICENSE_TEASER_NOTE_MAIN&lt;br /&gt;
 3300020 ← SOS_POPUP_CONNECTED&lt;br /&gt;
 3300021 ← SOS_POPUP_SENDING_DATA&lt;br /&gt;
 3300022 ← SOS_POPUP_CALLBACK_INCOMING&lt;br /&gt;
 3300017 ← OPR_DEST_POPUP_MAIN&lt;br /&gt;
 3300018 ← SOS_POPUP_MEC_MAIN&lt;br /&gt;
 3300019 ← SOS_POPUP_CONNECTING&lt;br /&gt;
&lt;br /&gt;
== CHARGING ==&lt;br /&gt;
 3400000 ← CHARGING_POPUP_OBJECT&lt;br /&gt;
 3400001 ← CHARGING_POPUP_FOREIGN_OBJECT_DETECT&lt;br /&gt;
 3400002 ← CHARGING_POPUP_REMINDER&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=426</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=426"/>
		<updated>2026-04-14T18:42:28Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; 35 ← KombiActivePopup&lt;br /&gt;
 42 ← MAIN_POPUP_SYSTEM_BAT_WARNING&lt;br /&gt;
 43 ← MAIN_POPUP_SYSTEM_TEMP&lt;br /&gt;
 52 ← POPUP_VOLUME&lt;br /&gt;
 61 ← POPUP_ANNOUNCEMENT&lt;br /&gt;
 62 ← StatusBarG22 / PartialPopupStatusbar&lt;br /&gt;
 64 ← PartialPopupDiagnosis&lt;br /&gt;
 65 ← DebugInfos / PartialPopupDebugInfo&lt;br /&gt;
 66 ← SETTINGS_POPUP_RESET_DRIVER_ERROR&lt;br /&gt;
 67 ← SETTINGS_POPUP_PTT_NO_SDS&lt;br /&gt;
 68 ← sdsDebugPopup&lt;br /&gt;
 72 ← Standby / POPUP_STANDBY&lt;br /&gt;
 75 ← UserHint&lt;br /&gt;
 76 ← UserHint&lt;br /&gt;
 78 ← UserHint&lt;br /&gt;
 80 ← UserHint&lt;br /&gt;
 81 ← UserHint&lt;br /&gt;
 85 ← Presets / PRESET_POPUP&lt;br /&gt;
 93 ← CM_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 94 ← CM_POPUP_ONLINE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 95 ← PartialPopupSportSkin&lt;br /&gt;
 96 ← UserHint&lt;br /&gt;
 97 ← UserHint&lt;br /&gt;
 98 ← UserHint&lt;br /&gt;
 100 ← SDS_LOGICAL_POPUP&lt;br /&gt;
 101 ← StatusBarG24 / PartialPopupStatusbarG24SCD&lt;br /&gt;
 102 ← POPUP_COMBI_POPUP_ACTIVE_DUMMY&lt;br /&gt;
 103 ← UserHint&lt;br /&gt;
 105 ← UserHint&lt;br /&gt;
 113 ← POPUP_NO_NAV_AVAILABLE&lt;br /&gt;
 114 ← MAIN_POPUP_LAYOUT_SPORT_CLASSIC&lt;br /&gt;
 115 ← POPUP_STANDBY_G24&lt;br /&gt;
 116 ← POPUP_ANNOUNCEMENT_G24&lt;br /&gt;
 119 ← Conversion Matrix / POPUP_CONVERSION_MATRIX_ASIA&lt;br /&gt;
 155 ← MAIN_POPUP_SDIS_MEDIA&lt;br /&gt;
 179 ← MAIN_POPUP_SDIS_NAVI&lt;br /&gt;
 180 ← MEDIA_POPUP_A2LS_MAIN&lt;br /&gt;
 183 ← AUDI_CONNECT_POPUP_HINT_MAIN&lt;br /&gt;
 184 ← SETTINGS_POPUP_PTT_NO_SDS_DRIVE_SELECT&lt;br /&gt;
&lt;br /&gt;
 100012 ← TUNER_POPUP_LIST_MSG_ERROR&lt;br /&gt;
 100013 ← TUNER_POPUP_LIST_MSG_ANTENNA&lt;br /&gt;
 100015 ← TUNER_POPUP_LIST_MSG_UPDATE_DONE&lt;br /&gt;
 100032 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_MAIN&lt;br /&gt;
 100033 ← TUNER_POPUP_LIST_MSG_UNSUBSCR_NOPHONE&lt;br /&gt;
 100143 ← TUNER_POPUP_LIST_MSG_INVALID_MAIN&lt;br /&gt;
 100144 ← TUNER_POPUP_LIST_MSG_UNKNOWN&lt;br /&gt;
 100145 ← TUNER_POPUP_LIST_MSG_UPDATE_MAIN&lt;br /&gt;
 100146 ← TUNER_POPUP_LIST_MSG_SIRIUS_ESN&lt;br /&gt;
 100147 ← TUNER_POPUP_OPT&lt;br /&gt;
 100152 ← PP_TUNER_POPUP_TAG_TRANSFER_OK&lt;br /&gt;
 100153 ← PP_TUNER_POPUP_TAG_TRANSFER_RETRY&lt;br /&gt;
 100155 ← PP_TUNER_POPUP_TAG_TRANSFER_MAIN&lt;br /&gt;
 100158 ← TUNER_POPUP_SXM_CALL_NAR&lt;br /&gt;
 100161 ← TUNER_POPUP_RT_LOCATION&lt;br /&gt;
 100162 ← TUNER_POPUP_RT_TEL&lt;br /&gt;
 100163 ← TUNER_POPUP_RT_SMS&lt;br /&gt;
 100164 ← TUNER_POPUP_RT_EMAIL&lt;br /&gt;
 100165 ← TUNER_POPUP_RT_SERVICE_NA&lt;br /&gt;
 100167 ← TUNER_POPUP_RT_NOPHONE_02_MAIN&lt;br /&gt;
&lt;br /&gt;
 200009 ← source selection //needs to be checked&lt;br /&gt;
 200081 ← MEDIA_POPUP_COPY_SUMMARY_UNIVERSAL&lt;br /&gt;
 200134 ← MEDIA_POPUP_SWITCH_SOURCE_MAIN&lt;br /&gt;
 200135 ← MEDIA_POPUP_SECOND_DEVICE_MAIN&lt;br /&gt;
 200145 ← MEDIA_POPUP_ERRORS_UNIVERSAL&lt;br /&gt;
 200204 ← MEDIA_POPUP_COPY_SUMMARY_OK&lt;br /&gt;
 200205 ← MEDIA_POPUP_PRESET_DISABLED&lt;br /&gt;
&lt;br /&gt;
 300000 ← entertainment drawer //needs to be checked&lt;br /&gt;
 300084 ← TEL_POPUP_ERR&lt;br /&gt;
 300085 ← TEL_POPUP_BATTERY_WARNING&lt;br /&gt;
 300161 ← TEL_POPUP_MFL_PHONE_NA&lt;br /&gt;
 300162 ← TEL_POPUP_MFL_CALL_LIST&lt;br /&gt;
 300164 ← TEL_POPUP_SERVICE_CODE_HFP&lt;br /&gt;
 300166 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NET&lt;br /&gt;
 300167 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_ACTIVE&lt;br /&gt;
 300168 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_NOT_ACTIVE&lt;br /&gt;
 300169 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_DIVERT_ACTIVE&lt;br /&gt;
 300170 ← TEL_POPUP_SERVICE_CODE_SAP_REQ&lt;br /&gt;
 300171 ← TEL_POPUP_SERVICE_CODE_SAP_OK&lt;br /&gt;
 300172 ← TEL_POPUP_SERVICE_CODE_SAP_ERR&lt;br /&gt;
 300173 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US&lt;br /&gt;
 300174 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_ACTIVE&lt;br /&gt;
 300175 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_WAIT_NOT_ACTIVE&lt;br /&gt;
 300176 ← TEL_POPUP_SERVICE_CODE_SAP_CALL_NUM_NOT_ACTIVE&lt;br /&gt;
 300181 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_ACTIVATE_OK&lt;br /&gt;
 300182 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_WAIT_CANCEL_OK&lt;br /&gt;
 300183 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_ACTIVATE_OK&lt;br /&gt;
 300184 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_NUM_CANCEL_OK&lt;br /&gt;
 300185 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_ACTIVATE_OK&lt;br /&gt;
 300186 ← TEL_POPUP_SERVICE_CODE_SAP_RESULT_US_DIVERT_CANCEL_OK&lt;br /&gt;
 300213 ← TEL_POPUP_AUTOGRAP&lt;br /&gt;
 300329 ← TEL_POPUP_AUDIO&lt;br /&gt;
&lt;br /&gt;
 400367 ← DEST_POPUP_NAVI_REMOVED_MAIN&lt;br /&gt;
 400354 ← MAP_POPUP_HOV_LANE&lt;br /&gt;
 400373 ← MAP_POPUP_MINI_MAP&lt;br /&gt;
 400372 ← MAP_POPUP_SELENA_MAIN&lt;br /&gt;
 400345 ← DEST_POPUP_NO_HOME_ADDRESS_XXX&lt;br /&gt;
 400269 ← DEST_POPUP_ADDRESS_NAR_INVALID_NUMBER&lt;br /&gt;
 400281 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TUNNEL_ASIA&lt;br /&gt;
 400280 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_FERRY_ASIA&lt;br /&gt;
 400277 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_MOTORWAY_ASIA&lt;br /&gt;
 400279 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_BRIDGE_ASIA&lt;br /&gt;
 400278 ← MAP_POPUP_MAP_SCROLL_DISAMBIGUATION_TOLL_ASIA&lt;br /&gt;
 400231 ← MAP_POPUP_GE_LICENCE_EXPIRED&lt;br /&gt;
 400230 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT_EDIT&lt;br /&gt;
 400225 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_FULL&lt;br /&gt;
 400224 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_ERROR&lt;br /&gt;
 400232 ← MAP_POPUP_ONLINE_TRAFFIC_LICENCE_EXPIRED&lt;br /&gt;
 400254 ← MAP_POPUP_DB_MERGE_FINISHED_ASIA&lt;br /&gt;
 400194 ← DEST_POPUP_TRY_BEST_MATCH_NO_RESULT&lt;br /&gt;
 400205 ← MAP_POPUP_ROUTECALC_FAIL_MULTI&lt;br /&gt;
 400204 ← MAP_POPUP_ROUTECALC_FAIL_SINGLE&lt;br /&gt;
 400214 ← MAP_POPUP_MAPMODE_GOOGLE_MESSAGES_OFFLINE&lt;br /&gt;
 400215 ← MAP_POPUP_MAPMODE_GOOGLE_NO_DATA&lt;br /&gt;
 400211 ← NAV_SDS_POPUP_CONTACT&lt;br /&gt;
 400220 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_TEMP_ERROR&lt;br /&gt;
 400221 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_COUNTRY&lt;br /&gt;
 400222 ← MAP_POPUP_MAPVIEW_STREETVIEW_DRIVING&lt;br /&gt;
 400223 ← MAP_POPUP_MAPVIEW_STREETVIEW_SNAPSHOT_OK&lt;br /&gt;
 400218 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_LICENCE&lt;br /&gt;
 400219 ← MAP_POPUP_MAPMODE_TRAFFIC_WARNING_NO_CONNECTION&lt;br /&gt;
 400186 ← MAP_POPUP_SHOW_POI_WARNING_MAIN&lt;br /&gt;
 400190 ← DEST_POPUP_NVC_NUMBER_INVALID_MAIN&lt;br /&gt;
 400133 ← MAP_POPUP_SEMIDYN_BLOCK_MAIN&lt;br /&gt;
 400134 ← MAP_POPUP_SEMIDYN_BETTER&lt;br /&gt;
 400149 ← DEST_POPUP_DATABASE_INCOMPLETE&lt;br /&gt;
 400124 ← DEST_POPUP_DEMO_MODE_ACTIVE&lt;br /&gt;
 400120 ← DEST_POPUP_SETDEST_ONE_DEST&lt;br /&gt;
 400104 ← MAP_POPUP_GAS_STATION_LIST&lt;br /&gt;
 400103 ← MAP_POPUP_GAS_WARNING_MAIN&lt;br /&gt;
 400079 ← DEST_POPUP_SETDEST_TWO_DEST&lt;br /&gt;
&lt;br /&gt;
 500006 ← MAP_POPUP_SHOW_URGENT_WARNING_MAIN&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
 600045 ← MAIN_POPUP_SYSTEM_TEL_MAX_WARNING&lt;br /&gt;
 600046 ← MAIN_POPUP_SYSTEM_THEFT_PROTECTION&lt;br /&gt;
 600047 ← MAIN_POPUP_SHOWROOM&lt;br /&gt;
 600086 ← CAR_POPUP_UGDO_LEARN_VISIBLE&lt;br /&gt;
 600087 ← CAR_POPUP_UGDO_SYNC_VISIBLE&lt;br /&gt;
 600106 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN&lt;br /&gt;
 600107 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_DISCLAIMER&lt;br /&gt;
 600108 ← SETTINGS_POPUP_INSTRUCTION_BOOK_MAIN_EMPTY&lt;br /&gt;
 600112 ← SETTINGS_POPUP_INSTRUCTION_BOOK_VIDEO&lt;br /&gt;
 600114 ← CAR_POPUP_VISIBLE&lt;br /&gt;
 600128 ← CAR_POPUP_DRIVING_SCHOOL_MAIN&lt;br /&gt;
 600138 ← CAR_POPUP_DRIVE_SELECT_LIFT_N_A&lt;br /&gt;
 600139 ← CAR_POPUP_DRIVE_SELECT_EFFICIENCY_N_A&lt;br /&gt;
 600145 ← SETTINGS_POPUP_INSTRUCTION_BOOK_WAITING&lt;br /&gt;
 600298 ← CAR_POPUP_AUXAC&lt;br /&gt;
&lt;br /&gt;
 700017 ← ADB_POPUP_DOWNLOAD_ERROR&lt;br /&gt;
 700045 ← ADB_SDS_POPUP_CONTACT&lt;br /&gt;
&lt;br /&gt;
 900016 ← MAP_POPUP_VICS_DSRC_FIGURE_JP&lt;br /&gt;
 900022 ← MAP_POPUP_VICS_GEN2_EMERGENCY_JP_MAIN&lt;br /&gt;
 900014 ← MAP_OPT_VICS_SETUP_JP_POPUP_MSG&lt;br /&gt;
 900005 ← MAP_POPUP_DSRC_TTS_PPU_JP&lt;br /&gt;
&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
 1700000 ← UpdateInterrupted&lt;br /&gt;
 1700002 ← UpdateFailure&lt;br /&gt;
 1700003 ← UpdateSuccessful&lt;br /&gt;
 1700009 ← CompatibilityCheckFailure&lt;br /&gt;
 1700010 ← custDownloadInfoPopup&lt;br /&gt;
 1700017 ← SummaryChanged&lt;br /&gt;
 1700069 ← custDownloadLeaveProgress&lt;br /&gt;
&lt;br /&gt;
 1100048 ← ETC_POPUP_NO_CARD_INSERTED_JP_MAIN&lt;br /&gt;
 1100049 ← ETC_POPUP_CARD_STILL_INSERT_JP_MAIN&lt;br /&gt;
 1100053 ← ETC_POPUP_ERROR_JP&lt;br /&gt;
 1100054 ← ETC_POPUP_PASS_GATE_JP&lt;br /&gt;
 1100055 ← MAIN_POPUP_TIMEZONE&lt;br /&gt;
 1100056 ← MAIN_POPUP_SOMMER_TIME&lt;br /&gt;
&lt;br /&gt;
 1700079 ← SETTINGS_POPUP_GEN_NEW_DATA_AVAILABLE&lt;br /&gt;
 1700078 ← SETTINGS_POPUP_NAVI_LICENCE_GETTTING_INVALID&lt;br /&gt;
 1700077 ← SETTINGS_POPUP_NAVI_NEW_DATA_AVAILABLE_LICENCE_NOT_AVAILABLE&lt;br /&gt;
 1700076 ← SETTINGS_POPUP_UPDATE_ONLINE_NEW_DATA_AVAILABLE_LICENCE_AVAILABLE&lt;br /&gt;
 1700090 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DISCLAIMER&lt;br /&gt;
 1700091 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL&lt;br /&gt;
 1700082 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE_RETRY_POSSIBLE&lt;br /&gt;
 1700083 ← SETTINGS_POPUP_ONLINE_UPDATE_DOWNLOAD_FAILURE&lt;br /&gt;
 1700086 ← SETTINGS_POPUP_ONLINE_UPDATE_INCOMPATIBLE_DATA&lt;br /&gt;
 1700087 ← SETTINGS_POPUP_ONLINE_UPDATE_SERVER_FAILURE&lt;br /&gt;
 1700084 ← SETTINGS_POPUP_ONLINE_UPDATE_ACCESS_FAILURE&lt;br /&gt;
 1700085 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_DATA&lt;br /&gt;
 1700047 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_SUCCESSFUL&lt;br /&gt;
 1700046 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_FAILURE&lt;br /&gt;
 1700048 ← SETTINGS_POPUP_UPDATE_GENERAL_SUMMARY_INTERRUPT_SD&lt;br /&gt;
 1700054 ← SETTINGS_POPUP_UPDATE_SOURCE_CONFIRMATION&lt;br /&gt;
 1700145 ← SETTINGS_POPUP_ONLINE_UPDATE_UOTASERVER_FAILURE&lt;br /&gt;
 1700144 ← SETTINGS_POPUP_UPDATE_PERSONALIZE&lt;br /&gt;
 1700146 ← SETTINGS_POPUP_ONLINE_UPDATE_NO_SERVICE&lt;br /&gt;
 1700140 ← SETTINGS_POPUP_UPDATE_ONLINE_PROPOSAL_TRAVEL_NEW_DATA_AVAILABLE_LICENCE&lt;br /&gt;
 1700141 ← SETTINGS_POPUP_UPDATE_SYSTEM_PROPOSAL_DESTINATION&lt;br /&gt;
 1700142 ← SETTINGS_POPUP_UPDATE_NAV_DB_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
 1700143 ← SETTINGS_POPUP_UPDATE_PPOI_SUMMARY_UOTA_SUCCESSFUL&lt;br /&gt;
&lt;br /&gt;
 2100000 ← CAR_POPUP_PARKING_PLA_ACTIVE_PARK&lt;br /&gt;
 2100001 ← CAR_POPUP_PARKING_APS_OPS_VPS_RVC&lt;br /&gt;
 2100002 ← CAR_POPUP_PARKING_ARA&lt;br /&gt;
 2100008 ← CAR_POPUP_PARKING_OPS&lt;br /&gt;
 2100009 ← CAR_POPUP_PARKING_ARA_TEXTS&lt;br /&gt;
 2100010 ← CAR_POPUP_PARKING_PLA_TEXTS_MAIN&lt;br /&gt;
 2100016 ← CAR_POPUP_SEAT_RIGHT&lt;br /&gt;
 2100017 ← CAR_POPUP_SEAT_LEFT&lt;br /&gt;
 2100018 ← CAR_POPUP_SEATMEMORY_LEFT&lt;br /&gt;
 2100021 ← CAR_POPUP_SEATMEMORY_RIGHT&lt;br /&gt;
 2100030 ← CAR_POPUP_SEAT_KOMBI_LEFT&lt;br /&gt;
 2100031 ← CAR_POPUP_SEAT_KOMBI_RIGHT&lt;br /&gt;
 2100035 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_LEFT&lt;br /&gt;
 2100036 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_SELECTION&lt;br /&gt;
 2100037 ← CAR_POPUP_PARKING_VISIBLE&lt;br /&gt;
 2100038 ← CAR_POPUP_PARKING_PLA_TEXT_OK&lt;br /&gt;
 2100040 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_RIGHT&lt;br /&gt;
 2100042 ← CAR_POPUP_CHARGE_END_INVISIBLE&lt;br /&gt;
 2100043 ← CAR_POPUP_PARKING_PLA_TEXTS_PLA_OUT&lt;br /&gt;
 2100044 ← CAR_POPUP_PARKING_PLA_TEXTS_OPS_CENTER&lt;br /&gt;
 2100045 ← CAR_POPUP_SOCCONTROL_MAIN&lt;br /&gt;
 2100065 ← CAR_POPUP_END_AUXCOMBINED_MAIN&lt;br /&gt;
 2100066 ← CAR_POPUP_END_AUXAC_MAIN&lt;br /&gt;
 2100067 ← CAR_POPUP_CHARGE_END&lt;br /&gt;
 2100070 ← CAR_POPUP_CHARGE_END_INVISIBLE_A3MQB&lt;br /&gt;
 2100071 ← CAR_POPUP_PARKING_ARA_TEXTS_CENTER&lt;br /&gt;
&lt;br /&gt;
 2200104 ← OFFICE_POPUP_MAIL_STORE_VCARD_OK&lt;br /&gt;
 2200099 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_2&lt;br /&gt;
 2200100 ← OFFICE_POPUP_SMS_STORE_VCARD_ERR_1&lt;br /&gt;
 2200101 ← OFFICE_POPUP_SMS_STORE_VCARD_OK&lt;br /&gt;
 2200102 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_1&lt;br /&gt;
 2200103 ← OFFICE_POPUP_MAIL_STORE_VCARD_ERR_2&lt;br /&gt;
 2200091 ← OFFICE_POPUP_MAIL_SPEED_DISCLAIMER&lt;br /&gt;
 2200090 ← OFFICE_POPUP_MAIL_STORE_DRAFT_OK&lt;br /&gt;
 2200089 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200088 ← OFFICE_POPUP_MAIL_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200092 ← OFFICE_POPUP_SMS_SPEED_DISCLAIMER&lt;br /&gt;
 2200083 ← OFFICE_POPUP_SMS_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200087 ← OFFICE_POPUP_MAIL_STORE_DRAFT_TEXT_ERR&lt;br /&gt;
 2200086 ← OFFICE_POPUP_SMS_STORE_DRAFT_OK&lt;br /&gt;
 2200085 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_1&lt;br /&gt;
 2200084 ← OFFICE_POPUP_SMS_STORE_DRAFT_ERR_2&lt;br /&gt;
 2200078 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_1&lt;br /&gt;
 2200079 ← OFFICE_POPUP_SMS_STORE_TEMP_OK&lt;br /&gt;
 2200076 ← OFFICE_POPUP_SMS_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200077 ← OFFICE_POPUP_SMS_STORE_TEMP_ERR_2&lt;br /&gt;
 2200070 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_2&lt;br /&gt;
 2200071 ← OFFICE_POPUP_MAIL_STORE_TEMP_OK&lt;br /&gt;
 2200068 ← OFFICE_POPUP_MAIL_STORE_TEMP_TEXT_ERR&lt;br /&gt;
 2200069 ← OFFICE_POPUP_MAIL_STORE_TEMP_ERR_1&lt;br /&gt;
 2200155 ← OFFICE_POPUP_MAIL_MAX_CHARS&lt;br /&gt;
 2200154 ← OFFICE_POPUP_SMS_MAX_CHARS&lt;br /&gt;
 2200153 ← OFFICE_POPUP_SDS_CONTACT_MAIL_MORE&lt;br /&gt;
 2200152 ← OFFICE_POPUP_SMS_SIM_DELETE_DONE&lt;br /&gt;
 2200151 ← OFFICE_POPUP_SMS_SIM_DELETE_ERROR&lt;br /&gt;
 2200150 ← OFFICE_POPUP_SMS_SIM_DELETE_MAIN&lt;br /&gt;
 2200003 ← OFFICE_POPUP_SDS_ACCOUNT_NAMES&lt;br /&gt;
&lt;br /&gt;
 2300071 ← CM_POPUP_ONLINE_ERROR_LICENSE_CHECK_QUERY&lt;br /&gt;
 2300070 ← CM_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 2300069 ← CM_POPUP_ONLINE_SERVICELIST_NA&lt;br /&gt;
 2300068 ← CM_POPUP_ONLINE_TEASER_NOTE_MAIN&lt;br /&gt;
 2300092 ← CM_POPUP_ONLINE_LICENSE_REJECTED&lt;br /&gt;
 2300090 ← CM_POPUP_ONLINE_NOT_LICENSED&lt;br /&gt;
 2300091 ← CM_POPUP_ONLINE_NOT_ACTIVATED&lt;br /&gt;
 2300060 ← AUDI_CONNECT_RHMI_POPUP_TIMEOUT&lt;br /&gt;
 2300061 ← AUDI_CONNECT_RHMI_POPUP&lt;br /&gt;
 2300057 ← AUDI_CONNECT_POPUP_OPT&lt;br /&gt;
 2300059 ← AUDI_CONNECT_RHMI_POPUP_BUTTON&lt;br /&gt;
 2300139 ← CM_POPUP_ONLINE_NOT_ACTIVATED_G22&lt;br /&gt;
 2300155 ← CM_POPUP_ONLINE_ERRORS_OUT_OF_RANGE&lt;br /&gt;
 2300208 ← AUDI_CONNECT_KEYCARD_POPUP_DEACTIVATE&lt;br /&gt;
 2300210 ← AUDI_CONNECT_SERVICE_ACK_POPUP_MOBILITY_REQUIREMENTS&lt;br /&gt;
 2300204 ← AUDI_CONNECT_KEYCARD_ACTIVATION_ERR_POPUP&lt;br /&gt;
 2300205 ← AUDI_CONNECT_KEYCARD_PHONEBOX_HINT_POPUP&lt;br /&gt;
 2300207 ← AUDI_CONNECT_KEYCARD_POPUP_ACTIVATE&lt;br /&gt;
 2300162 ← AUDI_CONNECT_POPUP_NEW_DESTINATIONS&lt;br /&gt;
&lt;br /&gt;
 2500052 ← CM_POPUP_ONLINE_ERROR_NO_ROAMING&lt;br /&gt;
 2500053 ← CM_POPUP_ONLINE_ERROR_GSM_ACTIVE&lt;br /&gt;
 2500054 ← CM_POPUP_ONLINE_ERROR_ROAMING_DISCLAIMER&lt;br /&gt;
 2500048 ← CM_POPUP_ONLINE_ERROR_NO_PHONE&lt;br /&gt;
 2500049 ← CM_POPUP_ONLINE_ERROR_NO_PIN&lt;br /&gt;
 2500050 ← CM_POPUP_ONLINE_ERROR_NO_SIMAP&lt;br /&gt;
 2500051 ← CM_POPUP_ONLINE_ERROR_DATA_DEACTIVATE&lt;br /&gt;
 2500060 ← CM_POPUP_WLAN_BONDING_ERROR_ELSE&lt;br /&gt;
 2500061 ← CM_POPUP_WLAN_BONDING_ERROR_PIN&lt;br /&gt;
 2500058 ← CM_POPUP_ONLINE_ERROR_NO_SIM&lt;br /&gt;
 2500039 ← CM_POPUP_BLUETOOTH_EXTERNAL_CODE_EDIT&lt;br /&gt;
 2500045 ← CM_POPUP_ONLINE_CONNECTION_REQUEST&lt;br /&gt;
 2500044 ← CM_POPUP_ONLINE_DISCLAIMER_SHOW&lt;br /&gt;
 2500047 ← CM_POPUP_ONLINE_ERROR_NO_CONFIG&lt;br /&gt;
 2500083 ← CM_POPUP_BLUETOOTH_EXTERNAL_MAIN&lt;br /&gt;
 2500092 ← CM_POPUP_ONLINE_ERROR_SIM_FAILURE&lt;br /&gt;
 2500090 ← CM_POPUP_ONLINE_ERROR_NO_PUK&lt;br /&gt;
 2500065 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG_PROFILES_MAIN&lt;br /&gt;
 2500137 ← CM_POPUP_ONLINE_ERROR_NO_ESIM&lt;br /&gt;
 2500138 ← CM_POPUP_ONLINE_ERROR_NO_PHONE_ESIM&lt;br /&gt;
 2500150 ← CM_POPUP_ONLINE_GPS&lt;br /&gt;
 2500018 ← CM_POPUP_BLUETOOTH_OBEX_CODE_PASSWORD&lt;br /&gt;
 2500111 ← CM_POPUP_ONLINE_ERRORS_SERVER_MULTI_CONFIG&lt;br /&gt;
 2500016 ← CM_POPUP_BLUETOOTH_BONDING_ERROR&lt;br /&gt;
 2500017 ← CM_POPUP_BLUETOOTH_OBEX_CODE_ID&lt;br /&gt;
 2500098 ← CM_POPUP_BLUETOOTH_OBEX_MAIN&lt;br /&gt;
 2500099 ← CM_POPUP_BLUETOOTH_NA&lt;br /&gt;
 2500113 ← CM_POPUP_ONLINE_ERROR_DATA_MODULE_DEACTIVATE&lt;br /&gt;
&lt;br /&gt;
 2600015 ← TV_POPUP_EWS_MAIN&lt;br /&gt;
 2600016 ← TV_POPUP_EWS_PREFECTURES&lt;br /&gt;
 2600045 ← TV_POPUP_EWS_SMT&lt;br /&gt;
&lt;br /&gt;
 3300043 ← SOS_POPUP_MEC_ACCOMPLISHED&lt;br /&gt;
 3300042 ← SOS_POPUP_MEC_REDIAL&lt;br /&gt;
 3300041 ← SOS_POPUP_MEC_FAILED_1&lt;br /&gt;
 3300040 ← SOS_POPUP_MEC_SENDING_DATA&lt;br /&gt;
 3300046 ← SOS_POPUP_REDIAL&lt;br /&gt;
 3300045 ← SOS_POPUP_MEC_CANCELED&lt;br /&gt;
 3300044 ← SOS_POPUP_MEC_FAILED&lt;br /&gt;
 3300035 ← SOS_POPUP_CANCELED&lt;br /&gt;
 3300032 ← SOS_POPUP_ACCOMPLISHED&lt;br /&gt;
 3300039 ← SOS_POPUP_MEC_CONNECTED&lt;br /&gt;
 3300038 ← SOS_POPUP_MEC_CONNECTING&lt;br /&gt;
 3300037 ← OPR_POPUP_CANCELED&lt;br /&gt;
 3300036 ← SOS_POPUP_FAILED&lt;br /&gt;
 3300009 ← OPR_POPUP_CONNECTING&lt;br /&gt;
 3300008 ← OPR_POPUP_DATA_SEND&lt;br /&gt;
 3300011 ← OPR_POPUP_DISCONNECT&lt;br /&gt;
 3300010 ← OPR_POPUP_CONNECTED&lt;br /&gt;
 3300005 ← OPR_POPUP_DATA_END_ACTIVE_CALL&lt;br /&gt;
 3300007 ← OPR_POPUP_DATA_COLLECT&lt;br /&gt;
 3300006 ← SOS_POPUP_ONLINE_LICENSE_NOTE_WEBSHOP&lt;br /&gt;
 3300001 ← OPR_POPUP_MANUAL_CONSIERGE&lt;br /&gt;
 3300003 ← OPR_POPUP_AUTOMATIC&lt;br /&gt;
 3300002 ← OPR_POPUP_MANUAL_CALLCENTER&lt;br /&gt;
 3300028 ← SOS_POPUP_LICENSE_TEASER_NOTE_WEBSHOP&lt;br /&gt;
 3300029 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE&lt;br /&gt;
 3300030 ← SOS_POPUP_LICENSE_TEASER_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300031 ← OPR_POPUP_CALL_FAILED&lt;br /&gt;
 3300024 ← SOS_POPUP_ONLINE_LICENSE_NOTE_MAIN&lt;br /&gt;
 3300025 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE&lt;br /&gt;
 3300026 ← SOS_POPUP_ONLINE_LICENSE_EXPIRE_NOTE_WEBSHOP&lt;br /&gt;
 3300027 ← SOS_POPUP_LICENSE_TEASER_NOTE_MAIN&lt;br /&gt;
 3300020 ← SOS_POPUP_CONNECTED&lt;br /&gt;
 3300021 ← SOS_POPUP_SENDING_DATA&lt;br /&gt;
 3300022 ← SOS_POPUP_CALLBACK_INCOMING&lt;br /&gt;
 3300017 ← OPR_DEST_POPUP_MAIN&lt;br /&gt;
 3300018 ← SOS_POPUP_MEC_MAIN&lt;br /&gt;
 3300019 ← SOS_POPUP_CONNECTING&lt;br /&gt;
&lt;br /&gt;
 3400000 ← CHARGING_POPUP_OBJECT&lt;br /&gt;
 3400001 ← CHARGING_POPUP_FOREIGN_OBJECT_DETECT&lt;br /&gt;
 3400002 ← CHARGING_POPUP_REMINDER&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=425</id>
		<title>SPORT HMI for Audi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=425"/>
		<updated>2026-04-14T17:14:01Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* How to enable it? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MMIHigh Sportanzeigen.png|thumb|alt=Audi MMI MIB2 SportHMI mockup|Audi MMI SportHMI mockup]]&lt;br /&gt;
&lt;br /&gt;
There are some indications of Sport_HMI app for Audi MIB2 firmware. But no-one yet have enabled it. Let&#039;s check methods from the VW/Skoda/Seat units and let&#039;s check how the [[LSD.JXE]] in Audi looks like when it comes to references to sport modes.&lt;br /&gt;
&lt;br /&gt;
== VW/SEAT/Skoda SportHMI enabling methods ==&lt;br /&gt;
For whatever reason, VW/SEAT/Skoda vehicles support SPORT HMI out from the factory, without some deep modifications of the system. All it needs is adaptation and FEC/SWaP code.&lt;br /&gt;
&lt;br /&gt;
Details: [[SPORT HMI Performance Monitor]]&lt;br /&gt;
&lt;br /&gt;
== GUI assets in Audi firmware ==&lt;br /&gt;
[[File:Audi SportHMI kzb assets.jpg|thumb|alt=Audi MIB2 MMI SportHMI GUI assets|Audi MIB2 MMI SportHMI GUI assets]]&lt;br /&gt;
 &lt;br /&gt;
There&#039;s a file &amp;lt;code&amp;gt;SPORT_HMI.kzb&amp;lt;/code&amp;gt; - a .kzb package. After extracting, it looks like Audi firmware contains some GUI assets for Sport Display submenu. There&#039;s clock gauge for power and torque, as well as bar gauge for temperature and boost. Also rendered fonts for the large readouts inside the clock gauges.&lt;br /&gt;
&lt;br /&gt;
So if we are looking for needed textures - all is here.&lt;br /&gt;
&lt;br /&gt;
Here we can see that those textures are referenced in [[LSD.JXE]] classes:&lt;br /&gt;
&lt;br /&gt;
 public static String SPORT_HMI = &amp;quot;SPORT_HMI.kzb&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 public static int mib2_sport_hmi_kzbFile = 100;&lt;br /&gt;
&lt;br /&gt;
== SportHMI adaptation channels ==&lt;br /&gt;
We all know that there are adaptation channels related to the Performance Monitor in VW, SEAT, and Skoda → http://wiki.mib-helper.com/index.php?title=SPORT_HMI_Performance_Monitor#Adaptation&lt;br /&gt;
&lt;br /&gt;
And it looks like in Audi those are also connected to Sport Display function. Look at this part of code:&lt;br /&gt;
        if (this.isComponentAvailable((short)52, carFuncAdap)) {&lt;br /&gt;
            this.addCarComponent(new SportComponentEvo(this));&lt;br /&gt;
            this.addCarComponent(new SportKombiComponentEvo(this));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;isComponentAvailable((short)52, carFuncAdap)&amp;lt;/code&amp;gt; simply checks if 52nd channel in &amp;lt;code&amp;gt;Car_Function_Adaptations_Gen2&amp;lt;/code&amp;gt; section is set to &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;. And 52nd channel is... You know which one - &amp;lt;code&amp;gt;[LO]_menu_display_SportHMI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sport and Sport Kombi classes ==&lt;br /&gt;
It looks like the app logic is split into two separate classes:&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI-Kombi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Kombi&amp;lt;/code&amp;gt; is designed for instrument cluster data (&amp;quot;Kombiinstrument&amp;quot;), which is the oil temperature.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a statement that creates the screen:&lt;br /&gt;
 protected Screen createScreen(int n, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            (...)&lt;br /&gt;
            case 600289: {&lt;br /&gt;
                return CarScreenBag1.cARSPORTMAIN(this, n2);&lt;br /&gt;
&lt;br /&gt;
This one returns name of the screen for diagnostic purposes&lt;br /&gt;
 case 600289: {&lt;br /&gt;
     return &amp;quot;CAR_SPORT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And this one executes conditions&lt;br /&gt;
 @Override&lt;br /&gt;
    public void executeCondition(int n, int n2, HMIView[] hMIViewArray, int n3) {&lt;br /&gt;
        switch (n2) {&lt;br /&gt;
        (...)              &lt;br /&gt;
            case 600289: {&lt;br /&gt;
                this.executeConditioncARSPORTMAINScreen(n, hMIViewArray, n3);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
...which look like this:&lt;br /&gt;
     private void executeConditioncARSPORTMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 601056: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(!this.evaluateSimpleChoiceModelValueEqualsCondition(-534050560, n2, -214497024));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602113: {&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[1] == null) break;&lt;br /&gt;
                ((OilTemperatureGaugeController)hMIViewArray[1]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602114: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ChargingAirPressureGaugeController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(36702464, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602116: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(70256896, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602118: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(103811328, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
From the above:&lt;br /&gt;
* 602113 - Oil temperature&lt;br /&gt;
* 602114 - Boost pressure&lt;br /&gt;
* 602116 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
* 602118 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
State machine class is also referring to the SportHMI:&lt;br /&gt;
 public static final int LD_CAR_SEL_SPORTDISPLAY;&lt;br /&gt;
Meaning of the above would be &amp;quot;Sport Display was selected from the CAR menu Left Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* 601 - SPORT_POWER&lt;br /&gt;
* 602 - SPORT_POWER_MAX&lt;br /&gt;
* 603 - SPORT_POWER_CURRENT&lt;br /&gt;
* 604 - SPORT_TORQUE&lt;br /&gt;
* 605 - SPORT_TORQUE_MAX&lt;br /&gt;
* 606 - SPORT_TORQUE_CURRENT&lt;br /&gt;
* 607 - SPORT_OIL_TEMPERATURE&lt;br /&gt;
* 608 - SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
== Why no Sport submenu in Car menu? ==&lt;br /&gt;
It looks like everything is there. All the programming logic, adaptation to activate, data pulls, GUI assets, inits... So why it is not working?&lt;br /&gt;
&lt;br /&gt;
One of my theories is that at some point of development they decided to move the Sport HMI functionality from MIB to VC. On one side it makes sense - feature will not be duplicated on both displays. But on the other hand VC is optional equipment and not all cars have it.&lt;br /&gt;
&lt;br /&gt;
For whatever reasons it was - they needed to remove Sport HMI from Audi MIB. And by &amp;quot;remove&amp;quot; I mean &amp;quot;make it not visible for user&amp;quot;. That&#039;s why all the mentioned above parts of code and assets are there. So how they did it? And how to restore it?&lt;br /&gt;
&lt;br /&gt;
Maybe let&#039;s analyse how the MENU and CAR MENU structures looks like:&lt;br /&gt;
* Car&lt;br /&gt;
** Audi Drive Select&lt;br /&gt;
** Charging (eTron)&lt;br /&gt;
** Statistics (eTron)&lt;br /&gt;
** Vehicle Settings&lt;br /&gt;
** Drive Assist&lt;br /&gt;
** Air Condition&lt;br /&gt;
** Service and Checks&lt;br /&gt;
** Boardbook&lt;br /&gt;
* Sound&lt;br /&gt;
* Media&lt;br /&gt;
* Phone&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
By the first look, I can see some similarities to the &amp;lt;code&amp;gt;CarEvoMenuEntryStructure.java&amp;lt;/code&amp;gt; class:&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry2 = this.entryFactory.createMenuEntry(1596459264, &amp;quot;CAR_FUNC_CHARISMA&amp;quot;, -282457856);&lt;br /&gt;
 MenuEntry menuEntry3 = this.entryFactory.createMenuEntry(1630013696, &amp;quot;CAR_FUNC_SETTINGS&amp;quot;, -1305802496);&lt;br /&gt;
 MenuEntry menuEntry4 = this.entryFactory.createMenuEntry(1646790912, &amp;quot;CAR_FUNC_DRIVE_ASSIST&amp;quot;, -1339356928);&lt;br /&gt;
 MenuEntry menuEntry5 = this.entryFactory.createMenuEntry(1663568128, &amp;quot;CAR_FUNC_AIR_CONDITION&amp;quot;, -1389688576);&lt;br /&gt;
 MenuEntry menuEntry6 = this.entryFactory.createMenuEntry(1680345344, &amp;quot;CAR_FUNC_AUXHEAT&amp;quot;, -1356134144);&lt;br /&gt;
 MenuEntry menuEntry7 = this.entryFactory.createMenuEntry(10, &amp;quot;CAR_FUNC_AUX_AC)&amp;quot;, -1372911360);&lt;br /&gt;
 MenuEntry menuEntry8 = this.entryFactory.createMenuEntry(11, &amp;quot;CAR_FUNC_AUX_COMBINED)&amp;quot;, 1210976512);&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(1713899776, &amp;quot;CAR_FUNC_SERVICE&amp;quot;, -1322579712);&lt;br /&gt;
 MenuEntry menuEntry10 = this.entryFactory.createMenuEntry(1177094400, &amp;quot;CAR_FUNC_BORDBOOK&amp;quot;, 1412172032);&lt;br /&gt;
 MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(640289024, &amp;quot;CAR_FUNC_CHARGE&amp;quot;, -1842607872);&lt;br /&gt;
 MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(-383121152, &amp;quot;CAR_FUNC_STATISTICS&amp;quot;, -349370112);&lt;br /&gt;
 MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(12, &amp;quot;CAR_FUNC_SPORT&amp;quot;, 120588544);&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s check how the top-level menus are initialised and compare them to the SportHMI class to find what&#039;s missing. Maybe this will point us into the right direction.&lt;br /&gt;
&lt;br /&gt;
After quick check and compare, it looks like there&#039;s one function missing from the SportComponentEvo class. It&#039;s &amp;lt;code&amp;gt;updateMenuEntryVisibility()&amp;lt;/code&amp;gt; that appears in other car submenu classes. Not only those top-level. All of them. Is this it?&lt;br /&gt;
&lt;br /&gt;
== Moment of Doubt ==&lt;br /&gt;
Had a chance to test-drive an Audi SQ7 (4M) and played a bit with the Drive Select functions. There are &amp;quot;off-road&amp;quot; and &amp;quot;allroad&amp;quot; modes which enable additional element - Tilt Angle Display (TAD). This new element is visible directly on the Drive Select screen, and not as a separate submenu in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
So it got me wondering. What if the SportHMI is also just an additional widget that should be displayed on the Drive Select screen when &amp;quot;Sport&amp;quot; or &amp;quot;Race&amp;quot; mode is selected? If so, it would mean that this function might be controlled via Gateway with proper dataset. Or it&#039;s a separate submenu but still enabled with a gateway dataset?&lt;br /&gt;
&lt;br /&gt;
I need to look into the Charisma menu and TAD elements in LSH.JXE...&lt;br /&gt;
&lt;br /&gt;
 private IMenuEntry[] buildMenuCharisma(LogChannel logChannel) {&lt;br /&gt;
  // (...) &lt;br /&gt;
  menuEntry8.setFunctionalStateValues(new int[]{4}); //LIFT&lt;br /&gt;
  menuEntry2.setFunctionalStateValues(new int[]{4}); //OFFROAD&lt;br /&gt;
  menuEntry10.setFunctionalStateValues(new int[]{4}); //LIFT OFFROAD&lt;br /&gt;
  menuEntry5.setFunctionalStateValues(new int[]{8}); //EFFICIENCY&lt;br /&gt;
  // (...) &lt;br /&gt;
  MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(250, &amp;quot;CHARISMA_EFFICIENCY_BCME_ADD_INFO&amp;quot;, 1898776832);&lt;br /&gt;
  MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(252, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMPTION_BARGRAPH&amp;quot;, 1613564160);&lt;br /&gt;
  MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(251, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMER_LIST&amp;quot;, 1915554048);&lt;br /&gt;
  menuEntry11.setChildren(new IMenuEntry[]{menuEntry12, menuEntry13});&lt;br /&gt;
  MenuEntry menuEntry14 = this.entryFactory.createMenuEntry(326, &amp;quot;TAD_MAIN&amp;quot;, 1999374592);&lt;br /&gt;
  MenuEntry menuEntry15 = this.entryFactory.createMenuEntry(328, &amp;quot;TAD_PITCH_ANGLE&amp;quot;, 1965820160);&lt;br /&gt;
  MenuEntry menuEntry16 = this.entryFactory.createMenuEntry(327, &amp;quot;TAD_ROLL_ANGLE&amp;quot;, 1982597376);&lt;br /&gt;
  menuEntry14.setChildren(new IMenuEntry[]{menuEntry15, menuEntry16});&lt;br /&gt;
  return new IMenuEntry[]{menuEntry, menuEntry2, menuEntry3, menuEntry4, menuEntry5, menuEntry7, menuEntry6, menuEntry8, menuEntry10, menuEntry9};&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nope! It looks like only Efficiency Mode and Lift/Offroad Modes have children elements. No SportHMI mentions here. And previously mentioned &amp;lt;code&amp;gt;LD_CAR_SEL_SPORTDISPLAY&amp;lt;/code&amp;gt; was linked to left drawer, which means that the SportHMI needs to be present in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
But there&#039;s a RACE Mode mentioned here and there.&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(238, &amp;quot;CHARISMA_PROFILE_RACE&amp;quot;, 305203456);&lt;br /&gt;
&lt;br /&gt;
 public boolean isRacesport() {&lt;br /&gt;
  return this.racesport;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Maybe that&#039;s it? Maybe the RACE Charisma mode needs to be enabled from the SportHMI to be accessible?&lt;br /&gt;
&lt;br /&gt;
Just to be sure, I will check if there are some &amp;quot;RACE&amp;quot; references in the code. But not now.&lt;br /&gt;
&lt;br /&gt;
== Figuring out the missing data ==&lt;br /&gt;
Played around with KeyCombo (that&#039;s a separate topic) and found that Audi HMI has an build-in app for HMI tests. It shows a lot of data about visible items and data provided by the rest of the car.&lt;br /&gt;
&lt;br /&gt;
Here we can see which information is provided &amp;lt;code&amp;gt;state: 2&amp;lt;/code&amp;gt;, and which is not &amp;lt;code&amp;gt;state: 0&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SportHMI&lt;br /&gt;
  DynamicVehicleInfoHighFrequentViewOptions(&lt;br /&gt;
   longitudinalAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   engineSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   powermeter=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   lateralAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   relChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   absChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentTorque=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   yawRate=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   brakePressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   wheelAngle=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   acceleratorPosition=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   vehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   systemCycleDistance=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   realVehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   shiftLight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   allWheelDriveTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espOversteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espUndersteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   relAllWheelDriveTorque=ViewOption(state: 0, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
  SemiStaticDataViewOptions(&lt;br /&gt;
   maxChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   engineDisplacement=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   typeOfInjectionSystem=ViewOption(state: 2, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
And here we can check which components in the SPORT HMI are fully functional and which are not:&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602119&lt;br /&gt;
        Parent: CAR_MAIN&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER&lt;br /&gt;
            SPORT_TORQUE&lt;br /&gt;
            SPORT_OIL_TEMPERATURE&lt;br /&gt;
            SPORT_AIR_PRESSURE&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602116&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER_MAX&lt;br /&gt;
            SPORT_POWER_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602118&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_TORQUE_MAX&lt;br /&gt;
            SPORT_TORQUE_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
        State: INVISIBLE&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_TORQUE&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
        State: Invisible&lt;br /&gt;
        ModelID: 602113&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602114&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
&lt;br /&gt;
Two things (&amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; are invisible. This partially correlates with unavailable &amp;lt;code&amp;gt;maxTorque&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Is it that this missing data is what&#039;s locking the SPORT submenu to appear? Let&#039;s find out!&lt;br /&gt;
&lt;br /&gt;
== Logging HMI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;run_lsd.sh&amp;lt;/code&amp;gt; script, that starts the &amp;lt;code&amp;gt;LSD.jxe&amp;lt;/code&amp;gt; can be adjusted for logging different components. &lt;br /&gt;
&lt;br /&gt;
=== App.Car.Sport=5 ===&lt;br /&gt;
Let&#039;s start with &amp;lt;code&amp;gt;App.Car.Sport&amp;lt;/code&amp;gt; set to level &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, so it will output some data.&lt;br /&gt;
&lt;br /&gt;
 updateBCViewOptions:BCViewOptions(&lt;br /&gt;
  currentConsumption1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  currentConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  currentRange1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  currentRange2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  totalDistance=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  shortTermAverageConsumption1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  shortTermAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  shortTermGeneral=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  longTermAverageConsumption1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  longTermAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  longTermGeneral=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  cycleAverageConsumption1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  cycleAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  cycleGeneral=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  vZADisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  lifeTipsDisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  consumerDisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  tankLevel1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  tankLevel2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  refuelVolume1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  refuelVolume2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue1Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue2Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue3Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetMenue1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  resetMenue2=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  resetMenue3=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  oilTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  digitalSpeed=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  stopwatch=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  vzaMFA=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  speedWarning=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  gearRecommendation=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  rearSeatbeltWarning=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  indications=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  outsideTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  bcSetFactoryDefault=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  vehicleStateList=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsReset=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsConfig=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  oilTemperatureValue=ViewOption(state: 0,reason: 0), // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
  coolantTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticDistanceEUkm=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticDistanceEUmls=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  totalCurrentRange=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetMaxValues=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  maxValues=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  astaMFA=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTrip=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  configuration=BCConfiguration(&lt;br /&gt;
   primaryEngineType=7,&lt;br /&gt;
   secondaryEngineType=0,&lt;br /&gt;
   fisAdditionalConfiguration=BCFISAdditionalConfiguration(&lt;br /&gt;
    fis1=true,&lt;br /&gt;
    fis2=true,&lt;br /&gt;
    fis3=false,&lt;br /&gt;
    stopWatch=true,&lt;br /&gt;
    oilTemp=false,&lt;br /&gt;
    digitalSpeed=true,&lt;br /&gt;
    refuelVolume=false,&lt;br /&gt;
    speedWarning=true,&lt;br /&gt;
    coolantTemp=false,&lt;br /&gt;
    secondarySpeed=false,&lt;br /&gt;
    vza=true,&lt;br /&gt;
    resetTime=false,&lt;br /&gt;
    comfortPowerConsumption=false,&lt;br /&gt;
    zeroEmissionTime=false,&lt;br /&gt;
    zeroEmissionDistance=false,&lt;br /&gt;
    vzaMfa=false,&lt;br /&gt;
    bcmeConsumerList=false,&lt;br /&gt;
    bcmeLiveTips=false,&lt;br /&gt;
    astaMfa=false&lt;br /&gt;
   ),&lt;br /&gt;
   transmittableElementsVehicleState=BCTransmittableElements(&lt;br /&gt;
    ra0=1,ra1=7,ra2=1,ra3=7,raF=88&lt;br /&gt;
   ),functionSupport=BCFunctionSupport(&lt;br /&gt;
    resetTrip=false)&lt;br /&gt;
   )&lt;br /&gt;
  ),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.720 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateBCOilTemperatureValue:null,&lt;br /&gt;
 valid:2 // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
&lt;br /&gt;
 00:00:42.715 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateSemiStaticVehicleData:SemiStaticVehicleData(&lt;br /&gt;
  maxChargingAirPressure=2.5,&lt;br /&gt;
  maxOutputPower=228,&lt;br /&gt;
  maxTorque=0, // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
  engineDisplacement=2.0,&lt;br /&gt;
  typeOfInjectionSystem=0),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.722 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateDynamicVehicleInfoHighFrequent:DynamicVehicleInfoHighFrequent(&lt;br /&gt;
  longitudinalAcceleration=0.0,&lt;br /&gt;
  engineSpeed=699,&lt;br /&gt;
  powermeter=0,&lt;br /&gt;
  lateralAcceleration=-0.01,&lt;br /&gt;
  relChargingAirPressure=0,&lt;br /&gt;
  absChargingAirPressure=0.29,&lt;br /&gt;
  currentOutputPower=1.8,&lt;br /&gt;
  yawRate=-0.09,&lt;br /&gt;
  brakePressure=0.0,&lt;br /&gt;
  wheelAngle=8,&lt;br /&gt;
  acceleratorPosition=0,&lt;br /&gt;
  vehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  currentTorque=25,&lt;br /&gt;
  systemCycleDistance=0,&lt;br /&gt;
  torqueDistributionFrontLeft=0,&lt;br /&gt;
  torqueDistributionFrontRight=0,&lt;br /&gt;
  torqueDistributionRearLeft=0,&lt;br /&gt;
  torqueDistributionRearRight=0,&lt;br /&gt;
  realVehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  shiftLight=0,&lt;br /&gt;
  allWheelDriveTorque=0,&lt;br /&gt;
  espOversteering=0.0,&lt;br /&gt;
  espUndersteering=0.0,&lt;br /&gt;
  espWheelVelocityFrontLeft=0.0,&lt;br /&gt;
  espWheelVelocityFrontRight=0.0,&lt;br /&gt;
  espWheelVelocityRearLeft=0.0,&lt;br /&gt;
  espWheelVelocityRearRight=0.0,&lt;br /&gt;
  relAllWheelDriveTorque=0.0),&lt;br /&gt;
 valid:1&lt;br /&gt;
&lt;br /&gt;
This proves two things:&lt;br /&gt;
1. Sport_HMI exists, works, creates output, and should be functional.&lt;br /&gt;
2. Some of the data from DSI is not provided or is zeroed.&lt;br /&gt;
&lt;br /&gt;
=== App.Car.MER=5 ===&lt;br /&gt;
Since the Sport_HMI is clearly there, but it&#039;s not visible in the CAR menu, let&#039;s check how the Menu Entry Register logs look like.&lt;br /&gt;
&lt;br /&gt;
 00:00:11.913 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_MAIN&#039;)#setChildren] children=&lt;br /&gt;
 CAR_FUNC_CHARISMA&lt;br /&gt;
 CAR_FUNC_SETTINGS&lt;br /&gt;
 CAR_FUNC_DRIVE_ASSIST&lt;br /&gt;
 CAR_FUNC_AIR_CONDITION&lt;br /&gt;
 CAR_FUNC_AUXHEAT&lt;br /&gt;
 CAR_FUNC_AUX_AC)&lt;br /&gt;
 CAR_FUNC_AUX_COMBINED)&lt;br /&gt;
 CAR_FUNC_SERVICE&lt;br /&gt;
 CAR_FUNC_BORDBOOK&lt;br /&gt;
 CAR_FUNC_CHARGE&lt;br /&gt;
 CAR_FUNC_STATISTICS&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.628 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
 SPORT_TORQUE_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.764 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.765 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
Menu structure is created correctly. Now let&#039;s dig some more and check final status of each SPORT element.&lt;br /&gt;
&lt;br /&gt;
 00:00:34.812 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_MAX&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.084 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_MAX&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.086 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_OIL_TEMPERATURE&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.647 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_AIR_PRESSURE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.649 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
&lt;br /&gt;
It looks like the &amp;lt;code&amp;gt;state=&#039;0&#039;&amp;lt;/code&amp;gt; is reported if the component is working correctly. And two component&#039;s are not. &amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; - same two that were missing or zeroed in DSI-provided data. Huh...&lt;br /&gt;
&lt;br /&gt;
== How to enable it? ==&lt;br /&gt;
I have 4 ideas, actually. Not sure which is best and if any would work.&lt;br /&gt;
# modify SportHMI classes&lt;br /&gt;
# patch DSI with missing data&lt;br /&gt;
# &amp;lt;s&amp;gt;deregister components from Menu Entry that cause it to be invisible&amp;lt;/s&amp;gt;&lt;br /&gt;
# &amp;lt;s&amp;gt;create a shortcut for SportHMI to bypass the Menu Entry Registry all together&amp;lt;/s&amp;gt;&lt;br /&gt;
# patch menu entry registry&lt;br /&gt;
# patch carScreenBag&lt;br /&gt;
&lt;br /&gt;
== Modifications with custom data ==&lt;br /&gt;
//TODO&lt;br /&gt;
ideas:&lt;br /&gt;
* oil temp → gearbox temp&lt;br /&gt;
&lt;br /&gt;
* bar: acceleratorPosition=ViewOption(state: 2, reason: 0)&lt;br /&gt;
* bar: brakePressure=ViewOption(state: 2, reason: 0)&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Tweaks]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=424</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=424"/>
		<updated>2026-04-12T16:17:36Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* 5000 - 5999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 442 - huRegion&lt;br /&gt;
 459 - isNavigationActive()&lt;br /&gt;
 460 - isVoiceControlSystemActive()&lt;br /&gt;
 462 - isBluetoothAvailable() &amp;amp;&amp;amp; isBluetoothPhoneAvailable()&lt;br /&gt;
 463 - isPhoneNadOn() &amp;amp;&amp;amp; isTelephoneActivated()&lt;br /&gt;
 464 - rightHandDrive&lt;br /&gt;
 465 - isTrafficSignDisplayActive()&lt;br /&gt;
 466 - getCarClass() (isA3 || isB9 || isQ1 || isQ5 || isQ7)&lt;br /&gt;
 467 - getCarDerivate()&lt;br /&gt;
 468 - getCarDerivateSupplement()&lt;br /&gt;
 469 - getCarGeneration()&lt;br /&gt;
 471 - getKombiTrackStationInfo()&lt;br /&gt;
 474 - isRemoteHmiAvailable()&lt;br /&gt;
 475 - isOnlinePoiVoiceAvailable()&lt;br /&gt;
 476 - getDab1Bandsetting() != 0 || getDab2Bandsetting() != 0&lt;br /&gt;
 478 - coding.isAmiOn() || coding.isAuxInOn()&lt;br /&gt;
 479 - isOnlineNaviGoogleEarthAvailable()&lt;br /&gt;
 480 - isBluetoothAvailable() &amp;amp;&amp;amp; isBluetoothAudioAvailable() &amp;amp;&amp;amp; isBluetoothMultimediaFuncAvailable()&lt;br /&gt;
 481 - isImportMediaDataActive() &amp;amp;&amp;amp; isExternalMediumActivated()&lt;br /&gt;
 482 - isRippingMediaDataActive() &amp;amp;&amp;amp; isOpticalMediumActivated()&lt;br /&gt;
 483 - getUsbConfiguration() == 2 || getUsbConfiguration() == 3&lt;br /&gt;
 485 - isMyAudiAvailable()&lt;br /&gt;
 486 - isOnlinePoiAvailable()&lt;br /&gt;
 487 - checkOnlineServicesAvailability()&lt;br /&gt;
 488 - isPayTmcSetOnlineTrafficAvailable()&lt;br /&gt;
 489 - isPictureNaviAvailable()&lt;br /&gt;
 490 - isOnlineStreetViewAvailable()&lt;br /&gt;
 492 - isWlanModuleActive() &amp;amp;&amp;amp; isWlanModuleActivated()&lt;br /&gt;
 493 - isUPnPAvailable()&lt;br /&gt;
 501 - ??? (part of initVariantDefault)&lt;br /&gt;
 502 - ??? (part of initVariantDefault)&lt;br /&gt;
 503 - ??? (part of initVariantDefault)&lt;br /&gt;
 512 - TEL: isSupportOfThreewayCalling()&lt;br /&gt;
 513 - TEL: isDtmfWithoutActiveCall()&lt;br /&gt;
 532 - getCountry()&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 549 - isOnlineDictationAvailable()&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3834 - NAV: isRangeMapDisplayPresent; isAdvancedRangeDisplayAvailable()&lt;br /&gt;
 3858 - CAR: isDrivingSchoolActive&lt;br /&gt;
 3866 - NAV: isPreferredGasStationsPresent&lt;br /&gt;
 3867 - isOnlineMediaAvailable() &amp;amp;&amp;amp; !isServiceDiscoveryAvailable()&lt;br /&gt;
 3877 - NAV: navStreetviewOverviewmap&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
 3919 - this.codingData.getVariantInfo().isMMIRadio()&lt;br /&gt;
 3967 - CarCoding: eolCodingOnlineMedia&lt;br /&gt;
 3969 - isUpdateOverTheAirFeatureEnabled&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
&lt;br /&gt;
 4219 - eSimAvailable&lt;br /&gt;
 4237 - terminalmode.gal AndroidAuto related&lt;br /&gt;
 4238 - terminalmode.dio CarPlay related&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4252 - isEniCoded&lt;br /&gt;
 4254 - ADDRESSBOOK: getMaxPublicEntries&lt;br /&gt;
 4255 - ADDRESSBOOK: getDefaultSortOrder&lt;br /&gt;
 4256 - ADDRESSBOOK: getMaxPhoneEntries&lt;br /&gt;
 4258 - ADDRESSBOOK: getDefaultPublicVisibility&lt;br /&gt;
 4259 - ADDRESSBOOK vcard import count related&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
&lt;br /&gt;
 4306 - MESSAGES: isArabicLanguageAvailable&lt;br /&gt;
 4323 - TrafficInfoJP related&lt;br /&gt;
 4324 - InfoKR related&lt;br /&gt;
 4325 - isETCAvailable&lt;br /&gt;
 4347 - TUNER: registerSdarsSeekDSI related&lt;br /&gt;
 4348 - DISPLAYMANAGER: getTargetOffsetXY &amp;amp;&amp;amp; getCroppingResolution&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4372 - getETCCardRemiderTimeout&lt;br /&gt;
 4383 - isClusterMapAvailable&lt;br /&gt;
 4388 - isClusterKDKAvailable&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4396 - NAV: isMekkaCompassAvailable&lt;br /&gt;
&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4410 - NAV: isPredictiveNav&lt;br /&gt;
 4416 - NAV: isRubberbandAvailable related&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4422 - NAV: isHMIScrollHairsEnabled&lt;br /&gt;
 4424 - PHONE: getSpeedDialType&lt;br /&gt;
 4425 - PHONE: getADBSpeedDialEntriesMaxNumber &amp;amp;&amp;amp; getMaxSpeedDialEntries&lt;br /&gt;
 4433 - NAV: useFreeTextSearch &amp;amp;&amp;amp; useNvcTextSearch&lt;br /&gt;
 4434 - NAV: alternativeRoutesWithStopOverAreDisabled&lt;br /&gt;
 4436 - NAV: isGoogleMapRestricted / isGoogleMapRestrictedPoiOnly&lt;br /&gt;
 4440 - NAV: MaxFavoriteCount&lt;br /&gt;
 4441 - NAV: isUncrowdedRoadsCheckboxAvailable&lt;br /&gt;
 4442 - BT/WLAN: isTetheringCoded&lt;br /&gt;
 4445 - NAV: autozoom → manoeuvreZoomEnable&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4456 - NAV: isTrailerModeAvailable&lt;br /&gt;
 4462 - NAV: isWeatherOnMapPresent&lt;br /&gt;
 4463 - SWDL: isUotaTravelCaseAllowed&lt;br /&gt;
 4464 - SWDL: getUotaUpdateRegionCount&lt;br /&gt;
 4465 - SWDL: showUotaSysProposalWithoutLicense&lt;br /&gt;
 4466 - SWDL: isUotaNavDBMergeProcessNeeded&lt;br /&gt;
 4467 - SWDL: preselectUOTASysProposals&lt;br /&gt;
 4474 - NAV: setMaxCountPerSource → unrestricted&lt;br /&gt;
 4477 - ONLINE: ppoi&lt;br /&gt;
 4479 - NAV: AlternativeRouteState#resetSettings() default setting&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4490 - AUDIO: volumeOnOffRange related&lt;br /&gt;
 4499 - NAV: isTrafficEventNoticeMapAvailable&lt;br /&gt;
&lt;br /&gt;
 4511 - SWDL: isSortingUotaRegionByIsoCode&lt;br /&gt;
 4518 - WIDGET: createTouchController related&lt;br /&gt;
 4519 - TONE: sub/treb/bass range related&lt;br /&gt;
 4524 - ONLINE: primaryEngine&lt;br /&gt;
 4525 - ONLINE: secondaryEngine&lt;br /&gt;
 4526 - ONLINE: serviceDiscovery&lt;br /&gt;
 4527 - AUDIO: on/off volume range related&lt;br /&gt;
 4537 - NAV: betterRouteFoundTimeDelayInMs (value * 60000)&lt;br /&gt;
 4542 - TONE: fader/balance Porsche related&lt;br /&gt;
 4543 - SWDL: getUotaProgressDownloadPartPercentage&lt;br /&gt;
 4544 - SWDL: getUotaProgressMapintegrationPartPercentage&lt;br /&gt;
 4548 - NAV: poiWarningFeatureActive&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4575 - NAV: getRouteInfoConfigMode&lt;br /&gt;
 4577 - TUNER: getDatabaseRegion&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4589 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4590 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4591 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4592 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4596 - TONE: isReadinessSoundCoded&lt;br /&gt;
&lt;br /&gt;
 4603 - SDS: isVoiceBargeInActive related&lt;br /&gt;
 4604 - TONE: activateOnOffButtons&lt;br /&gt;
 4606 - VEHICLE_LEAVING_SOUND&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5542 - SWDL: isUotaLecensingAlowed&lt;br /&gt;
 5545 - NAV_OFFROAD_NAVIGATION&lt;br /&gt;
 5571 - BaiduCarLife related&lt;br /&gt;
 5572 - TUNER: isTaggingSupported &amp;amp;&amp;amp; MEDIA: iap2Supported&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5614 - ONLINE: initGPSPopupController related&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=423</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=423"/>
		<updated>2026-04-12T16:14:27Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* 4000 - 4999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 442 - huRegion&lt;br /&gt;
 459 - isNavigationActive()&lt;br /&gt;
 460 - isVoiceControlSystemActive()&lt;br /&gt;
 462 - isBluetoothAvailable() &amp;amp;&amp;amp; isBluetoothPhoneAvailable()&lt;br /&gt;
 463 - isPhoneNadOn() &amp;amp;&amp;amp; isTelephoneActivated()&lt;br /&gt;
 464 - rightHandDrive&lt;br /&gt;
 465 - isTrafficSignDisplayActive()&lt;br /&gt;
 466 - getCarClass() (isA3 || isB9 || isQ1 || isQ5 || isQ7)&lt;br /&gt;
 467 - getCarDerivate()&lt;br /&gt;
 468 - getCarDerivateSupplement()&lt;br /&gt;
 469 - getCarGeneration()&lt;br /&gt;
 471 - getKombiTrackStationInfo()&lt;br /&gt;
 474 - isRemoteHmiAvailable()&lt;br /&gt;
 475 - isOnlinePoiVoiceAvailable()&lt;br /&gt;
 476 - getDab1Bandsetting() != 0 || getDab2Bandsetting() != 0&lt;br /&gt;
 478 - coding.isAmiOn() || coding.isAuxInOn()&lt;br /&gt;
 479 - isOnlineNaviGoogleEarthAvailable()&lt;br /&gt;
 480 - isBluetoothAvailable() &amp;amp;&amp;amp; isBluetoothAudioAvailable() &amp;amp;&amp;amp; isBluetoothMultimediaFuncAvailable()&lt;br /&gt;
 481 - isImportMediaDataActive() &amp;amp;&amp;amp; isExternalMediumActivated()&lt;br /&gt;
 482 - isRippingMediaDataActive() &amp;amp;&amp;amp; isOpticalMediumActivated()&lt;br /&gt;
 483 - getUsbConfiguration() == 2 || getUsbConfiguration() == 3&lt;br /&gt;
 485 - isMyAudiAvailable()&lt;br /&gt;
 486 - isOnlinePoiAvailable()&lt;br /&gt;
 487 - checkOnlineServicesAvailability()&lt;br /&gt;
 488 - isPayTmcSetOnlineTrafficAvailable()&lt;br /&gt;
 489 - isPictureNaviAvailable()&lt;br /&gt;
 490 - isOnlineStreetViewAvailable()&lt;br /&gt;
 492 - isWlanModuleActive() &amp;amp;&amp;amp; isWlanModuleActivated()&lt;br /&gt;
 493 - isUPnPAvailable()&lt;br /&gt;
 501 - ??? (part of initVariantDefault)&lt;br /&gt;
 502 - ??? (part of initVariantDefault)&lt;br /&gt;
 503 - ??? (part of initVariantDefault)&lt;br /&gt;
 512 - TEL: isSupportOfThreewayCalling()&lt;br /&gt;
 513 - TEL: isDtmfWithoutActiveCall()&lt;br /&gt;
 532 - getCountry()&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 549 - isOnlineDictationAvailable()&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3834 - NAV: isRangeMapDisplayPresent; isAdvancedRangeDisplayAvailable()&lt;br /&gt;
 3858 - CAR: isDrivingSchoolActive&lt;br /&gt;
 3866 - NAV: isPreferredGasStationsPresent&lt;br /&gt;
 3867 - isOnlineMediaAvailable() &amp;amp;&amp;amp; !isServiceDiscoveryAvailable()&lt;br /&gt;
 3877 - NAV: navStreetviewOverviewmap&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
 3919 - this.codingData.getVariantInfo().isMMIRadio()&lt;br /&gt;
 3967 - CarCoding: eolCodingOnlineMedia&lt;br /&gt;
 3969 - isUpdateOverTheAirFeatureEnabled&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
&lt;br /&gt;
 4219 - eSimAvailable&lt;br /&gt;
 4237 - terminalmode.gal AndroidAuto related&lt;br /&gt;
 4238 - terminalmode.dio CarPlay related&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4252 - isEniCoded&lt;br /&gt;
 4254 - ADDRESSBOOK: getMaxPublicEntries&lt;br /&gt;
 4255 - ADDRESSBOOK: getDefaultSortOrder&lt;br /&gt;
 4256 - ADDRESSBOOK: getMaxPhoneEntries&lt;br /&gt;
 4258 - ADDRESSBOOK: getDefaultPublicVisibility&lt;br /&gt;
 4259 - ADDRESSBOOK vcard import count related&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
&lt;br /&gt;
 4306 - MESSAGES: isArabicLanguageAvailable&lt;br /&gt;
 4323 - TrafficInfoJP related&lt;br /&gt;
 4324 - InfoKR related&lt;br /&gt;
 4325 - isETCAvailable&lt;br /&gt;
 4347 - TUNER: registerSdarsSeekDSI related&lt;br /&gt;
 4348 - DISPLAYMANAGER: getTargetOffsetXY &amp;amp;&amp;amp; getCroppingResolution&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4372 - getETCCardRemiderTimeout&lt;br /&gt;
 4383 - isClusterMapAvailable&lt;br /&gt;
 4388 - isClusterKDKAvailable&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4396 - NAV: isMekkaCompassAvailable&lt;br /&gt;
&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4410 - NAV: isPredictiveNav&lt;br /&gt;
 4416 - NAV: isRubberbandAvailable related&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4422 - NAV: isHMIScrollHairsEnabled&lt;br /&gt;
 4424 - PHONE: getSpeedDialType&lt;br /&gt;
 4425 - PHONE: getADBSpeedDialEntriesMaxNumber &amp;amp;&amp;amp; getMaxSpeedDialEntries&lt;br /&gt;
 4433 - NAV: useFreeTextSearch &amp;amp;&amp;amp; useNvcTextSearch&lt;br /&gt;
 4434 - NAV: alternativeRoutesWithStopOverAreDisabled&lt;br /&gt;
 4436 - NAV: isGoogleMapRestricted / isGoogleMapRestrictedPoiOnly&lt;br /&gt;
 4440 - NAV: MaxFavoriteCount&lt;br /&gt;
 4441 - NAV: isUncrowdedRoadsCheckboxAvailable&lt;br /&gt;
 4442 - BT/WLAN: isTetheringCoded&lt;br /&gt;
 4445 - NAV: autozoom → manoeuvreZoomEnable&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4456 - NAV: isTrailerModeAvailable&lt;br /&gt;
 4462 - NAV: isWeatherOnMapPresent&lt;br /&gt;
 4463 - SWDL: isUotaTravelCaseAllowed&lt;br /&gt;
 4464 - SWDL: getUotaUpdateRegionCount&lt;br /&gt;
 4465 - SWDL: showUotaSysProposalWithoutLicense&lt;br /&gt;
 4466 - SWDL: isUotaNavDBMergeProcessNeeded&lt;br /&gt;
 4467 - SWDL: preselectUOTASysProposals&lt;br /&gt;
 4474 - NAV: setMaxCountPerSource → unrestricted&lt;br /&gt;
 4477 - ONLINE: ppoi&lt;br /&gt;
 4479 - NAV: AlternativeRouteState#resetSettings() default setting&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4490 - AUDIO: volumeOnOffRange related&lt;br /&gt;
 4499 - NAV: isTrafficEventNoticeMapAvailable&lt;br /&gt;
&lt;br /&gt;
 4511 - SWDL: isSortingUotaRegionByIsoCode&lt;br /&gt;
 4518 - WIDGET: createTouchController related&lt;br /&gt;
 4519 - TONE: sub/treb/bass range related&lt;br /&gt;
 4524 - ONLINE: primaryEngine&lt;br /&gt;
 4525 - ONLINE: secondaryEngine&lt;br /&gt;
 4526 - ONLINE: serviceDiscovery&lt;br /&gt;
 4527 - AUDIO: on/off volume range related&lt;br /&gt;
 4537 - NAV: betterRouteFoundTimeDelayInMs (value * 60000)&lt;br /&gt;
 4542 - TONE: fader/balance Porsche related&lt;br /&gt;
 4543 - SWDL: getUotaProgressDownloadPartPercentage&lt;br /&gt;
 4544 - SWDL: getUotaProgressMapintegrationPartPercentage&lt;br /&gt;
 4548 - NAV: poiWarningFeatureActive&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4575 - NAV: getRouteInfoConfigMode&lt;br /&gt;
 4577 - TUNER: getDatabaseRegion&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4589 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4590 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4591 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4592 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4596 - TONE: isReadinessSoundCoded&lt;br /&gt;
&lt;br /&gt;
 4603 - SDS: isVoiceBargeInActive related&lt;br /&gt;
 4604 - TONE: activateOnOffButtons&lt;br /&gt;
 4606 - VEHICLE_LEAVING_SOUND&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5542 - SWDL: isUotaLecensingAlowed&lt;br /&gt;
 5571 - BaiduCarLife related&lt;br /&gt;
 5572 - TUNER: isTaggingSupported &amp;amp;&amp;amp; MEDIA: iap2Supported&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5614 - ONLINE: initGPSPopupController related&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_full_conversion_to_EU&amp;diff=422</id>
		<title>MHI2 full conversion to EU</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_full_conversion_to_EU&amp;diff=422"/>
		<updated>2026-04-10T07:44:32Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* Finishing Touches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A step-by-step tutorial for Harman MHI2 region conversion between US/JP/KR/CN and European firmware.&lt;br /&gt;
&lt;br /&gt;
== Prepare the unit, vehicle, and yourself ==&lt;br /&gt;
&lt;br /&gt;
# Check your currently installed firmware. You you have a very old version, your unit might need firmware update first in order to have [[More Incredible Bash]] working. And you need it for this to work.&lt;br /&gt;
# Make sure that power is stable:&lt;br /&gt;
#* if working on bench, make sure that the 12V power supply can provide needed amperage&lt;br /&gt;
#* if working in vehicle, make sure that the car is connected to external power source or the engine is running. Vehicle equipped with keyless system should have the fob close the the keyless antenna during the procedure.&lt;br /&gt;
# Make sure that you know those:&lt;br /&gt;
#* [[REM]] - Red Engineering Menu&lt;br /&gt;
#* [[GEM]] - Green Engineering Menu&lt;br /&gt;
#* [[SWDL]] - SoftWare Download&lt;br /&gt;
#* [[FEC]] - Feature Enabling Code&lt;br /&gt;
#* [[SWaP]] - SoftWare as a Product&lt;br /&gt;
&lt;br /&gt;
== Tools and software ==&lt;br /&gt;
&lt;br /&gt;
* SD card (good quality, 32GB capacity, don&#039;t risk microSD with an adapter)&lt;br /&gt;
* latest [[More Incredible Bash]] → https://github.com/Mr-MIBonk/M.I.B._More-Incredible-Bash&lt;br /&gt;
* latest MHI2 patches → https://mibsolution.one/#/1/18&lt;br /&gt;
* latest EU firmware&lt;br /&gt;
* latest MHI2 EU maps → https://mib-helper.com/index.php?train=MHI2_ER_AU37X_P5089#maps&lt;br /&gt;
* diagnostic interface like [[OBDeleven]], [[VCDS]], [[VCP]]&lt;br /&gt;
* [[Gracenote]] EU update (optional)&lt;br /&gt;
* [[RSDB]] EU update (optional)&lt;br /&gt;
* [[PPOI]] with EU Speed Traps (optional)&lt;br /&gt;
* [[Boardbook]] update (optional for Audi and Porsche)&lt;br /&gt;
&lt;br /&gt;
== Convert MHI2 unit to European Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== Install More Incredible Bash ===&lt;br /&gt;
&lt;br /&gt;
# Insert SD card with More Incredible Bash&lt;br /&gt;
# &amp;lt;code&amp;gt;REM&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Update&amp;lt;/code&amp;gt; → SD card → install More Incredible Bash&lt;br /&gt;
&lt;br /&gt;
=== Prepare unit for EU firmware ===&lt;br /&gt;
# [[GEM]] → m.i.b. → advanced_settings → eu_conversion → convert unit to EU. It will end with &amp;quot;reboot (..) and run conversion again&amp;quot;&lt;br /&gt;
# reboot the unit, and run the `convert unit to EU` again&lt;br /&gt;
# ...and again - you see &amp;quot;Now you can insert (...) and update&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Prepare update package for custom full SWLD ===&lt;br /&gt;
# &amp;lt;code&amp;gt;GEM&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m.i.b.&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;advanced_settings&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;swdl_fw_updates&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Enable user defined SWDL&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;ENABLED&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;GEM&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m.i.b.&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;advanced_settings&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;swdl_fw_updates&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Ignore Region and Variant&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;ENABLED&amp;lt;/code&amp;gt;&lt;br /&gt;
# exit GEM by going to &amp;lt;code&amp;gt;RADIO&amp;lt;/code&amp;gt;. Don&#039;t reboot the unit.&lt;br /&gt;
# insert FAT32 SD with target firmware&lt;br /&gt;
# REM → Update → User defined → RightButton → Set all to &amp;lt;code&amp;gt;[Y]&amp;lt;/code&amp;gt;&lt;br /&gt;
# if you have premium sound system with external audio amplifier (Bose, Dynaudio, Fender, Bang&amp;amp;Olufsen...), set the amplifier (&amp;lt;code&amp;gt;AMP16*APN / AMP_BAO_P3 / Bose6416*&amp;lt;/code&amp;gt;) to &amp;lt;code&amp;gt;[N]&amp;lt;/code&amp;gt;, because we don&#039;t want to update the amplifier. You could do it, but you will need to upload correct parameters to the amplifier afterwards.&lt;br /&gt;
# if you have Audi A3 8V (&amp;lt;code&amp;gt;AU37x&amp;lt;/code&amp;gt;), set the &amp;lt;code&amp;gt;FC2H37xE&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;[N]&amp;lt;/code&amp;gt;.&amp;lt;ref&amp;gt;https://www.drive2.ru/b/651027432949678987/&amp;lt;/ref&amp;gt; This is the display mechanism firmware. If you flash it with the EU firmware version, the mechanism will stay permanently open.&lt;br /&gt;
&lt;br /&gt;
=== Start the EU firmware update ===&lt;br /&gt;
# scroll down → Start update; wait...&lt;br /&gt;
# In &amp;quot;Device summary&amp;quot; scroll down → Resume&lt;br /&gt;
# wait for reboot, go to MMI settings and set your language&lt;br /&gt;
&lt;br /&gt;
== Patch the unit ==&lt;br /&gt;
Now let&#039;s handle [[FEC]] / [[SWaP]] codes and Component Protection.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;GEM&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;m.i.b.&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;patch_unit_aio&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;PATCH NOW&amp;lt;/code&amp;gt;&lt;br /&gt;
# wait fot the patch to be applied&lt;br /&gt;
# after patch is done and unit is rebooted, go to [[REM]] and check if new license keys/FECs are installed and valid.&lt;br /&gt;
&lt;br /&gt;
== Install options ==&lt;br /&gt;
&lt;br /&gt;
=== EU Maps ===&lt;br /&gt;
# GEM → m.i.b. → navigation → check coding → SDS region → Europe → Save changes&lt;br /&gt;
# VCDS/OBD11/VPC → module: 5F → Basic Settings → Formatting Partitions of Internal Memory → Navigation Data Base → Go&lt;br /&gt;
# insert SD with MHI2 EU maps&lt;br /&gt;
# System Care → System Update → SD1 → Start Software Update; wait...&lt;br /&gt;
&lt;br /&gt;
=== Speedtrap PPOIs ===&lt;br /&gt;
# insert SD with PPOIs&lt;br /&gt;
# System Care → System Update → SD1 → Start Software Update; wait...&lt;br /&gt;
&lt;br /&gt;
=== Gracenote ===&lt;br /&gt;
&lt;br /&gt;
# insert SD with Gracenote update&lt;br /&gt;
# System Care → System Update → SD1 → Start Software Update; wait...&lt;br /&gt;
&lt;br /&gt;
=== Radiostation Database ===&lt;br /&gt;
==== VW / Seat / Skoda ====&lt;br /&gt;
# download RSDB update from https://www.phonostar.de&lt;br /&gt;
# insert SD with RSDB update&lt;br /&gt;
# System Care → System Update → SD1 → Start Software Update; wait...&lt;br /&gt;
&lt;br /&gt;
==== Audi ====&lt;br /&gt;
# download MH2P RSDB&lt;br /&gt;
# extract the package, find the &amp;lt;code&amp;gt;VW_STL_DB.sqlite&amp;lt;/code&amp;gt; file&lt;br /&gt;
# copy it to More Incredible Bash SD card, to &amp;lt;code&amp;gt;/mod/RSDB/&amp;lt;/code&amp;gt; directory&lt;br /&gt;
# green menu → m.i.b. → multimedia_system → radio → radiostation_db → Copy RSDB to unit; wait...&lt;br /&gt;
&lt;br /&gt;
If you use the VW/Seat/Skoda update, it will result in small logos with a thick border around them. This is due different resolution of the textures (160x120 vs 320x240).&lt;br /&gt;
&lt;br /&gt;
=== Boardbook ===&lt;br /&gt;
&lt;br /&gt;
Audi and Porsche only&lt;br /&gt;
&lt;br /&gt;
Check 5F → Long Coding, if the boardbook is enabled&lt;br /&gt;
&lt;br /&gt;
# insert SD with Boardbook&lt;br /&gt;
# Settings → Boardbook → install; wait...&lt;br /&gt;
&lt;br /&gt;
== Finishing Touches ==&lt;br /&gt;
&lt;br /&gt;
=== Video In Motion ===&lt;br /&gt;
 TODOOO&lt;br /&gt;
&lt;br /&gt;
=== DVD Region ===&lt;br /&gt;
 TODOOO&lt;br /&gt;
&lt;br /&gt;
=== Fullscreen RVC mod ===&lt;br /&gt;
Audi only&lt;br /&gt;
 TODOOO&lt;br /&gt;
&lt;br /&gt;
=== Fix B201A SVM fault ===&lt;br /&gt;
# VCDS/OBD11/VPC → module: 5F → fix B201A fault with &amp;quot;i&#039;m so XORy&amp;quot; calculator&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
# GEM → m.i.b. → SVM_fix&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* https://www.drive2.ru/b/651860313007718652/&lt;br /&gt;
* https://www.drive2.ru/b/648225602444205225/&lt;br /&gt;
* https://www.drive2.ru/b/646954017246681747/&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=VMOPTIONS&amp;diff=421</id>
		<title>VMOPTIONS</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=VMOPTIONS&amp;diff=421"/>
		<updated>2026-03-27T17:19:06Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Those can be used to overwrite some parameters of the HMI, like vehicle coding and adaptation, rendering options, screen resolution, menu visibility...&lt;br /&gt;
&lt;br /&gt;
== Boolean ==&lt;br /&gt;
Found by searching for &amp;lt;code&amp;gt;SystemProperties.getBoolean&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Boolean.getBoolean&amp;lt;/code&amp;gt;.&lt;br /&gt;
 showDisplayManagerInfo //tested; contentID, displayableID, opacities&lt;br /&gt;
 showDrawTimeStatistic //tested; fps, rendering status&lt;br /&gt;
 showScreenInfo //tested; ScreenID, ScreenName, kzb loading status&lt;br /&gt;
 media.video.disableSpeedthreshold //tested; overrides VIM-LOCK and forces stream do display&lt;br /&gt;
 MenuShowStatistics //tested; scroll speed, stroboscope status&lt;br /&gt;
 IS_PRODUCTION_MODE //tested; if `false` unlocks couple dev options&lt;br /&gt;
&lt;br /&gt;
 showScreenChangeAnimationInfo&lt;br /&gt;
 showPartialPopupDebugInfos&lt;br /&gt;
 showEventQueueStatistic&lt;br /&gt;
 showCombi&lt;br /&gt;
 showMemUsageDetail //interesting!&lt;br /&gt;
 showEventQueueStatistic&lt;br /&gt;
 showMemoryUsage&lt;br /&gt;
&lt;br /&gt;
 UseGEMSkinOverride //override for LastmodeStorage for the Combi skin&lt;br /&gt;
 SimulateSWDL //debugging SWaP code validation&lt;br /&gt;
 SkipLicenseCheck //online services license &amp;amp; Google Earth MMI&lt;br /&gt;
 DISABLE_LOGGING&lt;br /&gt;
 DISABLE_ANNOTATION&lt;br /&gt;
 DisableLicenseBrowser&lt;br /&gt;
 Official_Release&lt;br /&gt;
 dev_mode //booting without PCSIM &lt;br /&gt;
 enableGEM //most likely enables Green Engineering Menu even with disabled in adaptation&lt;br /&gt;
&lt;br /&gt;
 ignoreToucheventDeltatime&lt;br /&gt;
 checkScenegraphConsistency&lt;br /&gt;
 ignoreInvalidEALNodes&lt;br /&gt;
 EnablePermanentRendering&lt;br /&gt;
 ignoreEALStartupErrors&lt;br /&gt;
 useLongNodeNames //???&lt;br /&gt;
 EALEnableObjectTracer&lt;br /&gt;
 EALEnableObjectTracingOnScreenChange&lt;br /&gt;
 EALEnableRegistry&lt;br /&gt;
 3DCarFXAA&lt;br /&gt;
 supportHDDS //something with keypanel and fireWheelButtonEvent() function&lt;br /&gt;
 logMetricsToConsole&lt;br /&gt;
 G24_NO_MMIKOMBI&lt;br /&gt;
 EnableInstrumentation&lt;br /&gt;
 OnDemandResLoadingStats&lt;br /&gt;
 useNameForScreenshotFile&lt;br /&gt;
 SYNC_EARLY_RVC&lt;br /&gt;
 START_HIGH_HMI_WATCHDOG&lt;br /&gt;
 StartAudioBeforePhone&lt;br /&gt;
 DumpExtendedBundleInformation&lt;br /&gt;
 navStreetviewOverviewmap&lt;br /&gt;
 navPreferredGasStations&lt;br /&gt;
 disableScrollByCrosshairs&lt;br /&gt;
 useWordPrediction&lt;br /&gt;
 TEL_DEVELOPMENT&lt;br /&gt;
 externalSDS&lt;br /&gt;
 useLegacyDSITelephone&lt;br /&gt;
 MOSTListSupported&lt;br /&gt;
 DisableClusterFunctionSyncNavi&lt;br /&gt;
 DisableClusterFunctionSyncAudio&lt;br /&gt;
 enableOnlineDictationLicense&lt;br /&gt;
 RemoteHMIConnecitivityOverride&lt;br /&gt;
 RHMI_VE_DISABLE_TRUFFEL_INSTANCE&lt;br /&gt;
 RemoteHMIUseBrowserScrollbar&lt;br /&gt;
 sdsPauseActive&lt;br /&gt;
 enableNLU&lt;br /&gt;
 ActivateNaviDebugPopup&lt;br /&gt;
 hmi.audio.simulation&lt;br /&gt;
 hmi.speech.audio.simulation&lt;br /&gt;
 disableJointMode&lt;br /&gt;
 UseIconExtractor&lt;br /&gt;
 BreakdownEnabled&lt;br /&gt;
 PoiCallEnabled&lt;br /&gt;
 ConciergeEnabled&lt;br /&gt;
 ANSICOLOR&lt;br /&gt;
 DisableCombiSync&lt;br /&gt;
 user.data.export.simulation&lt;br /&gt;
 user.data.export.keep.tmp.files&lt;br /&gt;
 IGNORE_CALIBRATION&lt;br /&gt;
 clusterMapMostAlwaysOn&lt;br /&gt;
 clusterMapAlwaysOn //interesting!&lt;br /&gt;
 FUNCTIONCOUNTER_ACTIVE&lt;br /&gt;
 UseInternalLocationAccessor&lt;br /&gt;
 ETC_SENSOR_DATA_REPLAY&lt;br /&gt;
 DRRD_TRUFFLES&lt;br /&gt;
 demoModeIgnoreClamp&lt;br /&gt;
 enableSoftZoom&lt;br /&gt;
 disableZoomTimer&lt;br /&gt;
 AlwaysRenderMap&lt;br /&gt;
 disableSoftZoom&lt;br /&gt;
 enableSoftZoomConditional&lt;br /&gt;
 enableSoftRotation&lt;br /&gt;
 POIOnlineSim&lt;br /&gt;
 disablePOICategoryPreLoad&lt;br /&gt;
 disableAdaptiveSleeping&lt;br /&gt;
 EnableIdleRendering&lt;br /&gt;
 loadAllFontsForStandard&lt;br /&gt;
 mergeSelectionDrawerOnDemand&lt;br /&gt;
 EnableAutomaticViewSizeChange&lt;br /&gt;
 EnableStageKeepingOnHMIPopup&lt;br /&gt;
 EnableStageKeepingOnCombiPopup&lt;br /&gt;
 EALEnableFontLayoutWorkaround&lt;br /&gt;
 enableRTL&lt;br /&gt;
 removeNodeBeforeDestroy&lt;br /&gt;
 ActivateIdleDestroying&lt;br /&gt;
 disableTextNodeCache&lt;br /&gt;
 disableTextureCache&lt;br /&gt;
 partialRenderingEnabled&lt;br /&gt;
 partialOffscreenRenderingEnabled&lt;br /&gt;
 de.audi.kbd.dsi.oldKeyPanel&lt;br /&gt;
&lt;br /&gt;
== Integer ==&lt;br /&gt;
Found by looking for &amp;lt;code&amp;gt;Integer.getInteger&amp;lt;/code&amp;gt;.&lt;br /&gt;
 imageOpacityIfLockingActive=50&lt;br /&gt;
 scrollAnimationInterval=20&lt;br /&gt;
 touchRepaintInterval=50&lt;br /&gt;
 mainWizardIconOpacityIfLockingActive=50&lt;br /&gt;
 ealMergeFlagLoadingHint=1&lt;br /&gt;
 CAR_CLASS&lt;br /&gt;
 CAR_GENERATION&lt;br /&gt;
 CAR_DERIVATE&lt;br /&gt;
 CAR_DERIVATE_SUPPLEMENT&lt;br /&gt;
 NhtsaTimerDelay=5000&lt;br /&gt;
 screenCacheSizePassive=3&lt;br /&gt;
 screenCacheSizeActive=6&lt;br /&gt;
 ealObjectWarnLimit=1500&lt;br /&gt;
 ealMemorySize&lt;br /&gt;
 maxTimeNodeDestroying&lt;br /&gt;
 idleDestroyingStart&lt;br /&gt;
 maxNoOfNodesToDestroy&lt;br /&gt;
 memoryUsageUnit&lt;br /&gt;
 textureCacheSize0&lt;br /&gt;
 textureCacheSize1&lt;br /&gt;
 textureCacheCarViewerStandardSize&lt;br /&gt;
 textureCacheAsyncSize&lt;br /&gt;
 textureCacheSizes&lt;br /&gt;
 textureCacheTypes&lt;br /&gt;
 mainAreaDesaturation&lt;br /&gt;
 annotationErrorCorrection&lt;br /&gt;
 maxRecursiveDepthAddingCheck&lt;br /&gt;
 maxNumberOfIdleRenderStepsForOpsAsyncMerge&lt;br /&gt;
 EALEnableDumpEveryNSeconds&lt;br /&gt;
 LowMemoryDumpWhileTracingLevel&lt;br /&gt;
 delayTimeForIdleRenderStepsForOpsAsyncMerge&lt;br /&gt;
 RadioTextDisplayTime&lt;br /&gt;
 SlideshowDisplayDuration1&lt;br /&gt;
 SlideshowDisplayDuration2&lt;br /&gt;
 ScreenRes=2 //interesting! (2:800x480)&lt;br /&gt;
 MaxStatsLogs&lt;br /&gt;
 MaxLogsExceededStrategy&lt;br /&gt;
 ErrorDumpTriggerPort&lt;br /&gt;
 ERROR_DUMP_MAX&lt;br /&gt;
 INTELLICALL_MODE&lt;br /&gt;
 FlagMemCPU&lt;br /&gt;
 DSI_PERSISTENCE_READ_TIMEOUT=5000&lt;br /&gt;
 SWDLAutoRetries=0&lt;br /&gt;
 jar.cacheSize&lt;br /&gt;
 dumpPriority&lt;br /&gt;
 dumpThreadOnPort&lt;br /&gt;
 deadlockDetection=-1&lt;br /&gt;
&lt;br /&gt;
== Long ==&lt;br /&gt;
 Long.getLong&lt;br /&gt;
&lt;br /&gt;
 log.jvm.heap.watchdog.time&lt;br /&gt;
 log.jvm.heap.min.free.memory&lt;br /&gt;
 BUNDLE_START_TIMEOUT&lt;br /&gt;
 WAIT_FOR_AUDIO_TIMEOUT&lt;br /&gt;
 BUNDLE_START_TIMEOUT&lt;br /&gt;
 HMI_START_TIMEOUT&lt;br /&gt;
 DSI_PERSISTENCE_TIMEOUT&lt;br /&gt;
 WAIT_FOR_RVC_AVAILABLE&lt;br /&gt;
 WAIT_FOR_FIRST_POWERSTATE&lt;br /&gt;
 WAIT_FOR_MAP_AVAILABLE&lt;br /&gt;
 WAIT_FOR_SDS_AVAILABLE&lt;br /&gt;
 WAIT_FOR_FIRST_MMIKOMBISYNC&lt;br /&gt;
 WAIT_FOR_FIRST_SCREEN_PAINTED&lt;br /&gt;
 startup.rse.media.delay&lt;br /&gt;
 startup.rse.navi.delay&lt;br /&gt;
 startup.rse.post.delay&lt;br /&gt;
 startup.max.domain.wait&lt;br /&gt;
 MAX_EVENT_TIME&lt;br /&gt;
 ttsRequestTimer&lt;br /&gt;
&lt;br /&gt;
== String ==&lt;br /&gt;
 overrideInstalledStateFromProperty&lt;br /&gt;
 &lt;br /&gt;
 media.config.cd=installed&lt;br /&gt;
 media.config.cdc=installed&lt;br /&gt;
 media.config.dvd=installed&lt;br /&gt;
 media.config.dvdc=installed&lt;br /&gt;
 media.config.hdd=installed&lt;br /&gt;
 media.config.sd=installed&lt;br /&gt;
 media.config.aux=installed&lt;br /&gt;
 media.config.usb=installed&lt;br /&gt;
 media.config.bt=installed&lt;br /&gt;
 media.config.wlan=installed&lt;br /&gt;
 media.config.tv=installed&lt;br /&gt;
 media.config.avin=installed&lt;br /&gt;
 media.config.online=installed&lt;br /&gt;
&lt;br /&gt;
 System.getProperty&lt;br /&gt;
 &lt;br /&gt;
 ipl.config.dir=/etc/eso/production&lt;br /&gt;
 ipl.config.myProcName=hmi&lt;br /&gt;
 ipl.config.resource=/resources&lt;br /&gt;
 java.library.path&lt;br /&gt;
 com.ibm.oti.vm.bootstrap.library.path&lt;br /&gt;
 OEM=AU&lt;br /&gt;
 REGION=ER&lt;br /&gt;
 RUN_MODE=normal&lt;br /&gt;
 hwg.font.path=/mnt/app/eso/hmi/fonts&lt;br /&gt;
 ImageRoot=/mnt/app/eso/hmi/lsd/images&lt;br /&gt;
 KzbRoot=/mnt/app/eso/hmi/lsd/kzbs&lt;br /&gt;
 ErrorDumpDir=/mnt/ota/system/logs/&lt;br /&gt;
 externalized.logs.path=/mnt/app/eso/hmi/lsd/ext_logs/&lt;br /&gt;
 line.separator //line break sign&lt;br /&gt;
 org.apache.commons.id.uuid.config.resource.filename //apache setting for file read/write&lt;br /&gt;
 os.name //detecting test environment &lt;br /&gt;
 user.dir //security and Apache related&lt;br /&gt;
 arc.debug //???&lt;br /&gt;
 MenuScrollAlgorithm //old or new scroll animation type?&lt;br /&gt;
 SpellerCharacterSetPath //for Asian characters via touchpad&lt;br /&gt;
&lt;br /&gt;
== other ==&lt;br /&gt;
 CarParkingHoseMinTimeBetweenUpdates=300 //most likely OPS trajectory update interval&lt;br /&gt;
 BoardbookInfoFilePath=/mnt/boardbook/ //redirect user manual root to different location&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=VMOPTIONS&amp;diff=420</id>
		<title>VMOPTIONS</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=VMOPTIONS&amp;diff=420"/>
		<updated>2026-03-27T17:17:37Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* Long */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Those can be used to overwrite some parameters of the HMI, like vehicle coding and adaptation, rendering options, screen resolution, menu visibility...&lt;br /&gt;
&lt;br /&gt;
== Boolean ==&lt;br /&gt;
Found by searching for &amp;lt;code&amp;gt;SystemProperties.getBoolean&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Boolean.getBoolean&amp;lt;/code&amp;gt;.&lt;br /&gt;
 showDisplayManagerInfo //tested; contentID, displayableID, opacities&lt;br /&gt;
 showDrawTimeStatistic //tested; fps, rendering status&lt;br /&gt;
 showScreenInfo //tested; ScreenID, ScreenName, kzb loading status&lt;br /&gt;
 media.video.disableSpeedthreshold //tested; overrides VIM-LOCK and forces stream do display&lt;br /&gt;
 MenuShowStatistics //tested; scroll speed, stroboscope status&lt;br /&gt;
 IS_PRODUCTION_MODE //tested; if `false` unlocks couple dev options&lt;br /&gt;
&lt;br /&gt;
 showScreenChangeAnimationInfo&lt;br /&gt;
 showPartialPopupDebugInfos&lt;br /&gt;
 showEventQueueStatistic&lt;br /&gt;
 showCombi&lt;br /&gt;
 showMemUsageDetail //interesting!&lt;br /&gt;
 showEventQueueStatistic&lt;br /&gt;
 showMemoryUsage&lt;br /&gt;
&lt;br /&gt;
 UseGEMSkinOverride //override for LastmodeStorage for the Combi skin&lt;br /&gt;
 SimulateSWDL //debugging SWaP code validation&lt;br /&gt;
 SkipLicenseCheck //online services license &amp;amp; Google Earth MMI&lt;br /&gt;
 DISABLE_LOGGING&lt;br /&gt;
 DISABLE_ANNOTATION&lt;br /&gt;
 DisableLicenseBrowser&lt;br /&gt;
 Official_Release&lt;br /&gt;
 dev_mode //booting without PCSIM &lt;br /&gt;
 enableGEM //most likely enables Green Engineering Menu even with disabled in adaptation&lt;br /&gt;
&lt;br /&gt;
 ignoreToucheventDeltatime&lt;br /&gt;
 checkScenegraphConsistency&lt;br /&gt;
 ignoreInvalidEALNodes&lt;br /&gt;
 EnablePermanentRendering&lt;br /&gt;
 ignoreEALStartupErrors&lt;br /&gt;
 useLongNodeNames //???&lt;br /&gt;
 EALEnableObjectTracer&lt;br /&gt;
 EALEnableObjectTracingOnScreenChange&lt;br /&gt;
 EALEnableRegistry&lt;br /&gt;
 3DCarFXAA&lt;br /&gt;
 supportHDDS //something with keypanel and fireWheelButtonEvent() function&lt;br /&gt;
 logMetricsToConsole&lt;br /&gt;
 G24_NO_MMIKOMBI&lt;br /&gt;
 EnableInstrumentation&lt;br /&gt;
 OnDemandResLoadingStats&lt;br /&gt;
 useNameForScreenshotFile&lt;br /&gt;
 SYNC_EARLY_RVC&lt;br /&gt;
 START_HIGH_HMI_WATCHDOG&lt;br /&gt;
 StartAudioBeforePhone&lt;br /&gt;
 DumpExtendedBundleInformation&lt;br /&gt;
 navStreetviewOverviewmap&lt;br /&gt;
 navPreferredGasStations&lt;br /&gt;
 disableScrollByCrosshairs&lt;br /&gt;
 useWordPrediction&lt;br /&gt;
 TEL_DEVELOPMENT&lt;br /&gt;
 externalSDS&lt;br /&gt;
 useLegacyDSITelephone&lt;br /&gt;
 MOSTListSupported&lt;br /&gt;
 DisableClusterFunctionSyncNavi&lt;br /&gt;
 DisableClusterFunctionSyncAudio&lt;br /&gt;
 enableOnlineDictationLicense&lt;br /&gt;
 RemoteHMIConnecitivityOverride&lt;br /&gt;
 RHMI_VE_DISABLE_TRUFFEL_INSTANCE&lt;br /&gt;
 RemoteHMIUseBrowserScrollbar&lt;br /&gt;
 sdsPauseActive&lt;br /&gt;
 enableNLU&lt;br /&gt;
 ActivateNaviDebugPopup&lt;br /&gt;
 hmi.audio.simulation&lt;br /&gt;
 hmi.speech.audio.simulation&lt;br /&gt;
 disableJointMode&lt;br /&gt;
 UseIconExtractor&lt;br /&gt;
 BreakdownEnabled&lt;br /&gt;
 PoiCallEnabled&lt;br /&gt;
 ConciergeEnabled&lt;br /&gt;
 ANSICOLOR&lt;br /&gt;
 DisableCombiSync&lt;br /&gt;
 user.data.export.simulation&lt;br /&gt;
 user.data.export.keep.tmp.files&lt;br /&gt;
 IGNORE_CALIBRATION&lt;br /&gt;
 clusterMapMostAlwaysOn&lt;br /&gt;
 clusterMapAlwaysOn //interesting!&lt;br /&gt;
 FUNCTIONCOUNTER_ACTIVE&lt;br /&gt;
 UseInternalLocationAccessor&lt;br /&gt;
 ETC_SENSOR_DATA_REPLAY&lt;br /&gt;
 DRRD_TRUFFLES&lt;br /&gt;
 demoModeIgnoreClamp&lt;br /&gt;
 enableSoftZoom&lt;br /&gt;
 disableZoomTimer&lt;br /&gt;
 AlwaysRenderMap&lt;br /&gt;
 disableSoftZoom&lt;br /&gt;
 enableSoftZoomConditional&lt;br /&gt;
 enableSoftRotation&lt;br /&gt;
 POIOnlineSim&lt;br /&gt;
 disablePOICategoryPreLoad&lt;br /&gt;
 disableAdaptiveSleeping&lt;br /&gt;
 EnableIdleRendering&lt;br /&gt;
 loadAllFontsForStandard&lt;br /&gt;
 mergeSelectionDrawerOnDemand&lt;br /&gt;
 EnableAutomaticViewSizeChange&lt;br /&gt;
 EnableStageKeepingOnHMIPopup&lt;br /&gt;
 EnableStageKeepingOnCombiPopup&lt;br /&gt;
 EALEnableFontLayoutWorkaround&lt;br /&gt;
 enableRTL&lt;br /&gt;
 removeNodeBeforeDestroy&lt;br /&gt;
 ActivateIdleDestroying&lt;br /&gt;
 disableTextNodeCache&lt;br /&gt;
 disableTextureCache&lt;br /&gt;
 partialRenderingEnabled&lt;br /&gt;
 partialOffscreenRenderingEnabled&lt;br /&gt;
 de.audi.kbd.dsi.oldKeyPanel&lt;br /&gt;
&lt;br /&gt;
== Integer ==&lt;br /&gt;
Found by looking for &amp;lt;code&amp;gt;Integer.getInteger&amp;lt;/code&amp;gt;.&lt;br /&gt;
 imageOpacityIfLockingActive=50&lt;br /&gt;
 scrollAnimationInterval=20&lt;br /&gt;
 touchRepaintInterval=50&lt;br /&gt;
 mainWizardIconOpacityIfLockingActive=50&lt;br /&gt;
 ealMergeFlagLoadingHint=1&lt;br /&gt;
 CAR_CLASS&lt;br /&gt;
 CAR_GENERATION&lt;br /&gt;
 CAR_DERIVATE&lt;br /&gt;
 CAR_DERIVATE_SUPPLEMENT&lt;br /&gt;
 NhtsaTimerDelay=5000&lt;br /&gt;
 screenCacheSizePassive=3&lt;br /&gt;
 screenCacheSizeActive=6&lt;br /&gt;
 ealObjectWarnLimit=1500&lt;br /&gt;
 ealMemorySize&lt;br /&gt;
 maxTimeNodeDestroying&lt;br /&gt;
 idleDestroyingStart&lt;br /&gt;
 maxNoOfNodesToDestroy&lt;br /&gt;
 memoryUsageUnit&lt;br /&gt;
 textureCacheSize0&lt;br /&gt;
 textureCacheSize1&lt;br /&gt;
 textureCacheCarViewerStandardSize&lt;br /&gt;
 textureCacheAsyncSize&lt;br /&gt;
 textureCacheSizes&lt;br /&gt;
 textureCacheTypes&lt;br /&gt;
 mainAreaDesaturation&lt;br /&gt;
 annotationErrorCorrection&lt;br /&gt;
 maxRecursiveDepthAddingCheck&lt;br /&gt;
 maxNumberOfIdleRenderStepsForOpsAsyncMerge&lt;br /&gt;
 EALEnableDumpEveryNSeconds&lt;br /&gt;
 LowMemoryDumpWhileTracingLevel&lt;br /&gt;
 delayTimeForIdleRenderStepsForOpsAsyncMerge&lt;br /&gt;
 RadioTextDisplayTime&lt;br /&gt;
 SlideshowDisplayDuration1&lt;br /&gt;
 SlideshowDisplayDuration2&lt;br /&gt;
 ScreenRes=2 //interesting! (2:800x480)&lt;br /&gt;
 MaxStatsLogs&lt;br /&gt;
 MaxLogsExceededStrategy&lt;br /&gt;
 ErrorDumpTriggerPort&lt;br /&gt;
 ERROR_DUMP_MAX&lt;br /&gt;
 INTELLICALL_MODE&lt;br /&gt;
 FlagMemCPU&lt;br /&gt;
 DSI_PERSISTENCE_READ_TIMEOUT=5000&lt;br /&gt;
 SWDLAutoRetries=0&lt;br /&gt;
 jar.cacheSize&lt;br /&gt;
 dumpPriority&lt;br /&gt;
 dumpThreadOnPort&lt;br /&gt;
 deadlockDetection=-1&lt;br /&gt;
&lt;br /&gt;
== Long ==&lt;br /&gt;
 Long.getLong&lt;br /&gt;
&lt;br /&gt;
 log.jvm.heap.watchdog.time&lt;br /&gt;
 log.jvm.heap.min.free.memory&lt;br /&gt;
 BUNDLE_START_TIMEOUT&lt;br /&gt;
 WAIT_FOR_AUDIO_TIMEOUT&lt;br /&gt;
 BUNDLE_START_TIMEOUT&lt;br /&gt;
 HMI_START_TIMEOUT&lt;br /&gt;
 DSI_PERSISTENCE_TIMEOUT&lt;br /&gt;
 WAIT_FOR_RVC_AVAILABLE&lt;br /&gt;
 WAIT_FOR_FIRST_POWERSTATE&lt;br /&gt;
 WAIT_FOR_MAP_AVAILABLE&lt;br /&gt;
 WAIT_FOR_SDS_AVAILABLE&lt;br /&gt;
 WAIT_FOR_FIRST_MMIKOMBISYNC&lt;br /&gt;
 WAIT_FOR_FIRST_SCREEN_PAINTED&lt;br /&gt;
 startup.rse.media.delay&lt;br /&gt;
 startup.rse.navi.delay&lt;br /&gt;
 startup.rse.post.delay&lt;br /&gt;
 startup.max.domain.wait&lt;br /&gt;
 MAX_EVENT_TIME&lt;br /&gt;
 ttsRequestTimer&lt;br /&gt;
&lt;br /&gt;
== String ==&lt;br /&gt;
 media.config.cd=installed&lt;br /&gt;
 media.config.cdc=installed&lt;br /&gt;
 media.config.dvd=installed&lt;br /&gt;
 media.config.dvdc=installed&lt;br /&gt;
 media.config.hdd=installed&lt;br /&gt;
 media.config.sd=installed&lt;br /&gt;
 media.config.aux=installed&lt;br /&gt;
 media.config.usb=installed&lt;br /&gt;
 media.config.bt=installed&lt;br /&gt;
 media.config.wlan=installed&lt;br /&gt;
 media.config.tv=installed&lt;br /&gt;
 media.config.avin=installed&lt;br /&gt;
 media.config.online=installed&lt;br /&gt;
&lt;br /&gt;
 ipl.config.dir=/etc/eso/production&lt;br /&gt;
 ipl.config.myProcName=hmi&lt;br /&gt;
 ipl.config.resource=/resources&lt;br /&gt;
 java.library.path&lt;br /&gt;
 com.ibm.oti.vm.bootstrap.library.path&lt;br /&gt;
 OEM=AU&lt;br /&gt;
 REGION=ER&lt;br /&gt;
 RUN_MODE=normal&lt;br /&gt;
 hwg.font.path=/mnt/app/eso/hmi/fonts&lt;br /&gt;
 ImageRoot=/mnt/app/eso/hmi/lsd/images&lt;br /&gt;
 KzbRoot=/mnt/app/eso/hmi/lsd/kzbs&lt;br /&gt;
 ErrorDumpDir=/mnt/ota/system/logs/&lt;br /&gt;
 externalized.logs.path=/mnt/app/eso/hmi/lsd/ext_logs/&lt;br /&gt;
 line.separator //line break sign&lt;br /&gt;
 org.apache.commons.id.uuid.config.resource.filename //apache setting for file read/write&lt;br /&gt;
 os.name //detecting test environment &lt;br /&gt;
 user.dir //security and Apache related&lt;br /&gt;
 arc.debug //???&lt;br /&gt;
 MenuScrollAlgorithm //old or new scroll animation type?&lt;br /&gt;
 SpellerCharacterSetPath //for Asian characters via touchpad&lt;br /&gt;
&lt;br /&gt;
== other ==&lt;br /&gt;
 CarParkingHoseMinTimeBetweenUpdates=300 //most likely OPS trajectory update interval&lt;br /&gt;
 BoardbookInfoFilePath=/mnt/boardbook/ //redirect user manual root to different location&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=419</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=419"/>
		<updated>2026-03-27T16:52:47Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* 0 - 999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 442 - huRegion&lt;br /&gt;
 459 - isNavigationActive()&lt;br /&gt;
 460 - isVoiceControlSystemActive()&lt;br /&gt;
 462 - isBluetoothAvailable() &amp;amp;&amp;amp; isBluetoothPhoneAvailable()&lt;br /&gt;
 463 - isPhoneNadOn() &amp;amp;&amp;amp; isTelephoneActivated()&lt;br /&gt;
 464 - rightHandDrive&lt;br /&gt;
 465 - isTrafficSignDisplayActive()&lt;br /&gt;
 466 - getCarClass() (isA3 || isB9 || isQ1 || isQ5 || isQ7)&lt;br /&gt;
 467 - getCarDerivate()&lt;br /&gt;
 468 - getCarDerivateSupplement()&lt;br /&gt;
 469 - getCarGeneration()&lt;br /&gt;
 471 - getKombiTrackStationInfo()&lt;br /&gt;
 474 - isRemoteHmiAvailable()&lt;br /&gt;
 475 - isOnlinePoiVoiceAvailable()&lt;br /&gt;
 476 - getDab1Bandsetting() != 0 || getDab2Bandsetting() != 0&lt;br /&gt;
 478 - coding.isAmiOn() || coding.isAuxInOn()&lt;br /&gt;
 479 - isOnlineNaviGoogleEarthAvailable()&lt;br /&gt;
 480 - isBluetoothAvailable() &amp;amp;&amp;amp; isBluetoothAudioAvailable() &amp;amp;&amp;amp; isBluetoothMultimediaFuncAvailable()&lt;br /&gt;
 481 - isImportMediaDataActive() &amp;amp;&amp;amp; isExternalMediumActivated()&lt;br /&gt;
 482 - isRippingMediaDataActive() &amp;amp;&amp;amp; isOpticalMediumActivated()&lt;br /&gt;
 483 - getUsbConfiguration() == 2 || getUsbConfiguration() == 3&lt;br /&gt;
 485 - isMyAudiAvailable()&lt;br /&gt;
 486 - isOnlinePoiAvailable()&lt;br /&gt;
 487 - checkOnlineServicesAvailability()&lt;br /&gt;
 488 - isPayTmcSetOnlineTrafficAvailable()&lt;br /&gt;
 489 - isPictureNaviAvailable()&lt;br /&gt;
 490 - isOnlineStreetViewAvailable()&lt;br /&gt;
 492 - isWlanModuleActive() &amp;amp;&amp;amp; isWlanModuleActivated()&lt;br /&gt;
 493 - isUPnPAvailable()&lt;br /&gt;
 501 - ??? (part of initVariantDefault)&lt;br /&gt;
 502 - ??? (part of initVariantDefault)&lt;br /&gt;
 503 - ??? (part of initVariantDefault)&lt;br /&gt;
 512 - TEL: isSupportOfThreewayCalling()&lt;br /&gt;
 513 - TEL: isDtmfWithoutActiveCall()&lt;br /&gt;
 532 - getCountry()&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 549 - isOnlineDictationAvailable()&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3834 - NAV: isRangeMapDisplayPresent; isAdvancedRangeDisplayAvailable()&lt;br /&gt;
 3858 - CAR: isDrivingSchoolActive&lt;br /&gt;
 3866 - NAV: isPreferredGasStationsPresent&lt;br /&gt;
 3867 - isOnlineMediaAvailable() &amp;amp;&amp;amp; !isServiceDiscoveryAvailable()&lt;br /&gt;
 3877 - NAV: navStreetviewOverviewmap&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
 3919 - this.codingData.getVariantInfo().isMMIRadio()&lt;br /&gt;
 3967 - CarCoding: eolCodingOnlineMedia&lt;br /&gt;
 3969 - isUpdateOverTheAirFeatureEnabled&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
&lt;br /&gt;
 4219 - eSimAvailable&lt;br /&gt;
 4237 - terminalmode.gal AndroidAuto related&lt;br /&gt;
 4238 - terminalmode.dio CarPlay related&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4252 - isEniCoded&lt;br /&gt;
 4254 - ADDRESSBOOK: getMaxPublicEntries&lt;br /&gt;
 4255 - ADDRESSBOOK: getDefaultSortOrder&lt;br /&gt;
 4256 - ADDRESSBOOK: getMaxPhoneEntries&lt;br /&gt;
 4258 - ADDRESSBOOK: getDefaultPublicVisibility&lt;br /&gt;
 4259 - ADDRESSBOOK vcard import count related&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
 4306 - MESSAGES: isArabicLanguageAvailable&lt;br /&gt;
 4323 - TrafficInfoJP related&lt;br /&gt;
 4324 - InfoKR related&lt;br /&gt;
 4325 - isETCAvailable&lt;br /&gt;
 4347 - TUNER: registerSdarsSeekDSI related&lt;br /&gt;
 4348 - DISPLAYMANAGER: getTargetOffsetXY &amp;amp;&amp;amp; getCroppingResolution&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4372 - getETCCardRemiderTimeout&lt;br /&gt;
 4383 - isClusterMapAvailable&lt;br /&gt;
 4388 - isClusterKDKAvailable&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4396 - NAV: isMekkaCompassAvailable&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4410 - NAV: isPredictiveNav&lt;br /&gt;
 4416 - NAV: isRubberbandAvailable related&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4422 - NAV: isHMIScrollHairsEnabled&lt;br /&gt;
 4424 - PHONE: getSpeedDialType&lt;br /&gt;
 4425 - PHONE: getADBSpeedDialEntriesMaxNumber &amp;amp;&amp;amp; getMaxSpeedDialEntries&lt;br /&gt;
 4433 - NAV: useFreeTextSearch &amp;amp;&amp;amp; useNvcTextSearch&lt;br /&gt;
 4434 - NAV: alternativeRoutesWithStopOverAreDisabled&lt;br /&gt;
 4436 - NAV: isGoogleMapRestricted / isGoogleMapRestrictedPoiOnly&lt;br /&gt;
 4440 - NAV: MaxFavoriteCount&lt;br /&gt;
 4441 - NAV: isUncrowdedRoadsCheckboxAvailable&lt;br /&gt;
 4442 - BT/WLAN: isTetheringCoded&lt;br /&gt;
 4445 - NAV: autozoom → manoeuvreZoomEnable&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4456 - NAV: isTrailerModeAvailable&lt;br /&gt;
 4462 - NAV: isWeatherOnMapPresent&lt;br /&gt;
 4463 - SWDL: isUotaTravelCaseAllowed&lt;br /&gt;
 4464 - SWDL: getUotaUpdateRegionCount&lt;br /&gt;
 4465 - SWDL: showUotaSysProposalWithoutLicense&lt;br /&gt;
 4466 - SWDL: isUotaNavDBMergeProcessNeeded&lt;br /&gt;
 4467 - SWDL: preselectUOTASysProposals&lt;br /&gt;
 4474 - NAV: setMaxCountPerSource → unrestricted&lt;br /&gt;
 4477 - ONLINE: ppoi&lt;br /&gt;
 4479 - NAV: AlternativeRouteState#resetSettings() default setting&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4490 - AUDIO: volumeOnOffRange related&lt;br /&gt;
 4499 - NAV: isTrafficEventNoticeMapAvailable&lt;br /&gt;
 4511 - SWDL: isSortingUotaRegionByIsoCode&lt;br /&gt;
 4518 - WIDGET: createTouchController related&lt;br /&gt;
 4519 - TONE: sub/treb/bass range related&lt;br /&gt;
 4524 - ONLINE: primaryEngine&lt;br /&gt;
 4525 - ONLINE: secondaryEngine&lt;br /&gt;
 4526 - ONLINE: serviceDiscovery&lt;br /&gt;
 4527 - AUDIO: on/off volume range related&lt;br /&gt;
 4537 - NAV: betterRouteFoundTimeDelayInMs (value * 60000)&lt;br /&gt;
 4542 - TONE: fader/balance Porsche related&lt;br /&gt;
 4543 - SWDL: getUotaProgressDownloadPartPercentage&lt;br /&gt;
 4544 - SWDL: getUotaProgressMapintegrationPartPercentage&lt;br /&gt;
 4548 - NAV: poiWarningFeatureActive&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4575 - NAV: getRouteInfoConfigMode&lt;br /&gt;
 4577 - TUNER: getDatabaseRegion&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4589 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4590 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4591 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4592 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4596 - TONE: isReadinessSoundCoded&lt;br /&gt;
 4603 - SDS: isVoiceBargeInActive related&lt;br /&gt;
 4604 - TONE: activateOnOffButtons&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5542 - SWDL: isUotaLecensingAlowed&lt;br /&gt;
 5571 - BaiduCarLife related&lt;br /&gt;
 5572 - TUNER: isTaggingSupported &amp;amp;&amp;amp; MEDIA: iap2Supported&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5614 - ONLINE: initGPSPopupController related&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=418</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=418"/>
		<updated>2026-03-27T16:41:50Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* 0 - 999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 442 - huRegion&lt;br /&gt;
 462 - CONFIG: applyPhoneSettings related&lt;br /&gt;
 463 - PHONE: nadCoded&lt;br /&gt;
 464 - rightHandDrive&lt;br /&gt;
 466 - isA3 || isB9 || isQ1 || isQ5 || isQ7&lt;br /&gt;
 501 - ??? (part of initVariantDefault)&lt;br /&gt;
 502 - ??? (part of initVariantDefault)&lt;br /&gt;
 503 - ??? (part of initVariantDefault)&lt;br /&gt;
 512 - TEL: isSupportOfThreewayCalling()&lt;br /&gt;
 513 - TEL: isDtmfWithoutActiveCall()&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3834 - NAV: isRangeMapDisplayPresent; isAdvancedRangeDisplayAvailable()&lt;br /&gt;
 3858 - CAR: isDrivingSchoolActive&lt;br /&gt;
 3866 - NAV: isPreferredGasStationsPresent&lt;br /&gt;
 3867 - isOnlineMediaAvailable() &amp;amp;&amp;amp; !isServiceDiscoveryAvailable()&lt;br /&gt;
 3877 - NAV: navStreetviewOverviewmap&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
 3919 - this.codingData.getVariantInfo().isMMIRadio()&lt;br /&gt;
 3967 - CarCoding: eolCodingOnlineMedia&lt;br /&gt;
 3969 - isUpdateOverTheAirFeatureEnabled&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
&lt;br /&gt;
 4219 - eSimAvailable&lt;br /&gt;
 4237 - terminalmode.gal AndroidAuto related&lt;br /&gt;
 4238 - terminalmode.dio CarPlay related&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4252 - isEniCoded&lt;br /&gt;
 4254 - ADDRESSBOOK: getMaxPublicEntries&lt;br /&gt;
 4255 - ADDRESSBOOK: getDefaultSortOrder&lt;br /&gt;
 4256 - ADDRESSBOOK: getMaxPhoneEntries&lt;br /&gt;
 4258 - ADDRESSBOOK: getDefaultPublicVisibility&lt;br /&gt;
 4259 - ADDRESSBOOK vcard import count related&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
 4306 - MESSAGES: isArabicLanguageAvailable&lt;br /&gt;
 4323 - TrafficInfoJP related&lt;br /&gt;
 4324 - InfoKR related&lt;br /&gt;
 4325 - isETCAvailable&lt;br /&gt;
 4347 - TUNER: registerSdarsSeekDSI related&lt;br /&gt;
 4348 - DISPLAYMANAGER: getTargetOffsetXY &amp;amp;&amp;amp; getCroppingResolution&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4372 - getETCCardRemiderTimeout&lt;br /&gt;
 4383 - isClusterMapAvailable&lt;br /&gt;
 4388 - isClusterKDKAvailable&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4396 - NAV: isMekkaCompassAvailable&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4410 - NAV: isPredictiveNav&lt;br /&gt;
 4416 - NAV: isRubberbandAvailable related&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4422 - NAV: isHMIScrollHairsEnabled&lt;br /&gt;
 4424 - PHONE: getSpeedDialType&lt;br /&gt;
 4425 - PHONE: getADBSpeedDialEntriesMaxNumber &amp;amp;&amp;amp; getMaxSpeedDialEntries&lt;br /&gt;
 4433 - NAV: useFreeTextSearch &amp;amp;&amp;amp; useNvcTextSearch&lt;br /&gt;
 4434 - NAV: alternativeRoutesWithStopOverAreDisabled&lt;br /&gt;
 4436 - NAV: isGoogleMapRestricted / isGoogleMapRestrictedPoiOnly&lt;br /&gt;
 4440 - NAV: MaxFavoriteCount&lt;br /&gt;
 4441 - NAV: isUncrowdedRoadsCheckboxAvailable&lt;br /&gt;
 4442 - BT/WLAN: isTetheringCoded&lt;br /&gt;
 4445 - NAV: autozoom → manoeuvreZoomEnable&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4456 - NAV: isTrailerModeAvailable&lt;br /&gt;
 4462 - NAV: isWeatherOnMapPresent&lt;br /&gt;
 4463 - SWDL: isUotaTravelCaseAllowed&lt;br /&gt;
 4464 - SWDL: getUotaUpdateRegionCount&lt;br /&gt;
 4465 - SWDL: showUotaSysProposalWithoutLicense&lt;br /&gt;
 4466 - SWDL: isUotaNavDBMergeProcessNeeded&lt;br /&gt;
 4467 - SWDL: preselectUOTASysProposals&lt;br /&gt;
 4474 - NAV: setMaxCountPerSource → unrestricted&lt;br /&gt;
 4477 - ONLINE: ppoi&lt;br /&gt;
 4479 - NAV: AlternativeRouteState#resetSettings() default setting&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4490 - AUDIO: volumeOnOffRange related&lt;br /&gt;
 4499 - NAV: isTrafficEventNoticeMapAvailable&lt;br /&gt;
 4511 - SWDL: isSortingUotaRegionByIsoCode&lt;br /&gt;
 4518 - WIDGET: createTouchController related&lt;br /&gt;
 4519 - TONE: sub/treb/bass range related&lt;br /&gt;
 4524 - ONLINE: primaryEngine&lt;br /&gt;
 4525 - ONLINE: secondaryEngine&lt;br /&gt;
 4526 - ONLINE: serviceDiscovery&lt;br /&gt;
 4527 - AUDIO: on/off volume range related&lt;br /&gt;
 4537 - NAV: betterRouteFoundTimeDelayInMs (value * 60000)&lt;br /&gt;
 4542 - TONE: fader/balance Porsche related&lt;br /&gt;
 4543 - SWDL: getUotaProgressDownloadPartPercentage&lt;br /&gt;
 4544 - SWDL: getUotaProgressMapintegrationPartPercentage&lt;br /&gt;
 4548 - NAV: poiWarningFeatureActive&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4575 - NAV: getRouteInfoConfigMode&lt;br /&gt;
 4577 - TUNER: getDatabaseRegion&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4589 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4590 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4591 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4592 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4596 - TONE: isReadinessSoundCoded&lt;br /&gt;
 4603 - SDS: isVoiceBargeInActive related&lt;br /&gt;
 4604 - TONE: activateOnOffButtons&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5542 - SWDL: isUotaLecensingAlowed&lt;br /&gt;
 5571 - BaiduCarLife related&lt;br /&gt;
 5572 - TUNER: isTaggingSupported &amp;amp;&amp;amp; MEDIA: iap2Supported&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5614 - ONLINE: initGPSPopupController related&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=417</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=417"/>
		<updated>2026-03-27T16:38:48Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* 3000 - 3999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 442 - huRegion&lt;br /&gt;
 462 - CONFIG: applyPhoneSettings related&lt;br /&gt;
 463 - PHONE: nadCoded&lt;br /&gt;
 464 - rightHandDrive&lt;br /&gt;
 466 - isA3 || isB9 || isQ1 || isQ5 || isQ7&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3834 - NAV: isRangeMapDisplayPresent; isAdvancedRangeDisplayAvailable()&lt;br /&gt;
 3858 - CAR: isDrivingSchoolActive&lt;br /&gt;
 3866 - NAV: isPreferredGasStationsPresent&lt;br /&gt;
 3867 - isOnlineMediaAvailable() &amp;amp;&amp;amp; !isServiceDiscoveryAvailable()&lt;br /&gt;
 3877 - NAV: navStreetviewOverviewmap&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
 3919 - this.codingData.getVariantInfo().isMMIRadio()&lt;br /&gt;
 3967 - CarCoding: eolCodingOnlineMedia&lt;br /&gt;
 3969 - isUpdateOverTheAirFeatureEnabled&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
&lt;br /&gt;
 4219 - eSimAvailable&lt;br /&gt;
 4237 - terminalmode.gal AndroidAuto related&lt;br /&gt;
 4238 - terminalmode.dio CarPlay related&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4252 - isEniCoded&lt;br /&gt;
 4254 - ADDRESSBOOK: getMaxPublicEntries&lt;br /&gt;
 4255 - ADDRESSBOOK: getDefaultSortOrder&lt;br /&gt;
 4256 - ADDRESSBOOK: getMaxPhoneEntries&lt;br /&gt;
 4258 - ADDRESSBOOK: getDefaultPublicVisibility&lt;br /&gt;
 4259 - ADDRESSBOOK vcard import count related&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
 4306 - MESSAGES: isArabicLanguageAvailable&lt;br /&gt;
 4323 - TrafficInfoJP related&lt;br /&gt;
 4324 - InfoKR related&lt;br /&gt;
 4325 - isETCAvailable&lt;br /&gt;
 4347 - TUNER: registerSdarsSeekDSI related&lt;br /&gt;
 4348 - DISPLAYMANAGER: getTargetOffsetXY &amp;amp;&amp;amp; getCroppingResolution&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4372 - getETCCardRemiderTimeout&lt;br /&gt;
 4383 - isClusterMapAvailable&lt;br /&gt;
 4388 - isClusterKDKAvailable&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4396 - NAV: isMekkaCompassAvailable&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4410 - NAV: isPredictiveNav&lt;br /&gt;
 4416 - NAV: isRubberbandAvailable related&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4422 - NAV: isHMIScrollHairsEnabled&lt;br /&gt;
 4424 - PHONE: getSpeedDialType&lt;br /&gt;
 4425 - PHONE: getADBSpeedDialEntriesMaxNumber &amp;amp;&amp;amp; getMaxSpeedDialEntries&lt;br /&gt;
 4433 - NAV: useFreeTextSearch &amp;amp;&amp;amp; useNvcTextSearch&lt;br /&gt;
 4434 - NAV: alternativeRoutesWithStopOverAreDisabled&lt;br /&gt;
 4436 - NAV: isGoogleMapRestricted / isGoogleMapRestrictedPoiOnly&lt;br /&gt;
 4440 - NAV: MaxFavoriteCount&lt;br /&gt;
 4441 - NAV: isUncrowdedRoadsCheckboxAvailable&lt;br /&gt;
 4442 - BT/WLAN: isTetheringCoded&lt;br /&gt;
 4445 - NAV: autozoom → manoeuvreZoomEnable&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4456 - NAV: isTrailerModeAvailable&lt;br /&gt;
 4462 - NAV: isWeatherOnMapPresent&lt;br /&gt;
 4463 - SWDL: isUotaTravelCaseAllowed&lt;br /&gt;
 4464 - SWDL: getUotaUpdateRegionCount&lt;br /&gt;
 4465 - SWDL: showUotaSysProposalWithoutLicense&lt;br /&gt;
 4466 - SWDL: isUotaNavDBMergeProcessNeeded&lt;br /&gt;
 4467 - SWDL: preselectUOTASysProposals&lt;br /&gt;
 4474 - NAV: setMaxCountPerSource → unrestricted&lt;br /&gt;
 4477 - ONLINE: ppoi&lt;br /&gt;
 4479 - NAV: AlternativeRouteState#resetSettings() default setting&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4490 - AUDIO: volumeOnOffRange related&lt;br /&gt;
 4499 - NAV: isTrafficEventNoticeMapAvailable&lt;br /&gt;
 4511 - SWDL: isSortingUotaRegionByIsoCode&lt;br /&gt;
 4518 - WIDGET: createTouchController related&lt;br /&gt;
 4519 - TONE: sub/treb/bass range related&lt;br /&gt;
 4524 - ONLINE: primaryEngine&lt;br /&gt;
 4525 - ONLINE: secondaryEngine&lt;br /&gt;
 4526 - ONLINE: serviceDiscovery&lt;br /&gt;
 4527 - AUDIO: on/off volume range related&lt;br /&gt;
 4537 - NAV: betterRouteFoundTimeDelayInMs (value * 60000)&lt;br /&gt;
 4542 - TONE: fader/balance Porsche related&lt;br /&gt;
 4543 - SWDL: getUotaProgressDownloadPartPercentage&lt;br /&gt;
 4544 - SWDL: getUotaProgressMapintegrationPartPercentage&lt;br /&gt;
 4548 - NAV: poiWarningFeatureActive&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4575 - NAV: getRouteInfoConfigMode&lt;br /&gt;
 4577 - TUNER: getDatabaseRegion&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4589 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4590 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4591 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4592 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4596 - TONE: isReadinessSoundCoded&lt;br /&gt;
 4603 - SDS: isVoiceBargeInActive related&lt;br /&gt;
 4604 - TONE: activateOnOffButtons&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5542 - SWDL: isUotaLecensingAlowed&lt;br /&gt;
 5571 - BaiduCarLife related&lt;br /&gt;
 5572 - TUNER: isTaggingSupported &amp;amp;&amp;amp; MEDIA: iap2Supported&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5614 - ONLINE: initGPSPopupController related&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=416</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=416"/>
		<updated>2026-03-24T20:18:15Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; 200009 ← source selection&lt;br /&gt;
 &lt;br /&gt;
 300000 ← entertainment drawer&lt;br /&gt;
 300164 ← updateSuppServiceHFP&lt;br /&gt;
 &lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
 1700000 ← UpdateInterrupted&lt;br /&gt;
 1700002 ← UpdateFailure&lt;br /&gt;
 1700003 ← UpdateSuccessful&lt;br /&gt;
 1700009 ← CompatibilityCheckFailure&lt;br /&gt;
 1700010 ← custDownloadInfoPopup&lt;br /&gt;
 1700017 ← SummaryChanged&lt;br /&gt;
 1700069 ← custDownloadLeaveProgress&lt;br /&gt;
&lt;br /&gt;
 // one of those is partial popup on the right, most likely&lt;br /&gt;
 2100008 ← OPS popup&lt;br /&gt;
 2100400 ← OPS standalone popup&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
 // all phone related&lt;br /&gt;
  private void removeAllPopups() {&lt;br /&gt;
        this.removePopup(300170);&lt;br /&gt;
        this.removePopup(300171);&lt;br /&gt;
        this.removePopup(300172);&lt;br /&gt;
        this.removePopup(300173);&lt;br /&gt;
        this.removePopup(300174);&lt;br /&gt;
        this.removePopup(300175);&lt;br /&gt;
        this.removePopup(300169);&lt;br /&gt;
        this.removePopup(300168);&lt;br /&gt;
        this.removePopup(300167);&lt;br /&gt;
        this.removePopup(300176);&lt;br /&gt;
        this.removePopup(300166);&lt;br /&gt;
        this.removePopup(300185);&lt;br /&gt;
        this.removePopup(300186);&lt;br /&gt;
        this.removePopup(300183);&lt;br /&gt;
        this.removePopup(300184);&lt;br /&gt;
        this.removePopup(300181);&lt;br /&gt;
        this.removePopup(300182);&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=415</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=415"/>
		<updated>2026-03-19T22:09:31Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; 200009 ← source selection&lt;br /&gt;
 &lt;br /&gt;
 300000 ← entertainment drawer&lt;br /&gt;
 300164 ← updateSuppServiceHFP&lt;br /&gt;
 &lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
&lt;br /&gt;
 1700000 ← SWDL&lt;br /&gt;
&lt;br /&gt;
 // one of those is partial popup on the right, most likely&lt;br /&gt;
 2100008 ← OPS popup&lt;br /&gt;
 2100400 ← OPS standalone popup&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
 // all phone related&lt;br /&gt;
  private void removeAllPopups() {&lt;br /&gt;
        this.removePopup(300170);&lt;br /&gt;
        this.removePopup(300171);&lt;br /&gt;
        this.removePopup(300172);&lt;br /&gt;
        this.removePopup(300173);&lt;br /&gt;
        this.removePopup(300174);&lt;br /&gt;
        this.removePopup(300175);&lt;br /&gt;
        this.removePopup(300169);&lt;br /&gt;
        this.removePopup(300168);&lt;br /&gt;
        this.removePopup(300167);&lt;br /&gt;
        this.removePopup(300176);&lt;br /&gt;
        this.removePopup(300166);&lt;br /&gt;
        this.removePopup(300185);&lt;br /&gt;
        this.removePopup(300186);&lt;br /&gt;
        this.removePopup(300183);&lt;br /&gt;
        this.removePopup(300184);&lt;br /&gt;
        this.removePopup(300181);&lt;br /&gt;
        this.removePopup(300182);&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=414</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=414"/>
		<updated>2026-03-19T19:44:39Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* 4000 - 4999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 442 - huRegion&lt;br /&gt;
 462 - CONFIG: applyPhoneSettings related&lt;br /&gt;
 463 - PHONE: nadCoded&lt;br /&gt;
 464 - rightHandDrive&lt;br /&gt;
 466 - isA3 || isB9 || isQ1 || isQ5 || isQ7&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3858 - isDrivingSchoolActive&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
&lt;br /&gt;
 4219 - eSimAvailable&lt;br /&gt;
 4237 - terminalmode.gal AndroidAuto related&lt;br /&gt;
 4238 - terminalmode.dio CarPlay related&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4252 - isEniCoded&lt;br /&gt;
 4254 - ADDRESSBOOK: getMaxPublicEntries&lt;br /&gt;
 4255 - ADDRESSBOOK: getDefaultSortOrder&lt;br /&gt;
 4256 - ADDRESSBOOK: getMaxPhoneEntries&lt;br /&gt;
 4258 - ADDRESSBOOK: getDefaultPublicVisibility&lt;br /&gt;
 4259 - ADDRESSBOOK vcard import count related&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
 4306 - MESSAGES: isArabicLanguageAvailable&lt;br /&gt;
 4323 - TrafficInfoJP related&lt;br /&gt;
 4324 - InfoKR related&lt;br /&gt;
 4325 - isETCAvailable&lt;br /&gt;
 4347 - TUNER: registerSdarsSeekDSI related&lt;br /&gt;
 4348 - DISPLAYMANAGER: getTargetOffsetXY &amp;amp;&amp;amp; getCroppingResolution&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4372 - getETCCardRemiderTimeout&lt;br /&gt;
 4383 - isClusterMapAvailable&lt;br /&gt;
 4388 - isClusterKDKAvailable&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4396 - NAV: isMekkaCompassAvailable&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4410 - NAV: isPredictiveNav&lt;br /&gt;
 4416 - NAV: isRubberbandAvailable related&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4422 - NAV: isHMIScrollHairsEnabled&lt;br /&gt;
 4424 - PHONE: getSpeedDialType&lt;br /&gt;
 4425 - PHONE: getADBSpeedDialEntriesMaxNumber &amp;amp;&amp;amp; getMaxSpeedDialEntries&lt;br /&gt;
 4433 - NAV: useFreeTextSearch &amp;amp;&amp;amp; useNvcTextSearch&lt;br /&gt;
 4434 - NAV: alternativeRoutesWithStopOverAreDisabled&lt;br /&gt;
 4436 - NAV: isGoogleMapRestricted / isGoogleMapRestrictedPoiOnly&lt;br /&gt;
 4440 - NAV: MaxFavoriteCount&lt;br /&gt;
 4441 - NAV: isUncrowdedRoadsCheckboxAvailable&lt;br /&gt;
 4442 - BT/WLAN: isTetheringCoded&lt;br /&gt;
 4445 - NAV: autozoom → manoeuvreZoomEnable&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4456 - NAV: isTrailerModeAvailable&lt;br /&gt;
 4462 - NAV: isWeatherOnMapPresent&lt;br /&gt;
 4463 - SWDL: isUotaTravelCaseAllowed&lt;br /&gt;
 4464 - SWDL: getUotaUpdateRegionCount&lt;br /&gt;
 4465 - SWDL: showUotaSysProposalWithoutLicense&lt;br /&gt;
 4466 - SWDL: isUotaNavDBMergeProcessNeeded&lt;br /&gt;
 4467 - SWDL: preselectUOTASysProposals&lt;br /&gt;
 4474 - NAV: setMaxCountPerSource → unrestricted&lt;br /&gt;
 4477 - ONLINE: ppoi&lt;br /&gt;
 4479 - NAV: AlternativeRouteState#resetSettings() default setting&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4490 - AUDIO: volumeOnOffRange related&lt;br /&gt;
 4499 - NAV: isTrafficEventNoticeMapAvailable&lt;br /&gt;
 4511 - SWDL: isSortingUotaRegionByIsoCode&lt;br /&gt;
 4518 - WIDGET: createTouchController related&lt;br /&gt;
 4519 - TONE: sub/treb/bass range related&lt;br /&gt;
 4524 - ONLINE: primaryEngine&lt;br /&gt;
 4525 - ONLINE: secondaryEngine&lt;br /&gt;
 4526 - ONLINE: serviceDiscovery&lt;br /&gt;
 4527 - AUDIO: on/off volume range related&lt;br /&gt;
 4537 - NAV: betterRouteFoundTimeDelayInMs (value * 60000)&lt;br /&gt;
 4542 - TONE: fader/balance Porsche related&lt;br /&gt;
 4543 - SWDL: getUotaProgressDownloadPartPercentage&lt;br /&gt;
 4544 - SWDL: getUotaProgressMapintegrationPartPercentage&lt;br /&gt;
 4548 - NAV: poiWarningFeatureActive&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4575 - NAV: getRouteInfoConfigMode&lt;br /&gt;
 4577 - TUNER: getDatabaseRegion&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4589 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4590 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4591 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4592 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4596 - TONE: isReadinessSoundCoded&lt;br /&gt;
 4603 - SDS: isVoiceBargeInActive related&lt;br /&gt;
 4604 - TONE: activateOnOffButtons&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5542 - SWDL: isUotaLecensingAlowed&lt;br /&gt;
 5571 - BaiduCarLife related&lt;br /&gt;
 5572 - TUNER: isTaggingSupported &amp;amp;&amp;amp; MEDIA: iap2Supported&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5614 - ONLINE: initGPSPopupController related&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=413</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=413"/>
		<updated>2026-03-19T19:25:20Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* 4000 - 4999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 442 - huRegion&lt;br /&gt;
 462 - CONFIG: applyPhoneSettings related&lt;br /&gt;
 463 - PHONE: nadCoded&lt;br /&gt;
 464 - rightHandDrive&lt;br /&gt;
 466 - isA3 || isB9 || isQ1 || isQ5 || isQ7&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3858 - isDrivingSchoolActive&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4456 - NAV: isTrailerModeAvailable&lt;br /&gt;
 4462 - NAV: isWeatherOnMapPresent&lt;br /&gt;
 4463 - SWDL: isUotaTravelCaseAllowed&lt;br /&gt;
 4464 - SWDL: getUotaUpdateRegionCount&lt;br /&gt;
 4465 - SWDL: showUotaSysProposalWithoutLicense&lt;br /&gt;
 4466 - SWDL: isUotaNavDBMergeProcessNeeded&lt;br /&gt;
 4467 - SWDL: preselectUOTASysProposals&lt;br /&gt;
 4474 - NAV: setMaxCountPerSource → unrestricted&lt;br /&gt;
 4477 - ONLINE: ppoi&lt;br /&gt;
 4479 - NAV: AlternativeRouteState#resetSettings() default setting&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4490 - AUDIO: volumeOnOffRange related&lt;br /&gt;
 4499 - NAV: isTrafficEventNoticeMapAvailable&lt;br /&gt;
 4511 - SWDL: isSortingUotaRegionByIsoCode&lt;br /&gt;
 4518 - WIDGET: createTouchController related&lt;br /&gt;
 4519 - TONE: sub/treb/bass range related&lt;br /&gt;
 4524 - ONLINE: primaryEngine&lt;br /&gt;
 4525 - ONLINE: secondaryEngine&lt;br /&gt;
 4526 - ONLINE: serviceDiscovery&lt;br /&gt;
 4527 - AUDIO: on/off volume range related&lt;br /&gt;
 4537 - NAV: betterRouteFoundTimeDelayInMs (value * 60000)&lt;br /&gt;
 4542 - TONE: fader/balance Porsche related&lt;br /&gt;
 4543 - SWDL: getUotaProgressDownloadPartPercentage&lt;br /&gt;
 4544 - SWDL: getUotaProgressMapintegrationPartPercentage&lt;br /&gt;
 4548 - NAV: poiWarningFeatureActive&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4575 - NAV: getRouteInfoConfigMode&lt;br /&gt;
 4577 - TUNER: getDatabaseRegion&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4589 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4590 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4591 - NAV: isVzoLgiTrackerPresent related&lt;br /&gt;
 4592 - NAV: isVzoLgiDownloadPresent related&lt;br /&gt;
 4596 - TONE: isReadinessSoundCoded&lt;br /&gt;
 4603 - SDS: isVoiceBargeInActive related&lt;br /&gt;
 4604 - TONE: activateOnOffButtons&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5542 - SWDL: isUotaLecensingAlowed&lt;br /&gt;
 5571 - BaiduCarLife related&lt;br /&gt;
 5572 - TUNER: isTaggingSupported &amp;amp;&amp;amp; MEDIA: iap2Supported&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5614 - ONLINE: initGPSPopupController related&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=412</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=412"/>
		<updated>2026-03-19T19:05:26Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 442 - huRegion&lt;br /&gt;
 462 - CONFIG: applyPhoneSettings related&lt;br /&gt;
 463 - PHONE: nadCoded&lt;br /&gt;
 464 - rightHandDrive&lt;br /&gt;
 466 - isA3 || isB9 || isQ1 || isQ5 || isQ7&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3858 - isDrivingSchoolActive&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4603 - SDS: isVoiceBargeInActive related&lt;br /&gt;
 4604 - TONE: activateOnOffButtons&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5542 - SWDL: isUotaLecensingAlowed&lt;br /&gt;
 5571 - BaiduCarLife related&lt;br /&gt;
 5572 - TUNER: isTaggingSupported &amp;amp;&amp;amp; MEDIA: iap2Supported&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5614 - ONLINE: initGPSPopupController related&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=411</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=411"/>
		<updated>2026-03-19T18:44:54Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0 - 999 ==&lt;br /&gt;
 466 - isA3 || isB9 || isQ1 || isQ5 || isQ7&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 556 - NAV: isPreviewMapPresent&lt;br /&gt;
&lt;br /&gt;
== 3000 - 3999 ==&lt;br /&gt;
 3858 - isDrivingSchoolActive&lt;br /&gt;
 3892 - SystemSDIS&lt;br /&gt;
&lt;br /&gt;
== 4000 - 4999 ==&lt;br /&gt;
 4004 - eMail&lt;br /&gt;
 4108 - isGraceNoteLocal&lt;br /&gt;
 4120 - SWDL: getUotaPackageTypeFilter &amp;amp;&amp;amp; RemoteHMI: uotaMap&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
 4249 - address book and/or messaging&lt;br /&gt;
 4263 - TTS (Text-To-Speech) related&lt;br /&gt;
 4283 - isFixedSpeedSeeker (media scroll?)&lt;br /&gt;
 4284 - media seek timer (ms)?&lt;br /&gt;
 4368 - MESSAGES: blockContentWhileDriving &amp;amp;&amp;amp; NAV: isLockConceptEnabled&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;br /&gt;
 4404 - isScrollByCrossHairsEnabled&lt;br /&gt;
 4405 - NAV: isIntellidestPickHelpAvailable&lt;br /&gt;
 4417 - NAV: isSemidynamicRgAvailable&lt;br /&gt;
 4420 - isNavDBOnSDCard&lt;br /&gt;
 4450 - NAV: isTrafficMiniMapAvailable&lt;br /&gt;
 4485 - NAV: isTrafficMapAvailable&lt;br /&gt;
 4519 - SOUND: subwoofer, trebble, bass range&lt;br /&gt;
 4572 - PHONE: mic mute?&lt;br /&gt;
 4581 - isG21High&lt;br /&gt;
 4588 - NAV: isOnlineTrafficAlwaysActive&lt;br /&gt;
 4633 - MEDIA: logTrackInfoToSerialPort&lt;br /&gt;
&lt;br /&gt;
== 5000 - 5999 ==&lt;br /&gt;
 5541 - RemoteHMI: propLongPrompts&lt;br /&gt;
 5581 - NAV: isPoiSelectionTreeAvailable&lt;br /&gt;
 5616 - NAV: isGooglePoisAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=Persistence&amp;diff=410</id>
		<title>Persistence</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=Persistence&amp;diff=410"/>
		<updated>2026-03-19T17:55:01Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* 1006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Persistence Client - PC ==&lt;br /&gt;
//TODO&lt;br /&gt;
&lt;br /&gt;
== Namespaces and keys ==&lt;br /&gt;
=== 37 ===&lt;br /&gt;
* 100672768 - TVEngineering.configureGUI&lt;br /&gt;
&lt;br /&gt;
=== 256 ===&lt;br /&gt;
* 1 - MU skin?&lt;br /&gt;
* 20 - LastmodeStorage (checksum is CRC32, Reversed 0xEDB88320, Little Endian (DCBA))&lt;br /&gt;
* 250 - Clock format&lt;br /&gt;
&lt;br /&gt;
=== 257 ===&lt;br /&gt;
SWDL?&lt;br /&gt;
* 1 - currentUpdate.displayName&lt;br /&gt;
* 2 - currentUpdate.newVersion&lt;br /&gt;
* 4 - getCustomerNaviDbChoice&lt;br /&gt;
* 7 - LastInstalledReleaseVersion&lt;br /&gt;
* 5000 - deviceNames&lt;br /&gt;
* 5001 - displayNames&lt;br /&gt;
* 5002 - deviceVersions&lt;br /&gt;
* 5003 - mediaId &lt;br /&gt;
* 5004 - naviDbChoices&lt;br /&gt;
* 5006 - SWDL related&lt;br /&gt;
* 5007 - InstalledPackageIds&lt;br /&gt;
&lt;br /&gt;
=== 262 ===&lt;br /&gt;
* 20 - something keyboard related&lt;br /&gt;
* 100 - MemCPU flag&lt;br /&gt;
* 101 - ScreenInfo flag&lt;br /&gt;
* 102 - EventQueueStatistics flag&lt;br /&gt;
&lt;br /&gt;
=== 1002 ===&lt;br /&gt;
Media app?&lt;br /&gt;
* 19 - ParentalPassword&lt;br /&gt;
* 220 - reset to factory settings?&lt;br /&gt;
&lt;br /&gt;
=== 1003 ===&lt;br /&gt;
* 90 - SIM card ID&lt;br /&gt;
* 100 - Mobile SIM card setting&lt;br /&gt;
&lt;br /&gt;
=== 1004 ===&lt;br /&gt;
Navi app?&lt;br /&gt;
* 10 - rgActive?&lt;br /&gt;
* 20 - inside area&lt;br /&gt;
* 30 - time stamp&lt;br /&gt;
* 200 - dayNightView&lt;br /&gt;
* 210 - autoZoom&lt;br /&gt;
* 220 - mapType&lt;br /&gt;
* 240 - orientation&lt;br /&gt;
* 250 - additionalInfos&lt;br /&gt;
* 260 - tmcSymbols&lt;br /&gt;
* 270 - show3DLandmarks&lt;br /&gt;
* 280 - favorites&lt;br /&gt;
* 290 - Cluster Input?&lt;br /&gt;
* 300 - guidanceMode&lt;br /&gt;
* 310 - announcementOnCall&lt;br /&gt;
* 320 - topPrivate&lt;br /&gt;
* 330 - show3DBuildings&lt;br /&gt;
* 360 - Trip settings?&lt;br /&gt;
* 370 - &lt;br /&gt;
* 380 - mapRepresentation&lt;br /&gt;
* 390 - &lt;br /&gt;
* 400 - Fuel Warning&lt;br /&gt;
* 410 - systemLayers&lt;br /&gt;
* 420 - splitScreen&lt;br /&gt;
* 430 - brandedPois&lt;br /&gt;
* 440 - crossingView&lt;br /&gt;
* 450 - speedAndFlowFreeflow&lt;br /&gt;
* 460 - speedAndFlowCongestions&lt;br /&gt;
* 470 - picNavIcons&lt;br /&gt;
* 600 - zoomLevelIndex&lt;br /&gt;
* 840 - &lt;br /&gt;
&lt;br /&gt;
=== 1005 ===&lt;br /&gt;
TMC app&lt;br /&gt;
* 10 - AutoRedirect&lt;br /&gt;
* 20 - TelAnnouncement&lt;br /&gt;
* 30 - TmcAnnouncement&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=== 1006 ===&lt;br /&gt;
CAR app&lt;br /&gt;
* 0 - Charisma?&lt;br /&gt;
* 1 - Charisma?&lt;br /&gt;
* 2 - Charisma?&lt;br /&gt;
* 3 - Charisma?&lt;br /&gt;
* 4 - Charisma?&lt;br /&gt;
* 5 - Charisma?&lt;br /&gt;
* 10 - Joker Key function&lt;br /&gt;
* 30 - Charisma?&lt;br /&gt;
* 31 - Charisma?&lt;br /&gt;
* 32 - Charisma?&lt;br /&gt;
* 33 - Charisma?&lt;br /&gt;
* 40 - Driving School mode enabled&lt;br /&gt;
* 50 - OPS view mode&lt;br /&gt;
* 80-86 - AirCondition&lt;br /&gt;
* 90-97 - AC Seat&lt;br /&gt;
* 117 - Charisma?&lt;br /&gt;
* 118 - Charisma?&lt;br /&gt;
&lt;br /&gt;
=== 1007 ===&lt;br /&gt;
TV app?&lt;br /&gt;
* 1 - Active source&lt;br /&gt;
&lt;br /&gt;
=== 1008 ===&lt;br /&gt;
* 2 - Audio Focus Client&lt;br /&gt;
&lt;br /&gt;
=== 1009 ===&lt;br /&gt;
* 1 - Wireless Charging Reminder&lt;br /&gt;
* 10 - Wireless Charging Reminder reset to factory&lt;br /&gt;
* 19 - User Mute&lt;br /&gt;
* 29 - Touch sound enabled&lt;br /&gt;
&lt;br /&gt;
=== 1011 ===&lt;br /&gt;
User system settings&lt;br /&gt;
* 30 - automaticModeActive&lt;br /&gt;
* 31 - timeZoneautomaticActive&lt;br /&gt;
* 40 - shallShowUserHints&lt;br /&gt;
* 41 - initialUserHintConfig&lt;br /&gt;
* 45 - proximity sensor&lt;br /&gt;
* 47 - display footer&lt;br /&gt;
* 49 - arrow hardKeys?&lt;br /&gt;
* 101 - persistTimeFormat&lt;br /&gt;
* 102 - persistDateFormat&lt;br /&gt;
&lt;br /&gt;
=== 1023 ===&lt;br /&gt;
* 10 - WarnFlagFromPersistence&lt;br /&gt;
* 40 - privacy mode&lt;br /&gt;
* 41 - SmartCardStatus&lt;br /&gt;
* 42 - StorageValue&lt;br /&gt;
&lt;br /&gt;
=== 1024 ===&lt;br /&gt;
ENI?&lt;br /&gt;
&lt;br /&gt;
=== 1030 ===&lt;br /&gt;
SDS?&lt;br /&gt;
&lt;br /&gt;
=== 1115 ===&lt;br /&gt;
Exlap&lt;br /&gt;
* 1 - Exlap status&lt;br /&gt;
&lt;br /&gt;
== sqlite.db ==&lt;br /&gt;
//TODO&lt;br /&gt;
&lt;br /&gt;
== whats is where ==&lt;br /&gt;
//TODO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref&amp;gt;https://docs.google.com/spreadsheets/d/11jJueBEbyBhkcEXmLNO3LIE5JX-ozgO3zKnJfRz5heM&amp;lt;/ref&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=409</id>
		<title>SPORT HMI for Audi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=409"/>
		<updated>2026-03-13T10:58:51Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* Modifications with custom data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MMIHigh Sportanzeigen.png|thumb|alt=Audi MMI MIB2 SportHMI mockup|Audi MMI SportHMI mockup]]&lt;br /&gt;
&lt;br /&gt;
There are some indications of Sport_HMI app for Audi MIB2 firmware. But no-one yet have enabled it. Let&#039;s check methods from the VW/Skoda/Seat units and let&#039;s check how the [[LSD.JXE]] in Audi looks like when it comes to references to sport modes.&lt;br /&gt;
&lt;br /&gt;
== VW/SEAT/Skoda SportHMI enabling methods ==&lt;br /&gt;
For whatever reason, VW/SEAT/Skoda vehicles support SPORT HMI out from the factory, without some deep modifications of the system. All it needs is adaptation and FEC/SWaP code.&lt;br /&gt;
&lt;br /&gt;
Details: [[SPORT HMI Performance Monitor]]&lt;br /&gt;
&lt;br /&gt;
== GUI assets in Audi firmware ==&lt;br /&gt;
[[File:Audi SportHMI kzb assets.jpg|thumb|alt=Audi MIB2 MMI SportHMI GUI assets|Audi MIB2 MMI SportHMI GUI assets]]&lt;br /&gt;
 &lt;br /&gt;
There&#039;s a file &amp;lt;code&amp;gt;SPORT_HMI.kzb&amp;lt;/code&amp;gt; - a .kzb package. After extracting, it looks like Audi firmware contains some GUI assets for Sport Display submenu. There&#039;s clock gauge for power and torque, as well as bar gauge for temperature and boost. Also rendered fonts for the large readouts inside the clock gauges.&lt;br /&gt;
&lt;br /&gt;
So if we are looking for needed textures - all is here.&lt;br /&gt;
&lt;br /&gt;
Here we can see that those textures are referenced in [[LSD.JXE]] classes:&lt;br /&gt;
&lt;br /&gt;
 public static String SPORT_HMI = &amp;quot;SPORT_HMI.kzb&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 public static int mib2_sport_hmi_kzbFile = 100;&lt;br /&gt;
&lt;br /&gt;
== SportHMI adaptation channels ==&lt;br /&gt;
We all know that there are adaptation channels related to the Performance Monitor in VW, SEAT, and Skoda → http://wiki.mib-helper.com/index.php?title=SPORT_HMI_Performance_Monitor#Adaptation&lt;br /&gt;
&lt;br /&gt;
And it looks like in Audi those are also connected to Sport Display function. Look at this part of code:&lt;br /&gt;
        if (this.isComponentAvailable((short)52, carFuncAdap)) {&lt;br /&gt;
            this.addCarComponent(new SportComponentEvo(this));&lt;br /&gt;
            this.addCarComponent(new SportKombiComponentEvo(this));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;isComponentAvailable((short)52, carFuncAdap)&amp;lt;/code&amp;gt; simply checks if 52nd channel in &amp;lt;code&amp;gt;Car_Function_Adaptations_Gen2&amp;lt;/code&amp;gt; section is set to &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;. And 52nd channel is... You know which one - &amp;lt;code&amp;gt;[LO]_menu_display_SportHMI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sport and Sport Kombi classes ==&lt;br /&gt;
It looks like the app logic is split into two separate classes:&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI-Kombi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Kombi&amp;lt;/code&amp;gt; is designed for instrument cluster data (&amp;quot;Kombiinstrument&amp;quot;), which is the oil temperature.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a statement that creates the screen:&lt;br /&gt;
 protected Screen createScreen(int n, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            (...)&lt;br /&gt;
            case 600289: {&lt;br /&gt;
                return CarScreenBag1.cARSPORTMAIN(this, n2);&lt;br /&gt;
&lt;br /&gt;
This one returns name of the screen for diagnostic purposes&lt;br /&gt;
 case 600289: {&lt;br /&gt;
     return &amp;quot;CAR_SPORT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And this one executes conditions&lt;br /&gt;
 @Override&lt;br /&gt;
    public void executeCondition(int n, int n2, HMIView[] hMIViewArray, int n3) {&lt;br /&gt;
        switch (n2) {&lt;br /&gt;
        (...)              &lt;br /&gt;
            case 600289: {&lt;br /&gt;
                this.executeConditioncARSPORTMAINScreen(n, hMIViewArray, n3);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
...which look like this:&lt;br /&gt;
     private void executeConditioncARSPORTMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 601056: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(!this.evaluateSimpleChoiceModelValueEqualsCondition(-534050560, n2, -214497024));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602113: {&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[1] == null) break;&lt;br /&gt;
                ((OilTemperatureGaugeController)hMIViewArray[1]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602114: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ChargingAirPressureGaugeController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(36702464, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602116: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(70256896, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602118: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(103811328, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
From the above:&lt;br /&gt;
* 602113 - Oil temperature&lt;br /&gt;
* 602114 - Boost pressure&lt;br /&gt;
* 602116 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
* 602118 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
State machine class is also referring to the SportHMI:&lt;br /&gt;
 public static final int LD_CAR_SEL_SPORTDISPLAY;&lt;br /&gt;
Meaning of the above would be &amp;quot;Sport Display was selected from the CAR menu Left Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* 601 - SPORT_POWER&lt;br /&gt;
* 602 - SPORT_POWER_MAX&lt;br /&gt;
* 603 - SPORT_POWER_CURRENT&lt;br /&gt;
* 604 - SPORT_TORQUE&lt;br /&gt;
* 605 - SPORT_TORQUE_MAX&lt;br /&gt;
* 606 - SPORT_TORQUE_CURRENT&lt;br /&gt;
* 607 - SPORT_OIL_TEMPERATURE&lt;br /&gt;
* 608 - SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
== Why no Sport submenu in Car menu? ==&lt;br /&gt;
It looks like everything is there. All the programming logic, adaptation to activate, data pulls, GUI assets, inits... So why it is not working?&lt;br /&gt;
&lt;br /&gt;
One of my theories is that at some point of development they decided to move the Sport HMI functionality from MIB to VC. On one side it makes sense - feature will not be duplicated on both displays. But on the other hand VC is optional equipment and not all cars have it.&lt;br /&gt;
&lt;br /&gt;
For whatever reasons it was - they needed to remove Sport HMI from Audi MIB. And by &amp;quot;remove&amp;quot; I mean &amp;quot;make it not visible for user&amp;quot;. That&#039;s why all the mentioned above parts of code and assets are there. So how they did it? And how to restore it?&lt;br /&gt;
&lt;br /&gt;
Maybe let&#039;s analyse how the MENU and CAR MENU structures looks like:&lt;br /&gt;
* Car&lt;br /&gt;
** Audi Drive Select&lt;br /&gt;
** Charging (eTron)&lt;br /&gt;
** Statistics (eTron)&lt;br /&gt;
** Vehicle Settings&lt;br /&gt;
** Drive Assist&lt;br /&gt;
** Air Condition&lt;br /&gt;
** Service and Checks&lt;br /&gt;
** Boardbook&lt;br /&gt;
* Sound&lt;br /&gt;
* Media&lt;br /&gt;
* Phone&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
By the first look, I can see some similarities to the &amp;lt;code&amp;gt;CarEvoMenuEntryStructure.java&amp;lt;/code&amp;gt; class:&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry2 = this.entryFactory.createMenuEntry(1596459264, &amp;quot;CAR_FUNC_CHARISMA&amp;quot;, -282457856);&lt;br /&gt;
 MenuEntry menuEntry3 = this.entryFactory.createMenuEntry(1630013696, &amp;quot;CAR_FUNC_SETTINGS&amp;quot;, -1305802496);&lt;br /&gt;
 MenuEntry menuEntry4 = this.entryFactory.createMenuEntry(1646790912, &amp;quot;CAR_FUNC_DRIVE_ASSIST&amp;quot;, -1339356928);&lt;br /&gt;
 MenuEntry menuEntry5 = this.entryFactory.createMenuEntry(1663568128, &amp;quot;CAR_FUNC_AIR_CONDITION&amp;quot;, -1389688576);&lt;br /&gt;
 MenuEntry menuEntry6 = this.entryFactory.createMenuEntry(1680345344, &amp;quot;CAR_FUNC_AUXHEAT&amp;quot;, -1356134144);&lt;br /&gt;
 MenuEntry menuEntry7 = this.entryFactory.createMenuEntry(10, &amp;quot;CAR_FUNC_AUX_AC)&amp;quot;, -1372911360);&lt;br /&gt;
 MenuEntry menuEntry8 = this.entryFactory.createMenuEntry(11, &amp;quot;CAR_FUNC_AUX_COMBINED)&amp;quot;, 1210976512);&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(1713899776, &amp;quot;CAR_FUNC_SERVICE&amp;quot;, -1322579712);&lt;br /&gt;
 MenuEntry menuEntry10 = this.entryFactory.createMenuEntry(1177094400, &amp;quot;CAR_FUNC_BORDBOOK&amp;quot;, 1412172032);&lt;br /&gt;
 MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(640289024, &amp;quot;CAR_FUNC_CHARGE&amp;quot;, -1842607872);&lt;br /&gt;
 MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(-383121152, &amp;quot;CAR_FUNC_STATISTICS&amp;quot;, -349370112);&lt;br /&gt;
 MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(12, &amp;quot;CAR_FUNC_SPORT&amp;quot;, 120588544);&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s check how the top-level menus are initialised and compare them to the SportHMI class to find what&#039;s missing. Maybe this will point us into the right direction.&lt;br /&gt;
&lt;br /&gt;
After quick check and compare, it looks like there&#039;s one function missing from the SportComponentEvo class. It&#039;s &amp;lt;code&amp;gt;updateMenuEntryVisibility()&amp;lt;/code&amp;gt; that appears in other car submenu classes. Not only those top-level. All of them. Is this it?&lt;br /&gt;
&lt;br /&gt;
== Moment of Doubt ==&lt;br /&gt;
Had a chance to test-drive an Audi SQ7 (4M) and played a bit with the Drive Select functions. There are &amp;quot;off-road&amp;quot; and &amp;quot;allroad&amp;quot; modes which enable additional element - Tilt Angle Display (TAD). This new element is visible directly on the Drive Select screen, and not as a separate submenu in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
So it got me wondering. What if the SportHMI is also just an additional widget that should be displayed on the Drive Select screen when &amp;quot;Sport&amp;quot; or &amp;quot;Race&amp;quot; mode is selected? If so, it would mean that this function might be controlled via Gateway with proper dataset. Or it&#039;s a separate submenu but still enabled with a gateway dataset?&lt;br /&gt;
&lt;br /&gt;
I need to look into the Charisma menu and TAD elements in LSH.JXE...&lt;br /&gt;
&lt;br /&gt;
 private IMenuEntry[] buildMenuCharisma(LogChannel logChannel) {&lt;br /&gt;
  // (...) &lt;br /&gt;
  menuEntry8.setFunctionalStateValues(new int[]{4}); //LIFT&lt;br /&gt;
  menuEntry2.setFunctionalStateValues(new int[]{4}); //OFFROAD&lt;br /&gt;
  menuEntry10.setFunctionalStateValues(new int[]{4}); //LIFT OFFROAD&lt;br /&gt;
  menuEntry5.setFunctionalStateValues(new int[]{8}); //EFFICIENCY&lt;br /&gt;
  // (...) &lt;br /&gt;
  MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(250, &amp;quot;CHARISMA_EFFICIENCY_BCME_ADD_INFO&amp;quot;, 1898776832);&lt;br /&gt;
  MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(252, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMPTION_BARGRAPH&amp;quot;, 1613564160);&lt;br /&gt;
  MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(251, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMER_LIST&amp;quot;, 1915554048);&lt;br /&gt;
  menuEntry11.setChildren(new IMenuEntry[]{menuEntry12, menuEntry13});&lt;br /&gt;
  MenuEntry menuEntry14 = this.entryFactory.createMenuEntry(326, &amp;quot;TAD_MAIN&amp;quot;, 1999374592);&lt;br /&gt;
  MenuEntry menuEntry15 = this.entryFactory.createMenuEntry(328, &amp;quot;TAD_PITCH_ANGLE&amp;quot;, 1965820160);&lt;br /&gt;
  MenuEntry menuEntry16 = this.entryFactory.createMenuEntry(327, &amp;quot;TAD_ROLL_ANGLE&amp;quot;, 1982597376);&lt;br /&gt;
  menuEntry14.setChildren(new IMenuEntry[]{menuEntry15, menuEntry16});&lt;br /&gt;
  return new IMenuEntry[]{menuEntry, menuEntry2, menuEntry3, menuEntry4, menuEntry5, menuEntry7, menuEntry6, menuEntry8, menuEntry10, menuEntry9};&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nope! It looks like only Efficiency Mode and Lift/Offroad Modes have children elements. No SportHMI mentions here. And previously mentioned &amp;lt;code&amp;gt;LD_CAR_SEL_SPORTDISPLAY&amp;lt;/code&amp;gt; was linked to left drawer, which means that the SportHMI needs to be present in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
But there&#039;s a RACE Mode mentioned here and there.&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(238, &amp;quot;CHARISMA_PROFILE_RACE&amp;quot;, 305203456);&lt;br /&gt;
&lt;br /&gt;
 public boolean isRacesport() {&lt;br /&gt;
  return this.racesport;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Maybe that&#039;s it? Maybe the RACE Charisma mode needs to be enabled from the SportHMI to be accessible?&lt;br /&gt;
&lt;br /&gt;
Just to be sure, I will check if there are some &amp;quot;RACE&amp;quot; references in the code. But not now.&lt;br /&gt;
&lt;br /&gt;
== Figuring out the missing data ==&lt;br /&gt;
Played around with KeyCombo (that&#039;s a separate topic) and found that Audi HMI has an build-in app for HMI tests. It shows a lot of data about visible items and data provided by the rest of the car.&lt;br /&gt;
&lt;br /&gt;
Here we can see which information is provided &amp;lt;code&amp;gt;state: 2&amp;lt;/code&amp;gt;, and which is not &amp;lt;code&amp;gt;state: 0&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SportHMI&lt;br /&gt;
  DynamicVehicleInfoHighFrequentViewOptions(&lt;br /&gt;
   longitudinalAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   engineSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   powermeter=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   lateralAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   relChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   absChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentTorque=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   yawRate=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   brakePressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   wheelAngle=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   acceleratorPosition=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   vehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   systemCycleDistance=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   realVehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   shiftLight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   allWheelDriveTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espOversteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espUndersteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   relAllWheelDriveTorque=ViewOption(state: 0, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
  SemiStaticDataViewOptions(&lt;br /&gt;
   maxChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   engineDisplacement=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   typeOfInjectionSystem=ViewOption(state: 2, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
And here we can check which components in the SPORT HMI are fully functional and which are not:&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602119&lt;br /&gt;
        Parent: CAR_MAIN&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER&lt;br /&gt;
            SPORT_TORQUE&lt;br /&gt;
            SPORT_OIL_TEMPERATURE&lt;br /&gt;
            SPORT_AIR_PRESSURE&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602116&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER_MAX&lt;br /&gt;
            SPORT_POWER_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602118&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_TORQUE_MAX&lt;br /&gt;
            SPORT_TORQUE_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
        State: INVISIBLE&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_TORQUE&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
        State: Invisible&lt;br /&gt;
        ModelID: 602113&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602114&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
&lt;br /&gt;
Two things (&amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; are invisible. This partially correlates with unavailable &amp;lt;code&amp;gt;maxTorque&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Is it that this missing data is what&#039;s locking the SPORT submenu to appear? Let&#039;s find out!&lt;br /&gt;
&lt;br /&gt;
== Logging HMI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;run_lsd.sh&amp;lt;/code&amp;gt; script, that starts the &amp;lt;code&amp;gt;LSD.jxe&amp;lt;/code&amp;gt; can be adjusted for logging different components. &lt;br /&gt;
&lt;br /&gt;
=== App.Car.Sport=5 ===&lt;br /&gt;
Let&#039;s start with &amp;lt;code&amp;gt;App.Car.Sport&amp;lt;/code&amp;gt; set to level &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, so it will output some data.&lt;br /&gt;
&lt;br /&gt;
 updateBCViewOptions:BCViewOptions(&lt;br /&gt;
  currentConsumption1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  currentConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  currentRange1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  currentRange2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  totalDistance=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  shortTermAverageConsumption1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  shortTermAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  shortTermGeneral=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  longTermAverageConsumption1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  longTermAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  longTermGeneral=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  cycleAverageConsumption1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  cycleAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  cycleGeneral=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  vZADisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  lifeTipsDisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  consumerDisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  tankLevel1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  tankLevel2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  refuelVolume1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  refuelVolume2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue1Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue2Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue3Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetMenue1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  resetMenue2=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  resetMenue3=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  oilTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  digitalSpeed=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  stopwatch=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  vzaMFA=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  speedWarning=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  gearRecommendation=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  rearSeatbeltWarning=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  indications=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  outsideTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  bcSetFactoryDefault=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  vehicleStateList=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsReset=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsConfig=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  oilTemperatureValue=ViewOption(state: 0,reason: 0), // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
  coolantTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticDistanceEUkm=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticDistanceEUmls=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  totalCurrentRange=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetMaxValues=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  maxValues=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  astaMFA=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTrip=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  configuration=BCConfiguration(&lt;br /&gt;
   primaryEngineType=7,&lt;br /&gt;
   secondaryEngineType=0,&lt;br /&gt;
   fisAdditionalConfiguration=BCFISAdditionalConfiguration(&lt;br /&gt;
    fis1=true,&lt;br /&gt;
    fis2=true,&lt;br /&gt;
    fis3=false,&lt;br /&gt;
    stopWatch=true,&lt;br /&gt;
    oilTemp=false,&lt;br /&gt;
    digitalSpeed=true,&lt;br /&gt;
    refuelVolume=false,&lt;br /&gt;
    speedWarning=true,&lt;br /&gt;
    coolantTemp=false,&lt;br /&gt;
    secondarySpeed=false,&lt;br /&gt;
    vza=true,&lt;br /&gt;
    resetTime=false,&lt;br /&gt;
    comfortPowerConsumption=false,&lt;br /&gt;
    zeroEmissionTime=false,&lt;br /&gt;
    zeroEmissionDistance=false,&lt;br /&gt;
    vzaMfa=false,&lt;br /&gt;
    bcmeConsumerList=false,&lt;br /&gt;
    bcmeLiveTips=false,&lt;br /&gt;
    astaMfa=false&lt;br /&gt;
   ),&lt;br /&gt;
   transmittableElementsVehicleState=BCTransmittableElements(&lt;br /&gt;
    ra0=1,ra1=7,ra2=1,ra3=7,raF=88&lt;br /&gt;
   ),functionSupport=BCFunctionSupport(&lt;br /&gt;
    resetTrip=false)&lt;br /&gt;
   )&lt;br /&gt;
  ),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.720 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateBCOilTemperatureValue:null,&lt;br /&gt;
 valid:2 // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
&lt;br /&gt;
 00:00:42.715 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateSemiStaticVehicleData:SemiStaticVehicleData(&lt;br /&gt;
  maxChargingAirPressure=2.5,&lt;br /&gt;
  maxOutputPower=228,&lt;br /&gt;
  maxTorque=0, // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
  engineDisplacement=2.0,&lt;br /&gt;
  typeOfInjectionSystem=0),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.722 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateDynamicVehicleInfoHighFrequent:DynamicVehicleInfoHighFrequent(&lt;br /&gt;
  longitudinalAcceleration=0.0,&lt;br /&gt;
  engineSpeed=699,&lt;br /&gt;
  powermeter=0,&lt;br /&gt;
  lateralAcceleration=-0.01,&lt;br /&gt;
  relChargingAirPressure=0,&lt;br /&gt;
  absChargingAirPressure=0.29,&lt;br /&gt;
  currentOutputPower=1.8,&lt;br /&gt;
  yawRate=-0.09,&lt;br /&gt;
  brakePressure=0.0,&lt;br /&gt;
  wheelAngle=8,&lt;br /&gt;
  acceleratorPosition=0,&lt;br /&gt;
  vehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  currentTorque=25,&lt;br /&gt;
  systemCycleDistance=0,&lt;br /&gt;
  torqueDistributionFrontLeft=0,&lt;br /&gt;
  torqueDistributionFrontRight=0,&lt;br /&gt;
  torqueDistributionRearLeft=0,&lt;br /&gt;
  torqueDistributionRearRight=0,&lt;br /&gt;
  realVehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  shiftLight=0,&lt;br /&gt;
  allWheelDriveTorque=0,&lt;br /&gt;
  espOversteering=0.0,&lt;br /&gt;
  espUndersteering=0.0,&lt;br /&gt;
  espWheelVelocityFrontLeft=0.0,&lt;br /&gt;
  espWheelVelocityFrontRight=0.0,&lt;br /&gt;
  espWheelVelocityRearLeft=0.0,&lt;br /&gt;
  espWheelVelocityRearRight=0.0,&lt;br /&gt;
  relAllWheelDriveTorque=0.0),&lt;br /&gt;
 valid:1&lt;br /&gt;
&lt;br /&gt;
This proves two things:&lt;br /&gt;
1. Sport_HMI exists, works, creates output, and should be functional.&lt;br /&gt;
2. Some of the data from DSI is not provided or is zeroed.&lt;br /&gt;
&lt;br /&gt;
=== App.Car.MER=5 ===&lt;br /&gt;
Since the Sport_HMI is clearly there, but it&#039;s not visible in the CAR menu, let&#039;s check how the Menu Entry Register logs look like.&lt;br /&gt;
&lt;br /&gt;
 00:00:11.913 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_MAIN&#039;)#setChildren] children=&lt;br /&gt;
 CAR_FUNC_CHARISMA&lt;br /&gt;
 CAR_FUNC_SETTINGS&lt;br /&gt;
 CAR_FUNC_DRIVE_ASSIST&lt;br /&gt;
 CAR_FUNC_AIR_CONDITION&lt;br /&gt;
 CAR_FUNC_AUXHEAT&lt;br /&gt;
 CAR_FUNC_AUX_AC)&lt;br /&gt;
 CAR_FUNC_AUX_COMBINED)&lt;br /&gt;
 CAR_FUNC_SERVICE&lt;br /&gt;
 CAR_FUNC_BORDBOOK&lt;br /&gt;
 CAR_FUNC_CHARGE&lt;br /&gt;
 CAR_FUNC_STATISTICS&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.628 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
 SPORT_TORQUE_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.764 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.765 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
Menu structure is created correctly. Now let&#039;s dig some more and check final status of each SPORT element.&lt;br /&gt;
&lt;br /&gt;
 00:00:34.812 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_MAX&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.084 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_MAX&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.086 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_OIL_TEMPERATURE&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.647 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_AIR_PRESSURE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.649 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
&lt;br /&gt;
It looks like the &amp;lt;code&amp;gt;state=&#039;0&#039;&amp;lt;/code&amp;gt; is reported if the component is working correctly. And two component&#039;s are not. &amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; - same two that were missing or zeroed in DSI-provided data. Huh...&lt;br /&gt;
&lt;br /&gt;
== How to enable it? ==&lt;br /&gt;
I have 4 ideas, actually. Not sure which is best and if any would work.&lt;br /&gt;
# modify SportHMI classes&lt;br /&gt;
# patch DSI with missing data&lt;br /&gt;
# deregister components from Menu Entry that cause it to be invisible&lt;br /&gt;
# create a shortcut for SportHMI to bypass the Menu Entry Registry all together&lt;br /&gt;
&lt;br /&gt;
== Modifications with custom data ==&lt;br /&gt;
//TODO&lt;br /&gt;
ideas:&lt;br /&gt;
* oil temp → gearbox temp&lt;br /&gt;
&lt;br /&gt;
* bar: acceleratorPosition=ViewOption(state: 2, reason: 0)&lt;br /&gt;
* bar: brakePressure=ViewOption(state: 2, reason: 0)&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Tweaks]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=408</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=408"/>
		<updated>2026-03-13T10:56:41Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; 200009 ← source selection&lt;br /&gt;
 &lt;br /&gt;
 300000 ← entertainment drawer&lt;br /&gt;
 300164 ← updateSuppServiceHFP&lt;br /&gt;
 &lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
 600009 ← Driving School Popup&lt;br /&gt;
&lt;br /&gt;
 // one of those is partial popup on the right, most likely&lt;br /&gt;
 2100008 ← OPS popup&lt;br /&gt;
 2100400 ← OPS standalone popup&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
 // all phone related&lt;br /&gt;
  private void removeAllPopups() {&lt;br /&gt;
        this.removePopup(300170);&lt;br /&gt;
        this.removePopup(300171);&lt;br /&gt;
        this.removePopup(300172);&lt;br /&gt;
        this.removePopup(300173);&lt;br /&gt;
        this.removePopup(300174);&lt;br /&gt;
        this.removePopup(300175);&lt;br /&gt;
        this.removePopup(300169);&lt;br /&gt;
        this.removePopup(300168);&lt;br /&gt;
        this.removePopup(300167);&lt;br /&gt;
        this.removePopup(300176);&lt;br /&gt;
        this.removePopup(300166);&lt;br /&gt;
        this.removePopup(300185);&lt;br /&gt;
        this.removePopup(300186);&lt;br /&gt;
        this.removePopup(300183);&lt;br /&gt;
        this.removePopup(300184);&lt;br /&gt;
        this.removePopup(300181);&lt;br /&gt;
        this.removePopup(300182);&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=407</id>
		<title>SPORT HMI for Audi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=407"/>
		<updated>2026-03-05T13:01:21Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* Logging HMI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MMIHigh Sportanzeigen.png|thumb|alt=Audi MMI MIB2 SportHMI mockup|Audi MMI SportHMI mockup]]&lt;br /&gt;
&lt;br /&gt;
There are some indications of Sport_HMI app for Audi MIB2 firmware. But no-one yet have enabled it. Let&#039;s check methods from the VW/Skoda/Seat units and let&#039;s check how the [[LSD.JXE]] in Audi looks like when it comes to references to sport modes.&lt;br /&gt;
&lt;br /&gt;
== VW/SEAT/Skoda SportHMI enabling methods ==&lt;br /&gt;
For whatever reason, VW/SEAT/Skoda vehicles support SPORT HMI out from the factory, without some deep modifications of the system. All it needs is adaptation and FEC/SWaP code.&lt;br /&gt;
&lt;br /&gt;
Details: [[SPORT HMI Performance Monitor]]&lt;br /&gt;
&lt;br /&gt;
== GUI assets in Audi firmware ==&lt;br /&gt;
[[File:Audi SportHMI kzb assets.jpg|thumb|alt=Audi MIB2 MMI SportHMI GUI assets|Audi MIB2 MMI SportHMI GUI assets]]&lt;br /&gt;
 &lt;br /&gt;
There&#039;s a file &amp;lt;code&amp;gt;SPORT_HMI.kzb&amp;lt;/code&amp;gt; - a .kzb package. After extracting, it looks like Audi firmware contains some GUI assets for Sport Display submenu. There&#039;s clock gauge for power and torque, as well as bar gauge for temperature and boost. Also rendered fonts for the large readouts inside the clock gauges.&lt;br /&gt;
&lt;br /&gt;
So if we are looking for needed textures - all is here.&lt;br /&gt;
&lt;br /&gt;
Here we can see that those textures are referenced in [[LSD.JXE]] classes:&lt;br /&gt;
&lt;br /&gt;
 public static String SPORT_HMI = &amp;quot;SPORT_HMI.kzb&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 public static int mib2_sport_hmi_kzbFile = 100;&lt;br /&gt;
&lt;br /&gt;
== SportHMI adaptation channels ==&lt;br /&gt;
We all know that there are adaptation channels related to the Performance Monitor in VW, SEAT, and Skoda → http://wiki.mib-helper.com/index.php?title=SPORT_HMI_Performance_Monitor#Adaptation&lt;br /&gt;
&lt;br /&gt;
And it looks like in Audi those are also connected to Sport Display function. Look at this part of code:&lt;br /&gt;
        if (this.isComponentAvailable((short)52, carFuncAdap)) {&lt;br /&gt;
            this.addCarComponent(new SportComponentEvo(this));&lt;br /&gt;
            this.addCarComponent(new SportKombiComponentEvo(this));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;isComponentAvailable((short)52, carFuncAdap)&amp;lt;/code&amp;gt; simply checks if 52nd channel in &amp;lt;code&amp;gt;Car_Function_Adaptations_Gen2&amp;lt;/code&amp;gt; section is set to &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;. And 52nd channel is... You know which one - &amp;lt;code&amp;gt;[LO]_menu_display_SportHMI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sport and Sport Kombi classes ==&lt;br /&gt;
It looks like the app logic is split into two separate classes:&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI-Kombi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Kombi&amp;lt;/code&amp;gt; is designed for instrument cluster data (&amp;quot;Kombiinstrument&amp;quot;), which is the oil temperature.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a statement that creates the screen:&lt;br /&gt;
 protected Screen createScreen(int n, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            (...)&lt;br /&gt;
            case 600289: {&lt;br /&gt;
                return CarScreenBag1.cARSPORTMAIN(this, n2);&lt;br /&gt;
&lt;br /&gt;
This one returns name of the screen for diagnostic purposes&lt;br /&gt;
 case 600289: {&lt;br /&gt;
     return &amp;quot;CAR_SPORT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And this one executes conditions&lt;br /&gt;
 @Override&lt;br /&gt;
    public void executeCondition(int n, int n2, HMIView[] hMIViewArray, int n3) {&lt;br /&gt;
        switch (n2) {&lt;br /&gt;
        (...)              &lt;br /&gt;
            case 600289: {&lt;br /&gt;
                this.executeConditioncARSPORTMAINScreen(n, hMIViewArray, n3);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
...which look like this:&lt;br /&gt;
     private void executeConditioncARSPORTMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 601056: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(!this.evaluateSimpleChoiceModelValueEqualsCondition(-534050560, n2, -214497024));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602113: {&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[1] == null) break;&lt;br /&gt;
                ((OilTemperatureGaugeController)hMIViewArray[1]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602114: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ChargingAirPressureGaugeController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(36702464, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602116: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(70256896, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602118: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(103811328, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
From the above:&lt;br /&gt;
* 602113 - Oil temperature&lt;br /&gt;
* 602114 - Boost pressure&lt;br /&gt;
* 602116 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
* 602118 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
State machine class is also referring to the SportHMI:&lt;br /&gt;
 public static final int LD_CAR_SEL_SPORTDISPLAY;&lt;br /&gt;
Meaning of the above would be &amp;quot;Sport Display was selected from the CAR menu Left Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* 601 - SPORT_POWER&lt;br /&gt;
* 602 - SPORT_POWER_MAX&lt;br /&gt;
* 603 - SPORT_POWER_CURRENT&lt;br /&gt;
* 604 - SPORT_TORQUE&lt;br /&gt;
* 605 - SPORT_TORQUE_MAX&lt;br /&gt;
* 606 - SPORT_TORQUE_CURRENT&lt;br /&gt;
* 607 - SPORT_OIL_TEMPERATURE&lt;br /&gt;
* 608 - SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
== Why no Sport submenu in Car menu? ==&lt;br /&gt;
It looks like everything is there. All the programming logic, adaptation to activate, data pulls, GUI assets, inits... So why it is not working?&lt;br /&gt;
&lt;br /&gt;
One of my theories is that at some point of development they decided to move the Sport HMI functionality from MIB to VC. On one side it makes sense - feature will not be duplicated on both displays. But on the other hand VC is optional equipment and not all cars have it.&lt;br /&gt;
&lt;br /&gt;
For whatever reasons it was - they needed to remove Sport HMI from Audi MIB. And by &amp;quot;remove&amp;quot; I mean &amp;quot;make it not visible for user&amp;quot;. That&#039;s why all the mentioned above parts of code and assets are there. So how they did it? And how to restore it?&lt;br /&gt;
&lt;br /&gt;
Maybe let&#039;s analyse how the MENU and CAR MENU structures looks like:&lt;br /&gt;
* Car&lt;br /&gt;
** Audi Drive Select&lt;br /&gt;
** Charging (eTron)&lt;br /&gt;
** Statistics (eTron)&lt;br /&gt;
** Vehicle Settings&lt;br /&gt;
** Drive Assist&lt;br /&gt;
** Air Condition&lt;br /&gt;
** Service and Checks&lt;br /&gt;
** Boardbook&lt;br /&gt;
* Sound&lt;br /&gt;
* Media&lt;br /&gt;
* Phone&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
By the first look, I can see some similarities to the &amp;lt;code&amp;gt;CarEvoMenuEntryStructure.java&amp;lt;/code&amp;gt; class:&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry2 = this.entryFactory.createMenuEntry(1596459264, &amp;quot;CAR_FUNC_CHARISMA&amp;quot;, -282457856);&lt;br /&gt;
 MenuEntry menuEntry3 = this.entryFactory.createMenuEntry(1630013696, &amp;quot;CAR_FUNC_SETTINGS&amp;quot;, -1305802496);&lt;br /&gt;
 MenuEntry menuEntry4 = this.entryFactory.createMenuEntry(1646790912, &amp;quot;CAR_FUNC_DRIVE_ASSIST&amp;quot;, -1339356928);&lt;br /&gt;
 MenuEntry menuEntry5 = this.entryFactory.createMenuEntry(1663568128, &amp;quot;CAR_FUNC_AIR_CONDITION&amp;quot;, -1389688576);&lt;br /&gt;
 MenuEntry menuEntry6 = this.entryFactory.createMenuEntry(1680345344, &amp;quot;CAR_FUNC_AUXHEAT&amp;quot;, -1356134144);&lt;br /&gt;
 MenuEntry menuEntry7 = this.entryFactory.createMenuEntry(10, &amp;quot;CAR_FUNC_AUX_AC)&amp;quot;, -1372911360);&lt;br /&gt;
 MenuEntry menuEntry8 = this.entryFactory.createMenuEntry(11, &amp;quot;CAR_FUNC_AUX_COMBINED)&amp;quot;, 1210976512);&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(1713899776, &amp;quot;CAR_FUNC_SERVICE&amp;quot;, -1322579712);&lt;br /&gt;
 MenuEntry menuEntry10 = this.entryFactory.createMenuEntry(1177094400, &amp;quot;CAR_FUNC_BORDBOOK&amp;quot;, 1412172032);&lt;br /&gt;
 MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(640289024, &amp;quot;CAR_FUNC_CHARGE&amp;quot;, -1842607872);&lt;br /&gt;
 MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(-383121152, &amp;quot;CAR_FUNC_STATISTICS&amp;quot;, -349370112);&lt;br /&gt;
 MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(12, &amp;quot;CAR_FUNC_SPORT&amp;quot;, 120588544);&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s check how the top-level menus are initialised and compare them to the SportHMI class to find what&#039;s missing. Maybe this will point us into the right direction.&lt;br /&gt;
&lt;br /&gt;
After quick check and compare, it looks like there&#039;s one function missing from the SportComponentEvo class. It&#039;s &amp;lt;code&amp;gt;updateMenuEntryVisibility()&amp;lt;/code&amp;gt; that appears in other car submenu classes. Not only those top-level. All of them. Is this it?&lt;br /&gt;
&lt;br /&gt;
== Moment of Doubt ==&lt;br /&gt;
Had a chance to test-drive an Audi SQ7 (4M) and played a bit with the Drive Select functions. There are &amp;quot;off-road&amp;quot; and &amp;quot;allroad&amp;quot; modes which enable additional element - Tilt Angle Display (TAD). This new element is visible directly on the Drive Select screen, and not as a separate submenu in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
So it got me wondering. What if the SportHMI is also just an additional widget that should be displayed on the Drive Select screen when &amp;quot;Sport&amp;quot; or &amp;quot;Race&amp;quot; mode is selected? If so, it would mean that this function might be controlled via Gateway with proper dataset. Or it&#039;s a separate submenu but still enabled with a gateway dataset?&lt;br /&gt;
&lt;br /&gt;
I need to look into the Charisma menu and TAD elements in LSH.JXE...&lt;br /&gt;
&lt;br /&gt;
 private IMenuEntry[] buildMenuCharisma(LogChannel logChannel) {&lt;br /&gt;
  // (...) &lt;br /&gt;
  menuEntry8.setFunctionalStateValues(new int[]{4}); //LIFT&lt;br /&gt;
  menuEntry2.setFunctionalStateValues(new int[]{4}); //OFFROAD&lt;br /&gt;
  menuEntry10.setFunctionalStateValues(new int[]{4}); //LIFT OFFROAD&lt;br /&gt;
  menuEntry5.setFunctionalStateValues(new int[]{8}); //EFFICIENCY&lt;br /&gt;
  // (...) &lt;br /&gt;
  MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(250, &amp;quot;CHARISMA_EFFICIENCY_BCME_ADD_INFO&amp;quot;, 1898776832);&lt;br /&gt;
  MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(252, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMPTION_BARGRAPH&amp;quot;, 1613564160);&lt;br /&gt;
  MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(251, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMER_LIST&amp;quot;, 1915554048);&lt;br /&gt;
  menuEntry11.setChildren(new IMenuEntry[]{menuEntry12, menuEntry13});&lt;br /&gt;
  MenuEntry menuEntry14 = this.entryFactory.createMenuEntry(326, &amp;quot;TAD_MAIN&amp;quot;, 1999374592);&lt;br /&gt;
  MenuEntry menuEntry15 = this.entryFactory.createMenuEntry(328, &amp;quot;TAD_PITCH_ANGLE&amp;quot;, 1965820160);&lt;br /&gt;
  MenuEntry menuEntry16 = this.entryFactory.createMenuEntry(327, &amp;quot;TAD_ROLL_ANGLE&amp;quot;, 1982597376);&lt;br /&gt;
  menuEntry14.setChildren(new IMenuEntry[]{menuEntry15, menuEntry16});&lt;br /&gt;
  return new IMenuEntry[]{menuEntry, menuEntry2, menuEntry3, menuEntry4, menuEntry5, menuEntry7, menuEntry6, menuEntry8, menuEntry10, menuEntry9};&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nope! It looks like only Efficiency Mode and Lift/Offroad Modes have children elements. No SportHMI mentions here. And previously mentioned &amp;lt;code&amp;gt;LD_CAR_SEL_SPORTDISPLAY&amp;lt;/code&amp;gt; was linked to left drawer, which means that the SportHMI needs to be present in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
But there&#039;s a RACE Mode mentioned here and there.&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(238, &amp;quot;CHARISMA_PROFILE_RACE&amp;quot;, 305203456);&lt;br /&gt;
&lt;br /&gt;
 public boolean isRacesport() {&lt;br /&gt;
  return this.racesport;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Maybe that&#039;s it? Maybe the RACE Charisma mode needs to be enabled from the SportHMI to be accessible?&lt;br /&gt;
&lt;br /&gt;
Just to be sure, I will check if there are some &amp;quot;RACE&amp;quot; references in the code. But not now.&lt;br /&gt;
&lt;br /&gt;
== Figuring out the missing data ==&lt;br /&gt;
Played around with KeyCombo (that&#039;s a separate topic) and found that Audi HMI has an build-in app for HMI tests. It shows a lot of data about visible items and data provided by the rest of the car.&lt;br /&gt;
&lt;br /&gt;
Here we can see which information is provided &amp;lt;code&amp;gt;state: 2&amp;lt;/code&amp;gt;, and which is not &amp;lt;code&amp;gt;state: 0&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SportHMI&lt;br /&gt;
  DynamicVehicleInfoHighFrequentViewOptions(&lt;br /&gt;
   longitudinalAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   engineSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   powermeter=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   lateralAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   relChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   absChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentTorque=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   yawRate=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   brakePressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   wheelAngle=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   acceleratorPosition=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   vehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   systemCycleDistance=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   realVehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   shiftLight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   allWheelDriveTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espOversteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espUndersteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   relAllWheelDriveTorque=ViewOption(state: 0, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
  SemiStaticDataViewOptions(&lt;br /&gt;
   maxChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   engineDisplacement=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   typeOfInjectionSystem=ViewOption(state: 2, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
And here we can check which components in the SPORT HMI are fully functional and which are not:&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602119&lt;br /&gt;
        Parent: CAR_MAIN&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER&lt;br /&gt;
            SPORT_TORQUE&lt;br /&gt;
            SPORT_OIL_TEMPERATURE&lt;br /&gt;
            SPORT_AIR_PRESSURE&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602116&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER_MAX&lt;br /&gt;
            SPORT_POWER_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602118&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_TORQUE_MAX&lt;br /&gt;
            SPORT_TORQUE_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
        State: INVISIBLE&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_TORQUE&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
        State: Invisible&lt;br /&gt;
        ModelID: 602113&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602114&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
&lt;br /&gt;
Two things (&amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; are invisible. This partially correlates with unavailable &amp;lt;code&amp;gt;maxTorque&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Is it that this missing data is what&#039;s locking the SPORT submenu to appear? Let&#039;s find out!&lt;br /&gt;
&lt;br /&gt;
== Logging HMI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;run_lsd.sh&amp;lt;/code&amp;gt; script, that starts the &amp;lt;code&amp;gt;LSD.jxe&amp;lt;/code&amp;gt; can be adjusted for logging different components. &lt;br /&gt;
&lt;br /&gt;
=== App.Car.Sport=5 ===&lt;br /&gt;
Let&#039;s start with &amp;lt;code&amp;gt;App.Car.Sport&amp;lt;/code&amp;gt; set to level &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, so it will output some data.&lt;br /&gt;
&lt;br /&gt;
 updateBCViewOptions:BCViewOptions(&lt;br /&gt;
  currentConsumption1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  currentConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  currentRange1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  currentRange2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  totalDistance=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  shortTermAverageConsumption1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  shortTermAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  shortTermGeneral=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  longTermAverageConsumption1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  longTermAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  longTermGeneral=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  cycleAverageConsumption1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  cycleAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  cycleGeneral=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  vZADisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  lifeTipsDisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  consumerDisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  tankLevel1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  tankLevel2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  refuelVolume1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  refuelVolume2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue1Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue2Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue3Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetMenue1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  resetMenue2=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  resetMenue3=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  oilTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  digitalSpeed=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  stopwatch=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  vzaMFA=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  speedWarning=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  gearRecommendation=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  rearSeatbeltWarning=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  indications=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  outsideTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  bcSetFactoryDefault=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  vehicleStateList=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsReset=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsConfig=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  oilTemperatureValue=ViewOption(state: 0,reason: 0), // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
  coolantTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticDistanceEUkm=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticDistanceEUmls=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  totalCurrentRange=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetMaxValues=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  maxValues=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  astaMFA=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTrip=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  configuration=BCConfiguration(&lt;br /&gt;
   primaryEngineType=7,&lt;br /&gt;
   secondaryEngineType=0,&lt;br /&gt;
   fisAdditionalConfiguration=BCFISAdditionalConfiguration(&lt;br /&gt;
    fis1=true,&lt;br /&gt;
    fis2=true,&lt;br /&gt;
    fis3=false,&lt;br /&gt;
    stopWatch=true,&lt;br /&gt;
    oilTemp=false,&lt;br /&gt;
    digitalSpeed=true,&lt;br /&gt;
    refuelVolume=false,&lt;br /&gt;
    speedWarning=true,&lt;br /&gt;
    coolantTemp=false,&lt;br /&gt;
    secondarySpeed=false,&lt;br /&gt;
    vza=true,&lt;br /&gt;
    resetTime=false,&lt;br /&gt;
    comfortPowerConsumption=false,&lt;br /&gt;
    zeroEmissionTime=false,&lt;br /&gt;
    zeroEmissionDistance=false,&lt;br /&gt;
    vzaMfa=false,&lt;br /&gt;
    bcmeConsumerList=false,&lt;br /&gt;
    bcmeLiveTips=false,&lt;br /&gt;
    astaMfa=false&lt;br /&gt;
   ),&lt;br /&gt;
   transmittableElementsVehicleState=BCTransmittableElements(&lt;br /&gt;
    ra0=1,ra1=7,ra2=1,ra3=7,raF=88&lt;br /&gt;
   ),functionSupport=BCFunctionSupport(&lt;br /&gt;
    resetTrip=false)&lt;br /&gt;
   )&lt;br /&gt;
  ),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.720 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateBCOilTemperatureValue:null,&lt;br /&gt;
 valid:2 // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
&lt;br /&gt;
 00:00:42.715 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateSemiStaticVehicleData:SemiStaticVehicleData(&lt;br /&gt;
  maxChargingAirPressure=2.5,&lt;br /&gt;
  maxOutputPower=228,&lt;br /&gt;
  maxTorque=0, // ← ← ← ← ← ← ← ← NOT OK&lt;br /&gt;
  engineDisplacement=2.0,&lt;br /&gt;
  typeOfInjectionSystem=0),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.722 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateDynamicVehicleInfoHighFrequent:DynamicVehicleInfoHighFrequent(&lt;br /&gt;
  longitudinalAcceleration=0.0,&lt;br /&gt;
  engineSpeed=699,&lt;br /&gt;
  powermeter=0,&lt;br /&gt;
  lateralAcceleration=-0.01,&lt;br /&gt;
  relChargingAirPressure=0,&lt;br /&gt;
  absChargingAirPressure=0.29,&lt;br /&gt;
  currentOutputPower=1.8,&lt;br /&gt;
  yawRate=-0.09,&lt;br /&gt;
  brakePressure=0.0,&lt;br /&gt;
  wheelAngle=8,&lt;br /&gt;
  acceleratorPosition=0,&lt;br /&gt;
  vehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  currentTorque=25,&lt;br /&gt;
  systemCycleDistance=0,&lt;br /&gt;
  torqueDistributionFrontLeft=0,&lt;br /&gt;
  torqueDistributionFrontRight=0,&lt;br /&gt;
  torqueDistributionRearLeft=0,&lt;br /&gt;
  torqueDistributionRearRight=0,&lt;br /&gt;
  realVehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  shiftLight=0,&lt;br /&gt;
  allWheelDriveTorque=0,&lt;br /&gt;
  espOversteering=0.0,&lt;br /&gt;
  espUndersteering=0.0,&lt;br /&gt;
  espWheelVelocityFrontLeft=0.0,&lt;br /&gt;
  espWheelVelocityFrontRight=0.0,&lt;br /&gt;
  espWheelVelocityRearLeft=0.0,&lt;br /&gt;
  espWheelVelocityRearRight=0.0,&lt;br /&gt;
  relAllWheelDriveTorque=0.0),&lt;br /&gt;
 valid:1&lt;br /&gt;
&lt;br /&gt;
This proves two things:&lt;br /&gt;
1. Sport_HMI exists, works, creates output, and should be functional.&lt;br /&gt;
2. Some of the data from DSI is not provided or is zeroed.&lt;br /&gt;
&lt;br /&gt;
=== App.Car.MER=5 ===&lt;br /&gt;
Since the Sport_HMI is clearly there, but it&#039;s not visible in the CAR menu, let&#039;s check how the Menu Entry Register logs look like.&lt;br /&gt;
&lt;br /&gt;
 00:00:11.913 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_MAIN&#039;)#setChildren] children=&lt;br /&gt;
 CAR_FUNC_CHARISMA&lt;br /&gt;
 CAR_FUNC_SETTINGS&lt;br /&gt;
 CAR_FUNC_DRIVE_ASSIST&lt;br /&gt;
 CAR_FUNC_AIR_CONDITION&lt;br /&gt;
 CAR_FUNC_AUXHEAT&lt;br /&gt;
 CAR_FUNC_AUX_AC)&lt;br /&gt;
 CAR_FUNC_AUX_COMBINED)&lt;br /&gt;
 CAR_FUNC_SERVICE&lt;br /&gt;
 CAR_FUNC_BORDBOOK&lt;br /&gt;
 CAR_FUNC_CHARGE&lt;br /&gt;
 CAR_FUNC_STATISTICS&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.628 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
 SPORT_TORQUE_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.764 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.765 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
Menu structure is created correctly. Now let&#039;s dig some more and check final status of each SPORT element.&lt;br /&gt;
&lt;br /&gt;
 00:00:34.812 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_MAX&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.084 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_MAX&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.086 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_OIL_TEMPERATURE&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.647 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_AIR_PRESSURE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.649 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
&lt;br /&gt;
It looks like the &amp;lt;code&amp;gt;state=&#039;0&#039;&amp;lt;/code&amp;gt; is reported if the component is working correctly. And two component&#039;s are not. &amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; - same two that were missing or zeroed in DSI-provided data. Huh...&lt;br /&gt;
&lt;br /&gt;
== How to enable it? ==&lt;br /&gt;
I have 4 ideas, actually. Not sure which is best and if any would work.&lt;br /&gt;
# modify SportHMI classes&lt;br /&gt;
# patch DSI with missing data&lt;br /&gt;
# deregister components from Menu Entry that cause it to be invisible&lt;br /&gt;
# create a shortcut for SportHMI to bypass the Menu Entry Registry all together&lt;br /&gt;
&lt;br /&gt;
== Modifications with custom data ==&lt;br /&gt;
//TODO&lt;br /&gt;
ideas:&lt;br /&gt;
* oil temp → gearbox temp&lt;br /&gt;
* boost pressure → oil pressure&lt;br /&gt;
* torque → steering angle&lt;br /&gt;
* power → tachometer&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Tweaks]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=406</id>
		<title>SPORT HMI for Audi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=406"/>
		<updated>2026-03-05T08:57:38Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* App.Car.Sport=5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MMIHigh Sportanzeigen.png|thumb|alt=Audi MMI MIB2 SportHMI mockup|Audi MMI SportHMI mockup]]&lt;br /&gt;
&lt;br /&gt;
There are some indications of Sport_HMI app for Audi MIB2 firmware. But no-one yet have enabled it. Let&#039;s check methods from the VW/Skoda/Seat units and let&#039;s check how the [[LSD.JXE]] in Audi looks like when it comes to references to sport modes.&lt;br /&gt;
&lt;br /&gt;
== VW/SEAT/Skoda SportHMI enabling methods ==&lt;br /&gt;
For whatever reason, VW/SEAT/Skoda vehicles support SPORT HMI out from the factory, without some deep modifications of the system. All it needs is adaptation and FEC/SWaP code.&lt;br /&gt;
&lt;br /&gt;
Details: [[SPORT HMI Performance Monitor]]&lt;br /&gt;
&lt;br /&gt;
== GUI assets in Audi firmware ==&lt;br /&gt;
[[File:Audi SportHMI kzb assets.jpg|thumb|alt=Audi MIB2 MMI SportHMI GUI assets|Audi MIB2 MMI SportHMI GUI assets]]&lt;br /&gt;
 &lt;br /&gt;
There&#039;s a file &amp;lt;code&amp;gt;SPORT_HMI.kzb&amp;lt;/code&amp;gt; - a .kzb package. After extracting, it looks like Audi firmware contains some GUI assets for Sport Display submenu. There&#039;s clock gauge for power and torque, as well as bar gauge for temperature and boost. Also rendered fonts for the large readouts inside the clock gauges.&lt;br /&gt;
&lt;br /&gt;
So if we are looking for needed textures - all is here.&lt;br /&gt;
&lt;br /&gt;
Here we can see that those textures are referenced in [[LSD.JXE]] classes:&lt;br /&gt;
&lt;br /&gt;
 public static String SPORT_HMI = &amp;quot;SPORT_HMI.kzb&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 public static int mib2_sport_hmi_kzbFile = 100;&lt;br /&gt;
&lt;br /&gt;
== SportHMI adaptation channels ==&lt;br /&gt;
We all know that there are adaptation channels related to the Performance Monitor in VW, SEAT, and Skoda → http://wiki.mib-helper.com/index.php?title=SPORT_HMI_Performance_Monitor#Adaptation&lt;br /&gt;
&lt;br /&gt;
And it looks like in Audi those are also connected to Sport Display function. Look at this part of code:&lt;br /&gt;
        if (this.isComponentAvailable((short)52, carFuncAdap)) {&lt;br /&gt;
            this.addCarComponent(new SportComponentEvo(this));&lt;br /&gt;
            this.addCarComponent(new SportKombiComponentEvo(this));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;isComponentAvailable((short)52, carFuncAdap)&amp;lt;/code&amp;gt; simply checks if 52nd channel in &amp;lt;code&amp;gt;Car_Function_Adaptations_Gen2&amp;lt;/code&amp;gt; section is set to &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;. And 52nd channel is... You know which one - &amp;lt;code&amp;gt;[LO]_menu_display_SportHMI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sport and Sport Kombi classes ==&lt;br /&gt;
It looks like the app logic is split into two separate classes:&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI-Kombi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Kombi&amp;lt;/code&amp;gt; is designed for instrument cluster data (&amp;quot;Kombiinstrument&amp;quot;), which is the oil temperature.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a statement that creates the screen:&lt;br /&gt;
 protected Screen createScreen(int n, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            (...)&lt;br /&gt;
            case 600289: {&lt;br /&gt;
                return CarScreenBag1.cARSPORTMAIN(this, n2);&lt;br /&gt;
&lt;br /&gt;
This one returns name of the screen for diagnostic purposes&lt;br /&gt;
 case 600289: {&lt;br /&gt;
     return &amp;quot;CAR_SPORT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And this one executes conditions&lt;br /&gt;
 @Override&lt;br /&gt;
    public void executeCondition(int n, int n2, HMIView[] hMIViewArray, int n3) {&lt;br /&gt;
        switch (n2) {&lt;br /&gt;
        (...)              &lt;br /&gt;
            case 600289: {&lt;br /&gt;
                this.executeConditioncARSPORTMAINScreen(n, hMIViewArray, n3);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
...which look like this:&lt;br /&gt;
     private void executeConditioncARSPORTMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 601056: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(!this.evaluateSimpleChoiceModelValueEqualsCondition(-534050560, n2, -214497024));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602113: {&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[1] == null) break;&lt;br /&gt;
                ((OilTemperatureGaugeController)hMIViewArray[1]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602114: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ChargingAirPressureGaugeController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(36702464, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602116: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(70256896, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602118: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(103811328, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
From the above:&lt;br /&gt;
* 602113 - Oil temperature&lt;br /&gt;
* 602114 - Boost pressure&lt;br /&gt;
* 602116 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
* 602118 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
State machine class is also referring to the SportHMI:&lt;br /&gt;
 public static final int LD_CAR_SEL_SPORTDISPLAY;&lt;br /&gt;
Meaning of the above would be &amp;quot;Sport Display was selected from the CAR menu Left Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* 601 - SPORT_POWER&lt;br /&gt;
* 602 - SPORT_POWER_MAX&lt;br /&gt;
* 603 - SPORT_POWER_CURRENT&lt;br /&gt;
* 604 - SPORT_TORQUE&lt;br /&gt;
* 605 - SPORT_TORQUE_MAX&lt;br /&gt;
* 606 - SPORT_TORQUE_CURRENT&lt;br /&gt;
* 607 - SPORT_OIL_TEMPERATURE&lt;br /&gt;
* 608 - SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
== Why no Sport submenu in Car menu? ==&lt;br /&gt;
It looks like everything is there. All the programming logic, adaptation to activate, data pulls, GUI assets, inits... So why it is not working?&lt;br /&gt;
&lt;br /&gt;
One of my theories is that at some point of development they decided to move the Sport HMI functionality from MIB to VC. On one side it makes sense - feature will not be duplicated on both displays. But on the other hand VC is optional equipment and not all cars have it.&lt;br /&gt;
&lt;br /&gt;
For whatever reasons it was - they needed to remove Sport HMI from Audi MIB. And by &amp;quot;remove&amp;quot; I mean &amp;quot;make it not visible for user&amp;quot;. That&#039;s why all the mentioned above parts of code and assets are there. So how they did it? And how to restore it?&lt;br /&gt;
&lt;br /&gt;
Maybe let&#039;s analyse how the MENU and CAR MENU structures looks like:&lt;br /&gt;
* Car&lt;br /&gt;
** Audi Drive Select&lt;br /&gt;
** Charging (eTron)&lt;br /&gt;
** Statistics (eTron)&lt;br /&gt;
** Vehicle Settings&lt;br /&gt;
** Drive Assist&lt;br /&gt;
** Air Condition&lt;br /&gt;
** Service and Checks&lt;br /&gt;
** Boardbook&lt;br /&gt;
* Sound&lt;br /&gt;
* Media&lt;br /&gt;
* Phone&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
By the first look, I can see some similarities to the &amp;lt;code&amp;gt;CarEvoMenuEntryStructure.java&amp;lt;/code&amp;gt; class:&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry2 = this.entryFactory.createMenuEntry(1596459264, &amp;quot;CAR_FUNC_CHARISMA&amp;quot;, -282457856);&lt;br /&gt;
 MenuEntry menuEntry3 = this.entryFactory.createMenuEntry(1630013696, &amp;quot;CAR_FUNC_SETTINGS&amp;quot;, -1305802496);&lt;br /&gt;
 MenuEntry menuEntry4 = this.entryFactory.createMenuEntry(1646790912, &amp;quot;CAR_FUNC_DRIVE_ASSIST&amp;quot;, -1339356928);&lt;br /&gt;
 MenuEntry menuEntry5 = this.entryFactory.createMenuEntry(1663568128, &amp;quot;CAR_FUNC_AIR_CONDITION&amp;quot;, -1389688576);&lt;br /&gt;
 MenuEntry menuEntry6 = this.entryFactory.createMenuEntry(1680345344, &amp;quot;CAR_FUNC_AUXHEAT&amp;quot;, -1356134144);&lt;br /&gt;
 MenuEntry menuEntry7 = this.entryFactory.createMenuEntry(10, &amp;quot;CAR_FUNC_AUX_AC)&amp;quot;, -1372911360);&lt;br /&gt;
 MenuEntry menuEntry8 = this.entryFactory.createMenuEntry(11, &amp;quot;CAR_FUNC_AUX_COMBINED)&amp;quot;, 1210976512);&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(1713899776, &amp;quot;CAR_FUNC_SERVICE&amp;quot;, -1322579712);&lt;br /&gt;
 MenuEntry menuEntry10 = this.entryFactory.createMenuEntry(1177094400, &amp;quot;CAR_FUNC_BORDBOOK&amp;quot;, 1412172032);&lt;br /&gt;
 MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(640289024, &amp;quot;CAR_FUNC_CHARGE&amp;quot;, -1842607872);&lt;br /&gt;
 MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(-383121152, &amp;quot;CAR_FUNC_STATISTICS&amp;quot;, -349370112);&lt;br /&gt;
 MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(12, &amp;quot;CAR_FUNC_SPORT&amp;quot;, 120588544);&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s check how the top-level menus are initialised and compare them to the SportHMI class to find what&#039;s missing. Maybe this will point us into the right direction.&lt;br /&gt;
&lt;br /&gt;
After quick check and compare, it looks like there&#039;s one function missing from the SportComponentEvo class. It&#039;s &amp;lt;code&amp;gt;updateMenuEntryVisibility()&amp;lt;/code&amp;gt; that appears in other car submenu classes. Not only those top-level. All of them. Is this it?&lt;br /&gt;
&lt;br /&gt;
== Moment of Doubt ==&lt;br /&gt;
Had a chance to test-drive an Audi SQ7 (4M) and played a bit with the Drive Select functions. There are &amp;quot;off-road&amp;quot; and &amp;quot;allroad&amp;quot; modes which enable additional element - Tilt Angle Display (TAD). This new element is visible directly on the Drive Select screen, and not as a separate submenu in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
So it got me wondering. What if the SportHMI is also just an additional widget that should be displayed on the Drive Select screen when &amp;quot;Sport&amp;quot; or &amp;quot;Race&amp;quot; mode is selected? If so, it would mean that this function might be controlled via Gateway with proper dataset. Or it&#039;s a separate submenu but still enabled with a gateway dataset?&lt;br /&gt;
&lt;br /&gt;
I need to look into the Charisma menu and TAD elements in LSH.JXE...&lt;br /&gt;
&lt;br /&gt;
 private IMenuEntry[] buildMenuCharisma(LogChannel logChannel) {&lt;br /&gt;
  // (...) &lt;br /&gt;
  menuEntry8.setFunctionalStateValues(new int[]{4}); //LIFT&lt;br /&gt;
  menuEntry2.setFunctionalStateValues(new int[]{4}); //OFFROAD&lt;br /&gt;
  menuEntry10.setFunctionalStateValues(new int[]{4}); //LIFT OFFROAD&lt;br /&gt;
  menuEntry5.setFunctionalStateValues(new int[]{8}); //EFFICIENCY&lt;br /&gt;
  // (...) &lt;br /&gt;
  MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(250, &amp;quot;CHARISMA_EFFICIENCY_BCME_ADD_INFO&amp;quot;, 1898776832);&lt;br /&gt;
  MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(252, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMPTION_BARGRAPH&amp;quot;, 1613564160);&lt;br /&gt;
  MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(251, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMER_LIST&amp;quot;, 1915554048);&lt;br /&gt;
  menuEntry11.setChildren(new IMenuEntry[]{menuEntry12, menuEntry13});&lt;br /&gt;
  MenuEntry menuEntry14 = this.entryFactory.createMenuEntry(326, &amp;quot;TAD_MAIN&amp;quot;, 1999374592);&lt;br /&gt;
  MenuEntry menuEntry15 = this.entryFactory.createMenuEntry(328, &amp;quot;TAD_PITCH_ANGLE&amp;quot;, 1965820160);&lt;br /&gt;
  MenuEntry menuEntry16 = this.entryFactory.createMenuEntry(327, &amp;quot;TAD_ROLL_ANGLE&amp;quot;, 1982597376);&lt;br /&gt;
  menuEntry14.setChildren(new IMenuEntry[]{menuEntry15, menuEntry16});&lt;br /&gt;
  return new IMenuEntry[]{menuEntry, menuEntry2, menuEntry3, menuEntry4, menuEntry5, menuEntry7, menuEntry6, menuEntry8, menuEntry10, menuEntry9};&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nope! It looks like only Efficiency Mode and Lift/Offroad Modes have children elements. No SportHMI mentions here. And previously mentioned &amp;lt;code&amp;gt;LD_CAR_SEL_SPORTDISPLAY&amp;lt;/code&amp;gt; was linked to left drawer, which means that the SportHMI needs to be present in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
But there&#039;s a RACE Mode mentioned here and there.&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(238, &amp;quot;CHARISMA_PROFILE_RACE&amp;quot;, 305203456);&lt;br /&gt;
&lt;br /&gt;
 public boolean isRacesport() {&lt;br /&gt;
  return this.racesport;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Maybe that&#039;s it? Maybe the RACE Charisma mode needs to be enabled from the SportHMI to be accessible?&lt;br /&gt;
&lt;br /&gt;
Just to be sure, I will check if there are some &amp;quot;RACE&amp;quot; references in the code. But not now.&lt;br /&gt;
&lt;br /&gt;
== Figuring out the missing data ==&lt;br /&gt;
Played around with KeyCombo (that&#039;s a separate topic) and found that Audi HMI has an build-in app for HMI tests. It shows a lot of data about visible items and data provided by the rest of the car.&lt;br /&gt;
&lt;br /&gt;
Here we can see which information is provided &amp;lt;code&amp;gt;state: 2&amp;lt;/code&amp;gt;, and which is not &amp;lt;code&amp;gt;state: 0&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SportHMI&lt;br /&gt;
  DynamicVehicleInfoHighFrequentViewOptions(&lt;br /&gt;
   longitudinalAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   engineSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   powermeter=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   lateralAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   relChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   absChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentTorque=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   yawRate=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   brakePressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   wheelAngle=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   acceleratorPosition=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   vehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   systemCycleDistance=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   realVehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   shiftLight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   allWheelDriveTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espOversteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espUndersteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   relAllWheelDriveTorque=ViewOption(state: 0, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
  SemiStaticDataViewOptions(&lt;br /&gt;
   maxChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   engineDisplacement=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   typeOfInjectionSystem=ViewOption(state: 2, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
And here we can check which components in the SPORT HMI are fully functional and which are not:&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602119&lt;br /&gt;
        Parent: CAR_MAIN&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER&lt;br /&gt;
            SPORT_TORQUE&lt;br /&gt;
            SPORT_OIL_TEMPERATURE&lt;br /&gt;
            SPORT_AIR_PRESSURE&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602116&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER_MAX&lt;br /&gt;
            SPORT_POWER_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602118&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_TORQUE_MAX&lt;br /&gt;
            SPORT_TORQUE_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
        State: INVISIBLE&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_TORQUE&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
        State: Invisible&lt;br /&gt;
        ModelID: 602113&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602114&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
&lt;br /&gt;
Two things (&amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; are invisible. This partially correlates with unavailable &amp;lt;code&amp;gt;maxTorque&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Is it that this missing data is what&#039;s locking the SPORT submenu to appear? Let&#039;s find out!&lt;br /&gt;
&lt;br /&gt;
== Logging HMI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;run_lsd.sh&amp;lt;/code&amp;gt; script, that starts the &amp;lt;code&amp;gt;LSD.jxe&amp;lt;/code&amp;gt; can be adjusted for logging different components. &lt;br /&gt;
&lt;br /&gt;
=== App.Car.Sport=5 ===&lt;br /&gt;
Let&#039;s start with &amp;lt;code&amp;gt;App.Car.Sport&amp;lt;/code&amp;gt; set to level &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, so it will output some data.&lt;br /&gt;
&lt;br /&gt;
 updateBCViewOptions:BCViewOptions(&lt;br /&gt;
  currentConsumption1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  currentConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  currentRange1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  currentRange2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  totalDistance=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  shortTermAverageConsumption1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  shortTermAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  shortTermGeneral=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  longTermAverageConsumption1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  longTermAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  longTermGeneral=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  cycleAverageConsumption1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  cycleAverageConsumption2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  cycleGeneral=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  vZADisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  lifeTipsDisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  consumerDisplay=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  tankLevel1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  tankLevel2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  refuelVolume1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  refuelVolume2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue1Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue2Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  menue3Config=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetMenue1=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  resetMenue2=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  resetMenue3=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  oilTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  digitalSpeed=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  stopwatch=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  vzaMFA=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  speedWarning=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  gearRecommendation=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  rearSeatbeltWarning=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  indications=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  outsideTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  bcSetFactoryDefault=ViewOption(state: 2,reason: 0),&lt;br /&gt;
  vehicleStateList=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsTimeCurrentPeriodZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallAC1=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallAC2=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallRE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsDistanceCurrentIntervallZE=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsReset=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticsConfig=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  oilTemperatureValue=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  coolantTemperature=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticDistanceEUkm=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  statisticDistanceEUmls=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  totalCurrentRange=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetMaxValues=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionDistanceCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  zeroEmissionTimeCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  maxValues=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampST=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTimeStampCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionLT=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  comfortPowerConsumptionCY=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  astaMFA=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  resetTrip=ViewOption(state: 0,reason: 0),&lt;br /&gt;
  configuration=BCConfiguration(&lt;br /&gt;
   primaryEngineType=7,&lt;br /&gt;
   secondaryEngineType=0,&lt;br /&gt;
   fisAdditionalConfiguration=BCFISAdditionalConfiguration(&lt;br /&gt;
    fis1=true,&lt;br /&gt;
    fis2=true,&lt;br /&gt;
    fis3=false,&lt;br /&gt;
    stopWatch=true,&lt;br /&gt;
    oilTemp=false,&lt;br /&gt;
    digitalSpeed=true,&lt;br /&gt;
    refuelVolume=false,&lt;br /&gt;
    speedWarning=true,&lt;br /&gt;
    coolantTemp=false,&lt;br /&gt;
    secondarySpeed=false,&lt;br /&gt;
    vza=true,&lt;br /&gt;
    resetTime=false,&lt;br /&gt;
    comfortPowerConsumption=false,&lt;br /&gt;
    zeroEmissionTime=false,&lt;br /&gt;
    zeroEmissionDistance=false,&lt;br /&gt;
    vzaMfa=false,&lt;br /&gt;
    bcmeConsumerList=false,&lt;br /&gt;
    bcmeLiveTips=false,&lt;br /&gt;
    astaMfa=false&lt;br /&gt;
   ),&lt;br /&gt;
   transmittableElementsVehicleState=BCTransmittableElements(&lt;br /&gt;
    ra0=1,ra1=7,ra2=1,ra3=7,raF=88&lt;br /&gt;
   ),functionSupport=BCFunctionSupport(&lt;br /&gt;
    resetTrip=false)&lt;br /&gt;
   )&lt;br /&gt;
  ),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.720 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateBCOilTemperatureValue:null,&lt;br /&gt;
 valid:2&lt;br /&gt;
&lt;br /&gt;
 00:00:42.715 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateSemiStaticVehicleData:SemiStaticVehicleData(&lt;br /&gt;
  maxChargingAirPressure=2.5,&lt;br /&gt;
  maxOutputPower=228,&lt;br /&gt;
  maxTorque=0,&lt;br /&gt;
  engineDisplacement=2.0,&lt;br /&gt;
  typeOfInjectionSystem=0),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.722 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateDynamicVehicleInfoHighFrequent:DynamicVehicleInfoHighFrequent(&lt;br /&gt;
  longitudinalAcceleration=0.0,&lt;br /&gt;
  engineSpeed=699,&lt;br /&gt;
  powermeter=0,&lt;br /&gt;
  lateralAcceleration=-0.01,&lt;br /&gt;
  relChargingAirPressure=0,&lt;br /&gt;
  absChargingAirPressure=0.29,&lt;br /&gt;
  currentOutputPower=1.8,&lt;br /&gt;
  yawRate=-0.09,&lt;br /&gt;
  brakePressure=0.0,&lt;br /&gt;
  wheelAngle=8,&lt;br /&gt;
  acceleratorPosition=0,&lt;br /&gt;
  vehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  currentTorque=25,&lt;br /&gt;
  systemCycleDistance=0,&lt;br /&gt;
  torqueDistributionFrontLeft=0,&lt;br /&gt;
  torqueDistributionFrontRight=0,&lt;br /&gt;
  torqueDistributionRearLeft=0,&lt;br /&gt;
  torqueDistributionRearRight=0,&lt;br /&gt;
  realVehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  shiftLight=0,&lt;br /&gt;
  allWheelDriveTorque=0,&lt;br /&gt;
  espOversteering=0.0,&lt;br /&gt;
  espUndersteering=0.0,&lt;br /&gt;
  espWheelVelocityFrontLeft=0.0,&lt;br /&gt;
  espWheelVelocityFrontRight=0.0,&lt;br /&gt;
  espWheelVelocityRearLeft=0.0,&lt;br /&gt;
  espWheelVelocityRearRight=0.0,&lt;br /&gt;
  relAllWheelDriveTorque=0.0),&lt;br /&gt;
 valid:1&lt;br /&gt;
&lt;br /&gt;
This proves two things:&lt;br /&gt;
1. Sport_HMI exists, works, creates output, and should be functional.&lt;br /&gt;
2. Some of the data from DSI is not provided or is zeroed.&lt;br /&gt;
&lt;br /&gt;
=== App.Car.MER=5 ===&lt;br /&gt;
Since the Sport_HMI is clearly there, but it&#039;s not visible in the CAR menu, let&#039;s check how the Menu Entry Register logs look like.&lt;br /&gt;
&lt;br /&gt;
 00:00:11.913 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_MAIN&#039;)#setChildren] children=&lt;br /&gt;
 CAR_FUNC_CHARISMA&lt;br /&gt;
 CAR_FUNC_SETTINGS&lt;br /&gt;
 CAR_FUNC_DRIVE_ASSIST&lt;br /&gt;
 CAR_FUNC_AIR_CONDITION&lt;br /&gt;
 CAR_FUNC_AUXHEAT&lt;br /&gt;
 CAR_FUNC_AUX_AC)&lt;br /&gt;
 CAR_FUNC_AUX_COMBINED)&lt;br /&gt;
 CAR_FUNC_SERVICE&lt;br /&gt;
 CAR_FUNC_BORDBOOK&lt;br /&gt;
 CAR_FUNC_CHARGE&lt;br /&gt;
 CAR_FUNC_STATISTICS&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.628 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
 SPORT_TORQUE_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.764 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.765 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
Menu structure is created correctly. Now let&#039;s dig some more and check final status of each SPORT element.&lt;br /&gt;
&lt;br /&gt;
 00:00:34.812 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_MAX&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.084 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_MAX&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.086 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_OIL_TEMPERATURE&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.647 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_AIR_PRESSURE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.649 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
&lt;br /&gt;
It looks like the &amp;lt;code&amp;gt;state=&#039;0&#039;&amp;lt;/code&amp;gt; is reported if the component is working correctly. And two component&#039;s are not. &amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; - same two that were missing or zeroed in DSI-provided data. Huh...&lt;br /&gt;
&lt;br /&gt;
== How to enable it? ==&lt;br /&gt;
I have 4 ideas, actually. Not sure which is best and if any would work.&lt;br /&gt;
# modify SportHMI classes&lt;br /&gt;
# patch DSI with missing data&lt;br /&gt;
# deregister components from Menu Entry that cause it to be invisible&lt;br /&gt;
# create a shortcut for SportHMI to bypass the Menu Entry Registry all together&lt;br /&gt;
&lt;br /&gt;
== Modifications with custom data ==&lt;br /&gt;
//TODO&lt;br /&gt;
ideas:&lt;br /&gt;
* oil temp → gearbox temp&lt;br /&gt;
* boost pressure → oil pressure&lt;br /&gt;
* torque → steering angle&lt;br /&gt;
* power → tachometer&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Tweaks]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=405</id>
		<title>HMI popups</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=HMI_popups&amp;diff=405"/>
		<updated>2026-03-01T17:01:11Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: Created page with &amp;quot; 200009 ← source selection    300000 ← entertainment drawer  300164 ← updateSuppServiceHFP    600007 ← joker key popup  600009 ← driving schoold popup  600003 ← UGDO learn  600004 ← UGDO Sync  600005 ← Charisma / Drive select  600006 ← SDS  600008 ← SDS   // one of those is partial popup on the right, most likely  2100008 ← OPS popup  2100400 ← OPS standalone popup   public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;  public static...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; 200009 ← source selection&lt;br /&gt;
 &lt;br /&gt;
 300000 ← entertainment drawer&lt;br /&gt;
 300164 ← updateSuppServiceHFP&lt;br /&gt;
 &lt;br /&gt;
 600007 ← joker key popup&lt;br /&gt;
 600009 ← driving schoold popup&lt;br /&gt;
 600003 ← UGDO learn&lt;br /&gt;
 600004 ← UGDO Sync&lt;br /&gt;
 600005 ← Charisma / Drive select&lt;br /&gt;
 600006 ← SDS&lt;br /&gt;
 600008 ← SDS&lt;br /&gt;
&lt;br /&gt;
 // one of those is partial popup on the right, most likely&lt;br /&gt;
 2100008 ← OPS popup&lt;br /&gt;
 2100400 ← OPS standalone popup&lt;br /&gt;
&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTELMAXWARNING_ID = 600000;&lt;br /&gt;
 public static final int POPUP_TEMPSHOWROOMVISIBLE_ID = 600001;&lt;br /&gt;
 public static final int POPUP_TEMPSYSTEMTHEFTPROTECTIONVISIBLE_ID = 600002;&lt;br /&gt;
&lt;br /&gt;
 // all phone related&lt;br /&gt;
  private void removeAllPopups() {&lt;br /&gt;
        this.removePopup(300170);&lt;br /&gt;
        this.removePopup(300171);&lt;br /&gt;
        this.removePopup(300172);&lt;br /&gt;
        this.removePopup(300173);&lt;br /&gt;
        this.removePopup(300174);&lt;br /&gt;
        this.removePopup(300175);&lt;br /&gt;
        this.removePopup(300169);&lt;br /&gt;
        this.removePopup(300168);&lt;br /&gt;
        this.removePopup(300167);&lt;br /&gt;
        this.removePopup(300176);&lt;br /&gt;
        this.removePopup(300166);&lt;br /&gt;
        this.removePopup(300185);&lt;br /&gt;
        this.removePopup(300186);&lt;br /&gt;
        this.removePopup(300183);&lt;br /&gt;
        this.removePopup(300184);&lt;br /&gt;
        this.removePopup(300181);&lt;br /&gt;
        this.removePopup(300182);&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=404</id>
		<title>SPORT HMI for Audi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=404"/>
		<updated>2026-02-28T18:03:57Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* Modifications with custom data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MMIHigh Sportanzeigen.png|thumb|alt=Audi MMI MIB2 SportHMI mockup|Audi MMI SportHMI mockup]]&lt;br /&gt;
&lt;br /&gt;
There are some indications of Sport_HMI app for Audi MIB2 firmware. But no-one yet have enabled it. Let&#039;s check methods from the VW/Skoda/Seat units and let&#039;s check how the [[LSD.JXE]] in Audi looks like when it comes to references to sport modes.&lt;br /&gt;
&lt;br /&gt;
== VW/SEAT/Skoda SportHMI enabling methods ==&lt;br /&gt;
For whatever reason, VW/SEAT/Skoda vehicles support SPORT HMI out from the factory, without some deep modifications of the system. All it needs is adaptation and FEC/SWaP code.&lt;br /&gt;
&lt;br /&gt;
Details: [[SPORT HMI Performance Monitor]]&lt;br /&gt;
&lt;br /&gt;
== GUI assets in Audi firmware ==&lt;br /&gt;
[[File:Audi SportHMI kzb assets.jpg|thumb|alt=Audi MIB2 MMI SportHMI GUI assets|Audi MIB2 MMI SportHMI GUI assets]]&lt;br /&gt;
 &lt;br /&gt;
There&#039;s a file &amp;lt;code&amp;gt;SPORT_HMI.kzb&amp;lt;/code&amp;gt; - a .kzb package. After extracting, it looks like Audi firmware contains some GUI assets for Sport Display submenu. There&#039;s clock gauge for power and torque, as well as bar gauge for temperature and boost. Also rendered fonts for the large readouts inside the clock gauges.&lt;br /&gt;
&lt;br /&gt;
So if we are looking for needed textures - all is here.&lt;br /&gt;
&lt;br /&gt;
Here we can see that those textures are referenced in [[LSD.JXE]] classes:&lt;br /&gt;
&lt;br /&gt;
 public static String SPORT_HMI = &amp;quot;SPORT_HMI.kzb&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 public static int mib2_sport_hmi_kzbFile = 100;&lt;br /&gt;
&lt;br /&gt;
== SportHMI adaptation channels ==&lt;br /&gt;
We all know that there are adaptation channels related to the Performance Monitor in VW, SEAT, and Skoda → http://wiki.mib-helper.com/index.php?title=SPORT_HMI_Performance_Monitor#Adaptation&lt;br /&gt;
&lt;br /&gt;
And it looks like in Audi those are also connected to Sport Display function. Look at this part of code:&lt;br /&gt;
        if (this.isComponentAvailable((short)52, carFuncAdap)) {&lt;br /&gt;
            this.addCarComponent(new SportComponentEvo(this));&lt;br /&gt;
            this.addCarComponent(new SportKombiComponentEvo(this));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;isComponentAvailable((short)52, carFuncAdap)&amp;lt;/code&amp;gt; simply checks if 52nd channel in &amp;lt;code&amp;gt;Car_Function_Adaptations_Gen2&amp;lt;/code&amp;gt; section is set to &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;. And 52nd channel is... You know which one - &amp;lt;code&amp;gt;[LO]_menu_display_SportHMI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sport and Sport Kombi classes ==&lt;br /&gt;
It looks like the app logic is split into two separate classes:&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI-Kombi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Kombi&amp;lt;/code&amp;gt; is designed for instrument cluster data (&amp;quot;Kombiinstrument&amp;quot;), which is the oil temperature.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a statement that creates the screen:&lt;br /&gt;
 protected Screen createScreen(int n, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            (...)&lt;br /&gt;
            case 600289: {&lt;br /&gt;
                return CarScreenBag1.cARSPORTMAIN(this, n2);&lt;br /&gt;
&lt;br /&gt;
This one returns name of the screen for diagnostic purposes&lt;br /&gt;
 case 600289: {&lt;br /&gt;
     return &amp;quot;CAR_SPORT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And this one executes conditions&lt;br /&gt;
 @Override&lt;br /&gt;
    public void executeCondition(int n, int n2, HMIView[] hMIViewArray, int n3) {&lt;br /&gt;
        switch (n2) {&lt;br /&gt;
        (...)              &lt;br /&gt;
            case 600289: {&lt;br /&gt;
                this.executeConditioncARSPORTMAINScreen(n, hMIViewArray, n3);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
...which look like this:&lt;br /&gt;
     private void executeConditioncARSPORTMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 601056: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(!this.evaluateSimpleChoiceModelValueEqualsCondition(-534050560, n2, -214497024));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602113: {&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[1] == null) break;&lt;br /&gt;
                ((OilTemperatureGaugeController)hMIViewArray[1]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602114: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ChargingAirPressureGaugeController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(36702464, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602116: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(70256896, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602118: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(103811328, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
From the above:&lt;br /&gt;
* 602113 - Oil temperature&lt;br /&gt;
* 602114 - Boost pressure&lt;br /&gt;
* 602116 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
* 602118 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
State machine class is also referring to the SportHMI:&lt;br /&gt;
 public static final int LD_CAR_SEL_SPORTDISPLAY;&lt;br /&gt;
Meaning of the above would be &amp;quot;Sport Display was selected from the CAR menu Left Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* 601 - SPORT_POWER&lt;br /&gt;
* 602 - SPORT_POWER_MAX&lt;br /&gt;
* 603 - SPORT_POWER_CURRENT&lt;br /&gt;
* 604 - SPORT_TORQUE&lt;br /&gt;
* 605 - SPORT_TORQUE_MAX&lt;br /&gt;
* 606 - SPORT_TORQUE_CURRENT&lt;br /&gt;
* 607 - SPORT_OIL_TEMPERATURE&lt;br /&gt;
* 608 - SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
== Why no Sport submenu in Car menu? ==&lt;br /&gt;
It looks like everything is there. All the programming logic, adaptation to activate, data pulls, GUI assets, inits... So why it is not working?&lt;br /&gt;
&lt;br /&gt;
One of my theories is that at some point of development they decided to move the Sport HMI functionality from MIB to VC. On one side it makes sense - feature will not be duplicated on both displays. But on the other hand VC is optional equipment and not all cars have it.&lt;br /&gt;
&lt;br /&gt;
For whatever reasons it was - they needed to remove Sport HMI from Audi MIB. And by &amp;quot;remove&amp;quot; I mean &amp;quot;make it not visible for user&amp;quot;. That&#039;s why all the mentioned above parts of code and assets are there. So how they did it? And how to restore it?&lt;br /&gt;
&lt;br /&gt;
Maybe let&#039;s analyse how the MENU and CAR MENU structures looks like:&lt;br /&gt;
* Car&lt;br /&gt;
** Audi Drive Select&lt;br /&gt;
** Charging (eTron)&lt;br /&gt;
** Statistics (eTron)&lt;br /&gt;
** Vehicle Settings&lt;br /&gt;
** Drive Assist&lt;br /&gt;
** Air Condition&lt;br /&gt;
** Service and Checks&lt;br /&gt;
** Boardbook&lt;br /&gt;
* Sound&lt;br /&gt;
* Media&lt;br /&gt;
* Phone&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
By the first look, I can see some similarities to the &amp;lt;code&amp;gt;CarEvoMenuEntryStructure.java&amp;lt;/code&amp;gt; class:&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry2 = this.entryFactory.createMenuEntry(1596459264, &amp;quot;CAR_FUNC_CHARISMA&amp;quot;, -282457856);&lt;br /&gt;
 MenuEntry menuEntry3 = this.entryFactory.createMenuEntry(1630013696, &amp;quot;CAR_FUNC_SETTINGS&amp;quot;, -1305802496);&lt;br /&gt;
 MenuEntry menuEntry4 = this.entryFactory.createMenuEntry(1646790912, &amp;quot;CAR_FUNC_DRIVE_ASSIST&amp;quot;, -1339356928);&lt;br /&gt;
 MenuEntry menuEntry5 = this.entryFactory.createMenuEntry(1663568128, &amp;quot;CAR_FUNC_AIR_CONDITION&amp;quot;, -1389688576);&lt;br /&gt;
 MenuEntry menuEntry6 = this.entryFactory.createMenuEntry(1680345344, &amp;quot;CAR_FUNC_AUXHEAT&amp;quot;, -1356134144);&lt;br /&gt;
 MenuEntry menuEntry7 = this.entryFactory.createMenuEntry(10, &amp;quot;CAR_FUNC_AUX_AC)&amp;quot;, -1372911360);&lt;br /&gt;
 MenuEntry menuEntry8 = this.entryFactory.createMenuEntry(11, &amp;quot;CAR_FUNC_AUX_COMBINED)&amp;quot;, 1210976512);&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(1713899776, &amp;quot;CAR_FUNC_SERVICE&amp;quot;, -1322579712);&lt;br /&gt;
 MenuEntry menuEntry10 = this.entryFactory.createMenuEntry(1177094400, &amp;quot;CAR_FUNC_BORDBOOK&amp;quot;, 1412172032);&lt;br /&gt;
 MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(640289024, &amp;quot;CAR_FUNC_CHARGE&amp;quot;, -1842607872);&lt;br /&gt;
 MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(-383121152, &amp;quot;CAR_FUNC_STATISTICS&amp;quot;, -349370112);&lt;br /&gt;
 MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(12, &amp;quot;CAR_FUNC_SPORT&amp;quot;, 120588544);&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s check how the top-level menus are initialised and compare them to the SportHMI class to find what&#039;s missing. Maybe this will point us into the right direction.&lt;br /&gt;
&lt;br /&gt;
After quick check and compare, it looks like there&#039;s one function missing from the SportComponentEvo class. It&#039;s &amp;lt;code&amp;gt;updateMenuEntryVisibility()&amp;lt;/code&amp;gt; that appears in other car submenu classes. Not only those top-level. All of them. Is this it?&lt;br /&gt;
&lt;br /&gt;
== Moment of Doubt ==&lt;br /&gt;
Had a chance to test-drive an Audi SQ7 (4M) and played a bit with the Drive Select functions. There are &amp;quot;off-road&amp;quot; and &amp;quot;allroad&amp;quot; modes which enable additional element - Tilt Angle Display (TAD). This new element is visible directly on the Drive Select screen, and not as a separate submenu in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
So it got me wondering. What if the SportHMI is also just an additional widget that should be displayed on the Drive Select screen when &amp;quot;Sport&amp;quot; or &amp;quot;Race&amp;quot; mode is selected? If so, it would mean that this function might be controlled via Gateway with proper dataset. Or it&#039;s a separate submenu but still enabled with a gateway dataset?&lt;br /&gt;
&lt;br /&gt;
I need to look into the Charisma menu and TAD elements in LSH.JXE...&lt;br /&gt;
&lt;br /&gt;
 private IMenuEntry[] buildMenuCharisma(LogChannel logChannel) {&lt;br /&gt;
  // (...) &lt;br /&gt;
  menuEntry8.setFunctionalStateValues(new int[]{4}); //LIFT&lt;br /&gt;
  menuEntry2.setFunctionalStateValues(new int[]{4}); //OFFROAD&lt;br /&gt;
  menuEntry10.setFunctionalStateValues(new int[]{4}); //LIFT OFFROAD&lt;br /&gt;
  menuEntry5.setFunctionalStateValues(new int[]{8}); //EFFICIENCY&lt;br /&gt;
  // (...) &lt;br /&gt;
  MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(250, &amp;quot;CHARISMA_EFFICIENCY_BCME_ADD_INFO&amp;quot;, 1898776832);&lt;br /&gt;
  MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(252, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMPTION_BARGRAPH&amp;quot;, 1613564160);&lt;br /&gt;
  MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(251, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMER_LIST&amp;quot;, 1915554048);&lt;br /&gt;
  menuEntry11.setChildren(new IMenuEntry[]{menuEntry12, menuEntry13});&lt;br /&gt;
  MenuEntry menuEntry14 = this.entryFactory.createMenuEntry(326, &amp;quot;TAD_MAIN&amp;quot;, 1999374592);&lt;br /&gt;
  MenuEntry menuEntry15 = this.entryFactory.createMenuEntry(328, &amp;quot;TAD_PITCH_ANGLE&amp;quot;, 1965820160);&lt;br /&gt;
  MenuEntry menuEntry16 = this.entryFactory.createMenuEntry(327, &amp;quot;TAD_ROLL_ANGLE&amp;quot;, 1982597376);&lt;br /&gt;
  menuEntry14.setChildren(new IMenuEntry[]{menuEntry15, menuEntry16});&lt;br /&gt;
  return new IMenuEntry[]{menuEntry, menuEntry2, menuEntry3, menuEntry4, menuEntry5, menuEntry7, menuEntry6, menuEntry8, menuEntry10, menuEntry9};&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nope! It looks like only Efficiency Mode and Lift/Offroad Modes have children elements. No SportHMI mentions here. And previously mentioned &amp;lt;code&amp;gt;LD_CAR_SEL_SPORTDISPLAY&amp;lt;/code&amp;gt; was linked to left drawer, which means that the SportHMI needs to be present in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
But there&#039;s a RACE Mode mentioned here and there.&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(238, &amp;quot;CHARISMA_PROFILE_RACE&amp;quot;, 305203456);&lt;br /&gt;
&lt;br /&gt;
 public boolean isRacesport() {&lt;br /&gt;
  return this.racesport;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Maybe that&#039;s it? Maybe the RACE Charisma mode needs to be enabled from the SportHMI to be accessible?&lt;br /&gt;
&lt;br /&gt;
Just to be sure, I will check if there are some &amp;quot;RACE&amp;quot; references in the code. But not now.&lt;br /&gt;
&lt;br /&gt;
== Figuring out the missing data ==&lt;br /&gt;
Played around with KeyCombo (that&#039;s a separate topic) and found that Audi HMI has an build-in app for HMI tests. It shows a lot of data about visible items and data provided by the rest of the car.&lt;br /&gt;
&lt;br /&gt;
Here we can see which information is provided &amp;lt;code&amp;gt;state: 2&amp;lt;/code&amp;gt;, and which is not &amp;lt;code&amp;gt;state: 0&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SportHMI&lt;br /&gt;
  DynamicVehicleInfoHighFrequentViewOptions(&lt;br /&gt;
   longitudinalAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   engineSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   powermeter=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   lateralAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   relChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   absChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentTorque=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   yawRate=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   brakePressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   wheelAngle=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   acceleratorPosition=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   vehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   systemCycleDistance=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   realVehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   shiftLight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   allWheelDriveTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espOversteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espUndersteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   relAllWheelDriveTorque=ViewOption(state: 0, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
  SemiStaticDataViewOptions(&lt;br /&gt;
   maxChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   engineDisplacement=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   typeOfInjectionSystem=ViewOption(state: 2, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
And here we can check which components in the SPORT HMI are fully functional and which are not:&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602119&lt;br /&gt;
        Parent: CAR_MAIN&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER&lt;br /&gt;
            SPORT_TORQUE&lt;br /&gt;
            SPORT_OIL_TEMPERATURE&lt;br /&gt;
            SPORT_AIR_PRESSURE&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602116&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER_MAX&lt;br /&gt;
            SPORT_POWER_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602118&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_TORQUE_MAX&lt;br /&gt;
            SPORT_TORQUE_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
        State: INVISIBLE&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_TORQUE&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
        State: Invisible&lt;br /&gt;
        ModelID: 602113&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602114&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
&lt;br /&gt;
Two things (&amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; are invisible. This partially correlates with unavailable &amp;lt;code&amp;gt;maxTorque&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Is it that this missing data is what&#039;s locking the SPORT submenu to appear? Let&#039;s find out!&lt;br /&gt;
&lt;br /&gt;
== Logging HMI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;run_lsd.sh&amp;lt;/code&amp;gt; script, that starts the &amp;lt;code&amp;gt;LSD.jxe&amp;lt;/code&amp;gt; can be adjusted for logging different components. &lt;br /&gt;
&lt;br /&gt;
=== App.Car.Sport=5 ===&lt;br /&gt;
Let&#039;s start with &amp;lt;code&amp;gt;App.Car.Sport&amp;lt;/code&amp;gt; set to level &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, so it will output some data.&lt;br /&gt;
&lt;br /&gt;
 00:00:42.715 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateSemiStaticVehicleData:SemiStaticVehicleData(&lt;br /&gt;
  maxChargingAirPressure=2.5,&lt;br /&gt;
  maxOutputPower=228,&lt;br /&gt;
  maxTorque=0,&lt;br /&gt;
  engineDisplacement=2.0,&lt;br /&gt;
  typeOfInjectionSystem=0),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.720 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateBCOilTemperatureValue:null,&lt;br /&gt;
 valid:2&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.722 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateDynamicVehicleInfoHighFrequent:DynamicVehicleInfoHighFrequent(&lt;br /&gt;
  longitudinalAcceleration=0.0,&lt;br /&gt;
  engineSpeed=699,&lt;br /&gt;
  powermeter=0,&lt;br /&gt;
  lateralAcceleration=-0.01,&lt;br /&gt;
  relChargingAirPressure=0,&lt;br /&gt;
  absChargingAirPressure=0.29,&lt;br /&gt;
  currentOutputPower=1.8,&lt;br /&gt;
  yawRate=-0.09,&lt;br /&gt;
  brakePressure=0.0,&lt;br /&gt;
  wheelAngle=8,&lt;br /&gt;
  acceleratorPosition=0,&lt;br /&gt;
  vehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  currentTorque=25,&lt;br /&gt;
  systemCycleDistance=0,&lt;br /&gt;
  torqueDistributionFrontLeft=0,&lt;br /&gt;
  torqueDistributionFrontRight=0,&lt;br /&gt;
  torqueDistributionRearLeft=0,&lt;br /&gt;
  torqueDistributionRearRight=0,&lt;br /&gt;
  realVehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  shiftLight=0,&lt;br /&gt;
  allWheelDriveTorque=0,&lt;br /&gt;
  espOversteering=0.0,&lt;br /&gt;
  espUndersteering=0.0,&lt;br /&gt;
  espWheelVelocityFrontLeft=0.0,&lt;br /&gt;
  espWheelVelocityFrontRight=0.0,&lt;br /&gt;
  espWheelVelocityRearLeft=0.0,&lt;br /&gt;
  espWheelVelocityRearRight=0.0,&lt;br /&gt;
  relAllWheelDriveTorque=0.0),&lt;br /&gt;
 valid:1&lt;br /&gt;
&lt;br /&gt;
This proves two things:&lt;br /&gt;
1. Sport_HMI exists, works, creates output, and should be functional.&lt;br /&gt;
2. Some of the data from DSI is not provided or is zeroed.&lt;br /&gt;
&lt;br /&gt;
=== App.Car.MER=5 ===&lt;br /&gt;
Since the Sport_HMI is clearly there, but it&#039;s not visible in the CAR menu, let&#039;s check how the Menu Entry Register logs look like.&lt;br /&gt;
&lt;br /&gt;
 00:00:11.913 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_MAIN&#039;)#setChildren] children=&lt;br /&gt;
 CAR_FUNC_CHARISMA&lt;br /&gt;
 CAR_FUNC_SETTINGS&lt;br /&gt;
 CAR_FUNC_DRIVE_ASSIST&lt;br /&gt;
 CAR_FUNC_AIR_CONDITION&lt;br /&gt;
 CAR_FUNC_AUXHEAT&lt;br /&gt;
 CAR_FUNC_AUX_AC)&lt;br /&gt;
 CAR_FUNC_AUX_COMBINED)&lt;br /&gt;
 CAR_FUNC_SERVICE&lt;br /&gt;
 CAR_FUNC_BORDBOOK&lt;br /&gt;
 CAR_FUNC_CHARGE&lt;br /&gt;
 CAR_FUNC_STATISTICS&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.628 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
 SPORT_TORQUE_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.764 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.765 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
Menu structure is created correctly. Now let&#039;s dig some more and check final status of each SPORT element.&lt;br /&gt;
&lt;br /&gt;
 00:00:34.812 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_MAX&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.084 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_MAX&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.086 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_OIL_TEMPERATURE&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.647 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_AIR_PRESSURE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.649 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
&lt;br /&gt;
It looks like the &amp;lt;code&amp;gt;state=&#039;0&#039;&amp;lt;/code&amp;gt; is reported if the component is working correctly. And two component&#039;s are not. &amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; - same two that were missing or zeroed in DSI-provided data. Huh...&lt;br /&gt;
&lt;br /&gt;
== How to enable it? ==&lt;br /&gt;
I have 4 ideas, actually. Not sure which is best and if any would work.&lt;br /&gt;
# modify SportHMI classes&lt;br /&gt;
# patch DSI with missing data&lt;br /&gt;
# deregister components from Menu Entry that cause it to be invisible&lt;br /&gt;
# create a shortcut for SportHMI to bypass the Menu Entry Registry all together&lt;br /&gt;
&lt;br /&gt;
== Modifications with custom data ==&lt;br /&gt;
//TODO&lt;br /&gt;
ideas:&lt;br /&gt;
* oil temp → gearbox temp&lt;br /&gt;
* boost pressure → oil pressure&lt;br /&gt;
* torque → steering angle&lt;br /&gt;
* power → tachometer&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Tweaks]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=403</id>
		<title>SPORT HMI for Audi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=403"/>
		<updated>2026-02-22T17:33:56Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* Sport and Sport Kombi classes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MMIHigh Sportanzeigen.png|thumb|alt=Audi MMI MIB2 SportHMI mockup|Audi MMI SportHMI mockup]]&lt;br /&gt;
&lt;br /&gt;
There are some indications of Sport_HMI app for Audi MIB2 firmware. But no-one yet have enabled it. Let&#039;s check methods from the VW/Skoda/Seat units and let&#039;s check how the [[LSD.JXE]] in Audi looks like when it comes to references to sport modes.&lt;br /&gt;
&lt;br /&gt;
== VW/SEAT/Skoda SportHMI enabling methods ==&lt;br /&gt;
For whatever reason, VW/SEAT/Skoda vehicles support SPORT HMI out from the factory, without some deep modifications of the system. All it needs is adaptation and FEC/SWaP code.&lt;br /&gt;
&lt;br /&gt;
Details: [[SPORT HMI Performance Monitor]]&lt;br /&gt;
&lt;br /&gt;
== GUI assets in Audi firmware ==&lt;br /&gt;
[[File:Audi SportHMI kzb assets.jpg|thumb|alt=Audi MIB2 MMI SportHMI GUI assets|Audi MIB2 MMI SportHMI GUI assets]]&lt;br /&gt;
 &lt;br /&gt;
There&#039;s a file &amp;lt;code&amp;gt;SPORT_HMI.kzb&amp;lt;/code&amp;gt; - a .kzb package. After extracting, it looks like Audi firmware contains some GUI assets for Sport Display submenu. There&#039;s clock gauge for power and torque, as well as bar gauge for temperature and boost. Also rendered fonts for the large readouts inside the clock gauges.&lt;br /&gt;
&lt;br /&gt;
So if we are looking for needed textures - all is here.&lt;br /&gt;
&lt;br /&gt;
Here we can see that those textures are referenced in [[LSD.JXE]] classes:&lt;br /&gt;
&lt;br /&gt;
 public static String SPORT_HMI = &amp;quot;SPORT_HMI.kzb&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 public static int mib2_sport_hmi_kzbFile = 100;&lt;br /&gt;
&lt;br /&gt;
== SportHMI adaptation channels ==&lt;br /&gt;
We all know that there are adaptation channels related to the Performance Monitor in VW, SEAT, and Skoda → http://wiki.mib-helper.com/index.php?title=SPORT_HMI_Performance_Monitor#Adaptation&lt;br /&gt;
&lt;br /&gt;
And it looks like in Audi those are also connected to Sport Display function. Look at this part of code:&lt;br /&gt;
        if (this.isComponentAvailable((short)52, carFuncAdap)) {&lt;br /&gt;
            this.addCarComponent(new SportComponentEvo(this));&lt;br /&gt;
            this.addCarComponent(new SportKombiComponentEvo(this));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;isComponentAvailable((short)52, carFuncAdap)&amp;lt;/code&amp;gt; simply checks if 52nd channel in &amp;lt;code&amp;gt;Car_Function_Adaptations_Gen2&amp;lt;/code&amp;gt; section is set to &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;. And 52nd channel is... You know which one - &amp;lt;code&amp;gt;[LO]_menu_display_SportHMI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sport and Sport Kombi classes ==&lt;br /&gt;
It looks like the app logic is split into two separate classes:&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI-Kombi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Kombi&amp;lt;/code&amp;gt; is designed for instrument cluster data (&amp;quot;Kombiinstrument&amp;quot;), which is the oil temperature.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a statement that creates the screen:&lt;br /&gt;
 protected Screen createScreen(int n, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            (...)&lt;br /&gt;
            case 600289: {&lt;br /&gt;
                return CarScreenBag1.cARSPORTMAIN(this, n2);&lt;br /&gt;
&lt;br /&gt;
This one returns name of the screen for diagnostic purposes&lt;br /&gt;
 case 600289: {&lt;br /&gt;
     return &amp;quot;CAR_SPORT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And this one executes conditions&lt;br /&gt;
 @Override&lt;br /&gt;
    public void executeCondition(int n, int n2, HMIView[] hMIViewArray, int n3) {&lt;br /&gt;
        switch (n2) {&lt;br /&gt;
        (...)              &lt;br /&gt;
            case 600289: {&lt;br /&gt;
                this.executeConditioncARSPORTMAINScreen(n, hMIViewArray, n3);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
...which look like this:&lt;br /&gt;
     private void executeConditioncARSPORTMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 601056: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(!this.evaluateSimpleChoiceModelValueEqualsCondition(-534050560, n2, -214497024));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602113: {&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[1] == null) break;&lt;br /&gt;
                ((OilTemperatureGaugeController)hMIViewArray[1]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602114: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ChargingAirPressureGaugeController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(36702464, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602116: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(70256896, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602118: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(103811328, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
From the above:&lt;br /&gt;
* 602113 - Oil temperature&lt;br /&gt;
* 602114 - Boost pressure&lt;br /&gt;
* 602116 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
* 602118 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
State machine class is also referring to the SportHMI:&lt;br /&gt;
 public static final int LD_CAR_SEL_SPORTDISPLAY;&lt;br /&gt;
Meaning of the above would be &amp;quot;Sport Display was selected from the CAR menu Left Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* 601 - SPORT_POWER&lt;br /&gt;
* 602 - SPORT_POWER_MAX&lt;br /&gt;
* 603 - SPORT_POWER_CURRENT&lt;br /&gt;
* 604 - SPORT_TORQUE&lt;br /&gt;
* 605 - SPORT_TORQUE_MAX&lt;br /&gt;
* 606 - SPORT_TORQUE_CURRENT&lt;br /&gt;
* 607 - SPORT_OIL_TEMPERATURE&lt;br /&gt;
* 608 - SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
== Why no Sport submenu in Car menu? ==&lt;br /&gt;
It looks like everything is there. All the programming logic, adaptation to activate, data pulls, GUI assets, inits... So why it is not working?&lt;br /&gt;
&lt;br /&gt;
One of my theories is that at some point of development they decided to move the Sport HMI functionality from MIB to VC. On one side it makes sense - feature will not be duplicated on both displays. But on the other hand VC is optional equipment and not all cars have it.&lt;br /&gt;
&lt;br /&gt;
For whatever reasons it was - they needed to remove Sport HMI from Audi MIB. And by &amp;quot;remove&amp;quot; I mean &amp;quot;make it not visible for user&amp;quot;. That&#039;s why all the mentioned above parts of code and assets are there. So how they did it? And how to restore it?&lt;br /&gt;
&lt;br /&gt;
Maybe let&#039;s analyse how the MENU and CAR MENU structures looks like:&lt;br /&gt;
* Car&lt;br /&gt;
** Audi Drive Select&lt;br /&gt;
** Charging (eTron)&lt;br /&gt;
** Statistics (eTron)&lt;br /&gt;
** Vehicle Settings&lt;br /&gt;
** Drive Assist&lt;br /&gt;
** Air Condition&lt;br /&gt;
** Service and Checks&lt;br /&gt;
** Boardbook&lt;br /&gt;
* Sound&lt;br /&gt;
* Media&lt;br /&gt;
* Phone&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
By the first look, I can see some similarities to the &amp;lt;code&amp;gt;CarEvoMenuEntryStructure.java&amp;lt;/code&amp;gt; class:&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry2 = this.entryFactory.createMenuEntry(1596459264, &amp;quot;CAR_FUNC_CHARISMA&amp;quot;, -282457856);&lt;br /&gt;
 MenuEntry menuEntry3 = this.entryFactory.createMenuEntry(1630013696, &amp;quot;CAR_FUNC_SETTINGS&amp;quot;, -1305802496);&lt;br /&gt;
 MenuEntry menuEntry4 = this.entryFactory.createMenuEntry(1646790912, &amp;quot;CAR_FUNC_DRIVE_ASSIST&amp;quot;, -1339356928);&lt;br /&gt;
 MenuEntry menuEntry5 = this.entryFactory.createMenuEntry(1663568128, &amp;quot;CAR_FUNC_AIR_CONDITION&amp;quot;, -1389688576);&lt;br /&gt;
 MenuEntry menuEntry6 = this.entryFactory.createMenuEntry(1680345344, &amp;quot;CAR_FUNC_AUXHEAT&amp;quot;, -1356134144);&lt;br /&gt;
 MenuEntry menuEntry7 = this.entryFactory.createMenuEntry(10, &amp;quot;CAR_FUNC_AUX_AC)&amp;quot;, -1372911360);&lt;br /&gt;
 MenuEntry menuEntry8 = this.entryFactory.createMenuEntry(11, &amp;quot;CAR_FUNC_AUX_COMBINED)&amp;quot;, 1210976512);&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(1713899776, &amp;quot;CAR_FUNC_SERVICE&amp;quot;, -1322579712);&lt;br /&gt;
 MenuEntry menuEntry10 = this.entryFactory.createMenuEntry(1177094400, &amp;quot;CAR_FUNC_BORDBOOK&amp;quot;, 1412172032);&lt;br /&gt;
 MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(640289024, &amp;quot;CAR_FUNC_CHARGE&amp;quot;, -1842607872);&lt;br /&gt;
 MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(-383121152, &amp;quot;CAR_FUNC_STATISTICS&amp;quot;, -349370112);&lt;br /&gt;
 MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(12, &amp;quot;CAR_FUNC_SPORT&amp;quot;, 120588544);&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s check how the top-level menus are initialised and compare them to the SportHMI class to find what&#039;s missing. Maybe this will point us into the right direction.&lt;br /&gt;
&lt;br /&gt;
After quick check and compare, it looks like there&#039;s one function missing from the SportComponentEvo class. It&#039;s &amp;lt;code&amp;gt;updateMenuEntryVisibility()&amp;lt;/code&amp;gt; that appears in other car submenu classes. Not only those top-level. All of them. Is this it?&lt;br /&gt;
&lt;br /&gt;
== Moment of Doubt ==&lt;br /&gt;
Had a chance to test-drive an Audi SQ7 (4M) and played a bit with the Drive Select functions. There are &amp;quot;off-road&amp;quot; and &amp;quot;allroad&amp;quot; modes which enable additional element - Tilt Angle Display (TAD). This new element is visible directly on the Drive Select screen, and not as a separate submenu in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
So it got me wondering. What if the SportHMI is also just an additional widget that should be displayed on the Drive Select screen when &amp;quot;Sport&amp;quot; or &amp;quot;Race&amp;quot; mode is selected? If so, it would mean that this function might be controlled via Gateway with proper dataset. Or it&#039;s a separate submenu but still enabled with a gateway dataset?&lt;br /&gt;
&lt;br /&gt;
I need to look into the Charisma menu and TAD elements in LSH.JXE...&lt;br /&gt;
&lt;br /&gt;
 private IMenuEntry[] buildMenuCharisma(LogChannel logChannel) {&lt;br /&gt;
  // (...) &lt;br /&gt;
  menuEntry8.setFunctionalStateValues(new int[]{4}); //LIFT&lt;br /&gt;
  menuEntry2.setFunctionalStateValues(new int[]{4}); //OFFROAD&lt;br /&gt;
  menuEntry10.setFunctionalStateValues(new int[]{4}); //LIFT OFFROAD&lt;br /&gt;
  menuEntry5.setFunctionalStateValues(new int[]{8}); //EFFICIENCY&lt;br /&gt;
  // (...) &lt;br /&gt;
  MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(250, &amp;quot;CHARISMA_EFFICIENCY_BCME_ADD_INFO&amp;quot;, 1898776832);&lt;br /&gt;
  MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(252, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMPTION_BARGRAPH&amp;quot;, 1613564160);&lt;br /&gt;
  MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(251, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMER_LIST&amp;quot;, 1915554048);&lt;br /&gt;
  menuEntry11.setChildren(new IMenuEntry[]{menuEntry12, menuEntry13});&lt;br /&gt;
  MenuEntry menuEntry14 = this.entryFactory.createMenuEntry(326, &amp;quot;TAD_MAIN&amp;quot;, 1999374592);&lt;br /&gt;
  MenuEntry menuEntry15 = this.entryFactory.createMenuEntry(328, &amp;quot;TAD_PITCH_ANGLE&amp;quot;, 1965820160);&lt;br /&gt;
  MenuEntry menuEntry16 = this.entryFactory.createMenuEntry(327, &amp;quot;TAD_ROLL_ANGLE&amp;quot;, 1982597376);&lt;br /&gt;
  menuEntry14.setChildren(new IMenuEntry[]{menuEntry15, menuEntry16});&lt;br /&gt;
  return new IMenuEntry[]{menuEntry, menuEntry2, menuEntry3, menuEntry4, menuEntry5, menuEntry7, menuEntry6, menuEntry8, menuEntry10, menuEntry9};&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nope! It looks like only Efficiency Mode and Lift/Offroad Modes have children elements. No SportHMI mentions here. And previously mentioned &amp;lt;code&amp;gt;LD_CAR_SEL_SPORTDISPLAY&amp;lt;/code&amp;gt; was linked to left drawer, which means that the SportHMI needs to be present in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
But there&#039;s a RACE Mode mentioned here and there.&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(238, &amp;quot;CHARISMA_PROFILE_RACE&amp;quot;, 305203456);&lt;br /&gt;
&lt;br /&gt;
 public boolean isRacesport() {&lt;br /&gt;
  return this.racesport;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Maybe that&#039;s it? Maybe the RACE Charisma mode needs to be enabled from the SportHMI to be accessible?&lt;br /&gt;
&lt;br /&gt;
Just to be sure, I will check if there are some &amp;quot;RACE&amp;quot; references in the code. But not now.&lt;br /&gt;
&lt;br /&gt;
== Figuring out the missing data ==&lt;br /&gt;
Played around with KeyCombo (that&#039;s a separate topic) and found that Audi HMI has an build-in app for HMI tests. It shows a lot of data about visible items and data provided by the rest of the car.&lt;br /&gt;
&lt;br /&gt;
Here we can see which information is provided &amp;lt;code&amp;gt;state: 2&amp;lt;/code&amp;gt;, and which is not &amp;lt;code&amp;gt;state: 0&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SportHMI&lt;br /&gt;
  DynamicVehicleInfoHighFrequentViewOptions(&lt;br /&gt;
   longitudinalAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   engineSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   powermeter=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   lateralAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   relChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   absChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentTorque=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   yawRate=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   brakePressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   wheelAngle=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   acceleratorPosition=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   vehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   systemCycleDistance=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   realVehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   shiftLight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   allWheelDriveTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espOversteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espUndersteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   relAllWheelDriveTorque=ViewOption(state: 0, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
  SemiStaticDataViewOptions(&lt;br /&gt;
   maxChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   engineDisplacement=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   typeOfInjectionSystem=ViewOption(state: 2, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
And here we can check which components in the SPORT HMI are fully functional and which are not:&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602119&lt;br /&gt;
        Parent: CAR_MAIN&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER&lt;br /&gt;
            SPORT_TORQUE&lt;br /&gt;
            SPORT_OIL_TEMPERATURE&lt;br /&gt;
            SPORT_AIR_PRESSURE&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602116&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER_MAX&lt;br /&gt;
            SPORT_POWER_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602118&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_TORQUE_MAX&lt;br /&gt;
            SPORT_TORQUE_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
        State: INVISIBLE&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_TORQUE&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
        State: Invisible&lt;br /&gt;
        ModelID: 602113&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602114&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
&lt;br /&gt;
Two things (&amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; are invisible. This partially correlates with unavailable &amp;lt;code&amp;gt;maxTorque&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Is it that this missing data is what&#039;s locking the SPORT submenu to appear? Let&#039;s find out!&lt;br /&gt;
&lt;br /&gt;
== Logging HMI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;run_lsd.sh&amp;lt;/code&amp;gt; script, that starts the &amp;lt;code&amp;gt;LSD.jxe&amp;lt;/code&amp;gt; can be adjusted for logging different components. &lt;br /&gt;
&lt;br /&gt;
=== App.Car.Sport=5 ===&lt;br /&gt;
Let&#039;s start with &amp;lt;code&amp;gt;App.Car.Sport&amp;lt;/code&amp;gt; set to level &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, so it will output some data.&lt;br /&gt;
&lt;br /&gt;
 00:00:42.715 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateSemiStaticVehicleData:SemiStaticVehicleData(&lt;br /&gt;
  maxChargingAirPressure=2.5,&lt;br /&gt;
  maxOutputPower=228,&lt;br /&gt;
  maxTorque=0,&lt;br /&gt;
  engineDisplacement=2.0,&lt;br /&gt;
  typeOfInjectionSystem=0),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.720 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateBCOilTemperatureValue:null,&lt;br /&gt;
 valid:2&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.722 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateDynamicVehicleInfoHighFrequent:DynamicVehicleInfoHighFrequent(&lt;br /&gt;
  longitudinalAcceleration=0.0,&lt;br /&gt;
  engineSpeed=699,&lt;br /&gt;
  powermeter=0,&lt;br /&gt;
  lateralAcceleration=-0.01,&lt;br /&gt;
  relChargingAirPressure=0,&lt;br /&gt;
  absChargingAirPressure=0.29,&lt;br /&gt;
  currentOutputPower=1.8,&lt;br /&gt;
  yawRate=-0.09,&lt;br /&gt;
  brakePressure=0.0,&lt;br /&gt;
  wheelAngle=8,&lt;br /&gt;
  acceleratorPosition=0,&lt;br /&gt;
  vehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  currentTorque=25,&lt;br /&gt;
  systemCycleDistance=0,&lt;br /&gt;
  torqueDistributionFrontLeft=0,&lt;br /&gt;
  torqueDistributionFrontRight=0,&lt;br /&gt;
  torqueDistributionRearLeft=0,&lt;br /&gt;
  torqueDistributionRearRight=0,&lt;br /&gt;
  realVehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  shiftLight=0,&lt;br /&gt;
  allWheelDriveTorque=0,&lt;br /&gt;
  espOversteering=0.0,&lt;br /&gt;
  espUndersteering=0.0,&lt;br /&gt;
  espWheelVelocityFrontLeft=0.0,&lt;br /&gt;
  espWheelVelocityFrontRight=0.0,&lt;br /&gt;
  espWheelVelocityRearLeft=0.0,&lt;br /&gt;
  espWheelVelocityRearRight=0.0,&lt;br /&gt;
  relAllWheelDriveTorque=0.0),&lt;br /&gt;
 valid:1&lt;br /&gt;
&lt;br /&gt;
This proves two things:&lt;br /&gt;
1. Sport_HMI exists, works, creates output, and should be functional.&lt;br /&gt;
2. Some of the data from DSI is not provided or is zeroed.&lt;br /&gt;
&lt;br /&gt;
=== App.Car.MER=5 ===&lt;br /&gt;
Since the Sport_HMI is clearly there, but it&#039;s not visible in the CAR menu, let&#039;s check how the Menu Entry Register logs look like.&lt;br /&gt;
&lt;br /&gt;
 00:00:11.913 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_MAIN&#039;)#setChildren] children=&lt;br /&gt;
 CAR_FUNC_CHARISMA&lt;br /&gt;
 CAR_FUNC_SETTINGS&lt;br /&gt;
 CAR_FUNC_DRIVE_ASSIST&lt;br /&gt;
 CAR_FUNC_AIR_CONDITION&lt;br /&gt;
 CAR_FUNC_AUXHEAT&lt;br /&gt;
 CAR_FUNC_AUX_AC)&lt;br /&gt;
 CAR_FUNC_AUX_COMBINED)&lt;br /&gt;
 CAR_FUNC_SERVICE&lt;br /&gt;
 CAR_FUNC_BORDBOOK&lt;br /&gt;
 CAR_FUNC_CHARGE&lt;br /&gt;
 CAR_FUNC_STATISTICS&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.628 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
 SPORT_TORQUE_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.764 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.765 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
Menu structure is created correctly. Now let&#039;s dig some more and check final status of each SPORT element.&lt;br /&gt;
&lt;br /&gt;
 00:00:34.812 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_MAX&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.084 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_MAX&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.086 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_OIL_TEMPERATURE&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.647 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_AIR_PRESSURE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.649 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
&lt;br /&gt;
It looks like the &amp;lt;code&amp;gt;state=&#039;0&#039;&amp;lt;/code&amp;gt; is reported if the component is working correctly. And two component&#039;s are not. &amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; - same two that were missing or zeroed in DSI-provided data. Huh...&lt;br /&gt;
&lt;br /&gt;
== Modifications with custom data ==&lt;br /&gt;
//TODO&lt;br /&gt;
ideas:&lt;br /&gt;
* oil temp → gearbox temp&lt;br /&gt;
* boost pressure → oil pressure&lt;br /&gt;
* torque → steering angle&lt;br /&gt;
* power → tachometer&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Tweaks]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=Welcome_Sound_and_Heartbeat&amp;diff=402</id>
		<title>Welcome Sound and Heartbeat</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=Welcome_Sound_and_Heartbeat&amp;diff=402"/>
		<updated>2026-02-19T19:58:46Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;flags related to the availability of the feature&lt;br /&gt;
 CL_ANN_AMP_TONE_HEARTBEAT&lt;br /&gt;
 CL_ENT_AMP_TONE_WELCOME&lt;br /&gt;
 CL_ANN_AMP_MENU_TONE_HEARTBEAT&lt;br /&gt;
 TONEID_HEARTBEAT&lt;br /&gt;
 VOLUME_MENU_HEARTBEAT&lt;br /&gt;
 GREY_OUT_POPUP_HEARTBEAT_CHOICE&lt;br /&gt;
 VOLUME_HEARTBEAT_RANGE&lt;br /&gt;
 FOCUS_LISTENER_VOLUME_HEARTBEAT_CHOICE&lt;br /&gt;
&lt;br /&gt;
 TONE_LEFT_DRAWER_AUDI_DEPARTURE_SOUND&lt;br /&gt;
&lt;br /&gt;
 case 1000034: {&lt;br /&gt;
  return &amp;quot;TONE_HEARTBEAT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
function that checks readiness sound coding/adatpation?&lt;br /&gt;
    private boolean isReadinessSoundCoded() {&lt;br /&gt;
        return this.env.getSysConst(4596) == 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
 this.setSysConstBool(4596, this.getAdaptationANP().isVehicleReadinessSoundAvailable());&lt;br /&gt;
 this.setSysConstBool(4606, this.getAdaptationANP().isVehicleLeavingSoundAvailable());&lt;br /&gt;
 &lt;br /&gt;
   @Override&lt;br /&gt;
    public boolean isVehicleReadinessSoundAvailable() {&lt;br /&gt;
        return this.getBoolean(57, 0, false);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    @Override&lt;br /&gt;
    public boolean isVehicleLeavingSoundAvailable() {&lt;br /&gt;
        return this.getBoolean(57, 1, false);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
function that triggers the sound&lt;br /&gt;
    @Override&lt;br /&gt;
    public void play() {&lt;br /&gt;
        this.lc.log(-2137614336, &amp;quot;[HeartbeatPlayer.play]&amp;quot;);&lt;br /&gt;
        this.ringTonePlayer.playTone(this.playMode, 10);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
looks like those sound are considered to be ringtones. volume setting might be set to ringtone volume. Or fixed value.&lt;br /&gt;
&lt;br /&gt;
    static /* synthetic */ int access$302(Heartbeat heartbeat, int n) {&lt;br /&gt;
        heartbeat.heartbeatVolume = n;&lt;br /&gt;
        return heartbeat.heartbeatVolume;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    static /* synthetic */ int access$700(Heartbeat heartbeat) {&lt;br /&gt;
        return heartbeat.minHeartbeatVolume;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the definition of the volume menu:&lt;br /&gt;
    public void createVolumeMenus() {&lt;br /&gt;
        this.loweredEntMenus[0] = this.loweredEntAps;&lt;br /&gt;
        this.loweredEntMenus[1] = this.loweredEntNav;&lt;br /&gt;
        this.menus[3] = new PhoneRingtoneVolumeRange(this);&lt;br /&gt;
        this.menus[1] = new TAVolumeRange(this);&lt;br /&gt;
        this.menus[2] = new SDSVolumeRange(this);&lt;br /&gt;
        this.menus[0] = new NaviVolumeRange(this);&lt;br /&gt;
        this.menus[4] = this.loweredEntNav;&lt;br /&gt;
        this.menus[5] = this.loweredEntAps;&lt;br /&gt;
        this.menus[6] = new TouchpadVolumeRange(this);&lt;br /&gt;
        this.menus[7] = new SMSBeepVolumeRange(this);&lt;br /&gt;
        this.menus[8] = new HeartbeatVolumeRange(this);&lt;br /&gt;
        this.menus[9] = new RingtoneSelectionVolumeRange(this);&lt;br /&gt;
        this.menus[10] = new PhoneMicGainVolumeRange(this);&lt;br /&gt;
        if (this.env.getSysConst(4162) == 1) {&lt;br /&gt;
            this.menus[11] = new WirelessChargingVolumeRange(this);&lt;br /&gt;
        }&lt;br /&gt;
        this.menus[12] = new InfoAnnouncementVolumeRange(this);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;menu[8]&amp;lt;/code&amp;gt; is for the sound that we are looking for. Let&#039;s check how the &amp;lt;code&amp;gt;HeartbeatVolumeRange&amp;lt;/code&amp;gt; class looks like:&lt;br /&gt;
 public class HeartbeatVolumeRange&lt;br /&gt;
 extends AbstractVolumeRange {&lt;br /&gt;
    private static final int CONNECTION;&lt;br /&gt;
    private final int[] volumeConnections = new int[]{48, 82};&lt;br /&gt;
    private final int[] greyOutConnections = AudioConnection.GREY_OUT_ALL;&lt;br /&gt;
    private final HeartbeatPlayer player;&lt;br /&gt;
    private final String name;&lt;br /&gt;
&lt;br /&gt;
I this looks like the tone menu section responsible for Welcome/Heartbeat:&lt;br /&gt;
    private void executeConditiontONEHEARTBEATMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 3883: {&lt;br /&gt;
                if (this.evaluateSimpleChoiceModelValueEqualsCondition(3883, n2, 1)) {&lt;br /&gt;
                    if (hMIViewArray[0] != null) {&lt;br /&gt;
                        ((ScreenWidgetEVO)hMIViewArray[0]).setToplevelScreen(true);&lt;br /&gt;
                    }&lt;br /&gt;
                    if (hMIViewArray[0] == null) break;&lt;br /&gt;
                    ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(true);&lt;br /&gt;
                    break;&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ScreenWidgetEVO)hMIViewArray[0]).setToplevelScreen(false);&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(false);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 4073: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((RotaryController)hMIViewArray[0]).setEnabled(!this.evaluateSimpleChoiceModelValueGreaterCondition(4073, n2, 0));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
 sysConst(4596) //Heartbeat coded state&lt;br /&gt;
 getModel(-1807610112) //Heartbeat volume menu visibility state&lt;br /&gt;
&lt;br /&gt;
 //if heartbeat is coded, make the Heartbeat volume menu visible&lt;br /&gt;
 this.env.getChoiceModel(-1807610112).setValue(this.env.getSysConst(4596) == 1 ? 0 : 1);&lt;br /&gt;
&lt;br /&gt;
Volume setting is most likely stored in persistence memory. But here? Maybe close to this?&lt;br /&gt;
&lt;br /&gt;
    private void resetWirelessChargingReminderSignalChoice() {&lt;br /&gt;
        this.env.getStorageAccess().setInt(1009, 1, 2);&lt;br /&gt;
        this.env.getChoiceModel(-1505620224).setValue(2);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
 sysConst(4162) // Wireless Charging coding state&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=401</id>
		<title>SPORT HMI for Audi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=401"/>
		<updated>2026-02-18T07:20:03Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MMIHigh Sportanzeigen.png|thumb|alt=Audi MMI MIB2 SportHMI mockup|Audi MMI SportHMI mockup]]&lt;br /&gt;
&lt;br /&gt;
There are some indications of Sport_HMI app for Audi MIB2 firmware. But no-one yet have enabled it. Let&#039;s check methods from the VW/Skoda/Seat units and let&#039;s check how the [[LSD.JXE]] in Audi looks like when it comes to references to sport modes.&lt;br /&gt;
&lt;br /&gt;
== VW/SEAT/Skoda SportHMI enabling methods ==&lt;br /&gt;
For whatever reason, VW/SEAT/Skoda vehicles support SPORT HMI out from the factory, without some deep modifications of the system. All it needs is adaptation and FEC/SWaP code.&lt;br /&gt;
&lt;br /&gt;
Details: [[SPORT HMI Performance Monitor]]&lt;br /&gt;
&lt;br /&gt;
== GUI assets in Audi firmware ==&lt;br /&gt;
[[File:Audi SportHMI kzb assets.jpg|thumb|alt=Audi MIB2 MMI SportHMI GUI assets|Audi MIB2 MMI SportHMI GUI assets]]&lt;br /&gt;
 &lt;br /&gt;
There&#039;s a file &amp;lt;code&amp;gt;SPORT_HMI.kzb&amp;lt;/code&amp;gt; - a .kzb package. After extracting, it looks like Audi firmware contains some GUI assets for Sport Display submenu. There&#039;s clock gauge for power and torque, as well as bar gauge for temperature and boost. Also rendered fonts for the large readouts inside the clock gauges.&lt;br /&gt;
&lt;br /&gt;
So if we are looking for needed textures - all is here.&lt;br /&gt;
&lt;br /&gt;
Here we can see that those textures are referenced in [[LSD.JXE]] classes:&lt;br /&gt;
&lt;br /&gt;
 public static String SPORT_HMI = &amp;quot;SPORT_HMI.kzb&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 public static int mib2_sport_hmi_kzbFile = 100;&lt;br /&gt;
&lt;br /&gt;
== SportHMI adaptation channels ==&lt;br /&gt;
We all know that there are adaptation channels related to the Performance Monitor in VW, SEAT, and Skoda → http://wiki.mib-helper.com/index.php?title=SPORT_HMI_Performance_Monitor#Adaptation&lt;br /&gt;
&lt;br /&gt;
And it looks like in Audi those are also connected to Sport Display function. Look at this part of code:&lt;br /&gt;
        if (this.isComponentAvailable((short)52, carFuncAdap)) {&lt;br /&gt;
            this.addCarComponent(new SportComponentEvo(this));&lt;br /&gt;
            this.addCarComponent(new SportKombiComponentEvo(this));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;isComponentAvailable((short)52, carFuncAdap)&amp;lt;/code&amp;gt; simply checks if 52nd channel in &amp;lt;code&amp;gt;Car_Function_Adaptations_Gen2&amp;lt;/code&amp;gt; section is set to &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;. And 52nd channel is... You know which one - &amp;lt;code&amp;gt;[LO]_menu_display_SportHMI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sport and Sport Kombi classes ==&lt;br /&gt;
It looks like there are two separate apps related to Sport Display feature:&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI-Kombi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Kombi&amp;lt;/code&amp;gt; can be used to distinguish app version designed for instrument cluster (&amp;quot;Kombiinstrument&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a statement that creates the screen:&lt;br /&gt;
 protected Screen createScreen(int n, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            (...)&lt;br /&gt;
            case 600289: {&lt;br /&gt;
                return CarScreenBag1.cARSPORTMAIN(this, n2);&lt;br /&gt;
&lt;br /&gt;
This one returns name of the screen for diagnostic purposes&lt;br /&gt;
 case 600289: {&lt;br /&gt;
     return &amp;quot;CAR_SPORT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And this one executes conditions&lt;br /&gt;
 @Override&lt;br /&gt;
    public void executeCondition(int n, int n2, HMIView[] hMIViewArray, int n3) {&lt;br /&gt;
        switch (n2) {&lt;br /&gt;
        (...)              &lt;br /&gt;
            case 600289: {&lt;br /&gt;
                this.executeConditioncARSPORTMAINScreen(n, hMIViewArray, n3);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
...which look like this:&lt;br /&gt;
     private void executeConditioncARSPORTMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 601056: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(!this.evaluateSimpleChoiceModelValueEqualsCondition(-534050560, n2, -214497024));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602113: {&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[1] == null) break;&lt;br /&gt;
                ((OilTemperatureGaugeController)hMIViewArray[1]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602114: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ChargingAirPressureGaugeController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(36702464, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602116: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(70256896, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602118: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(103811328, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
From the above:&lt;br /&gt;
* 602113 - Oil temperature&lt;br /&gt;
* 602114 - Boost pressure&lt;br /&gt;
* 602116 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
* 602118 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
State machine class is also referring to the SportHMI:&lt;br /&gt;
 public static final int LD_CAR_SEL_SPORTDISPLAY;&lt;br /&gt;
Meaning of the above would be &amp;quot;Sport Display was selected from the CAR menu Left Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* 601 - SPORT_POWER&lt;br /&gt;
* 602 - SPORT_POWER_MAX&lt;br /&gt;
* 603 - SPORT_POWER_CURRENT&lt;br /&gt;
* 604 - SPORT_TORQUE&lt;br /&gt;
* 605 - SPORT_TORQUE_MAX&lt;br /&gt;
* 606 - SPORT_TORQUE_CURRENT&lt;br /&gt;
* 607 - SPORT_OIL_TEMPERATURE&lt;br /&gt;
* 608 - SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
== Why no Sport submenu in Car menu? ==&lt;br /&gt;
It looks like everything is there. All the programming logic, adaptation to activate, data pulls, GUI assets, inits... So why it is not working?&lt;br /&gt;
&lt;br /&gt;
One of my theories is that at some point of development they decided to move the Sport HMI functionality from MIB to VC. On one side it makes sense - feature will not be duplicated on both displays. But on the other hand VC is optional equipment and not all cars have it.&lt;br /&gt;
&lt;br /&gt;
For whatever reasons it was - they needed to remove Sport HMI from Audi MIB. And by &amp;quot;remove&amp;quot; I mean &amp;quot;make it not visible for user&amp;quot;. That&#039;s why all the mentioned above parts of code and assets are there. So how they did it? And how to restore it?&lt;br /&gt;
&lt;br /&gt;
Maybe let&#039;s analyse how the MENU and CAR MENU structures looks like:&lt;br /&gt;
* Car&lt;br /&gt;
** Audi Drive Select&lt;br /&gt;
** Charging (eTron)&lt;br /&gt;
** Statistics (eTron)&lt;br /&gt;
** Vehicle Settings&lt;br /&gt;
** Drive Assist&lt;br /&gt;
** Air Condition&lt;br /&gt;
** Service and Checks&lt;br /&gt;
** Boardbook&lt;br /&gt;
* Sound&lt;br /&gt;
* Media&lt;br /&gt;
* Phone&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
By the first look, I can see some similarities to the &amp;lt;code&amp;gt;CarEvoMenuEntryStructure.java&amp;lt;/code&amp;gt; class:&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry2 = this.entryFactory.createMenuEntry(1596459264, &amp;quot;CAR_FUNC_CHARISMA&amp;quot;, -282457856);&lt;br /&gt;
 MenuEntry menuEntry3 = this.entryFactory.createMenuEntry(1630013696, &amp;quot;CAR_FUNC_SETTINGS&amp;quot;, -1305802496);&lt;br /&gt;
 MenuEntry menuEntry4 = this.entryFactory.createMenuEntry(1646790912, &amp;quot;CAR_FUNC_DRIVE_ASSIST&amp;quot;, -1339356928);&lt;br /&gt;
 MenuEntry menuEntry5 = this.entryFactory.createMenuEntry(1663568128, &amp;quot;CAR_FUNC_AIR_CONDITION&amp;quot;, -1389688576);&lt;br /&gt;
 MenuEntry menuEntry6 = this.entryFactory.createMenuEntry(1680345344, &amp;quot;CAR_FUNC_AUXHEAT&amp;quot;, -1356134144);&lt;br /&gt;
 MenuEntry menuEntry7 = this.entryFactory.createMenuEntry(10, &amp;quot;CAR_FUNC_AUX_AC)&amp;quot;, -1372911360);&lt;br /&gt;
 MenuEntry menuEntry8 = this.entryFactory.createMenuEntry(11, &amp;quot;CAR_FUNC_AUX_COMBINED)&amp;quot;, 1210976512);&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(1713899776, &amp;quot;CAR_FUNC_SERVICE&amp;quot;, -1322579712);&lt;br /&gt;
 MenuEntry menuEntry10 = this.entryFactory.createMenuEntry(1177094400, &amp;quot;CAR_FUNC_BORDBOOK&amp;quot;, 1412172032);&lt;br /&gt;
 MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(640289024, &amp;quot;CAR_FUNC_CHARGE&amp;quot;, -1842607872);&lt;br /&gt;
 MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(-383121152, &amp;quot;CAR_FUNC_STATISTICS&amp;quot;, -349370112);&lt;br /&gt;
 MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(12, &amp;quot;CAR_FUNC_SPORT&amp;quot;, 120588544);&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s check how the top-level menus are initialised and compare them to the SportHMI class to find what&#039;s missing. Maybe this will point us into the right direction.&lt;br /&gt;
&lt;br /&gt;
After quick check and compare, it looks like there&#039;s one function missing from the SportComponentEvo class. It&#039;s &amp;lt;code&amp;gt;updateMenuEntryVisibility()&amp;lt;/code&amp;gt; that appears in other car submenu classes. Not only those top-level. All of them. Is this it?&lt;br /&gt;
&lt;br /&gt;
== Moment of Doubt ==&lt;br /&gt;
Had a chance to test-drive an Audi SQ7 (4M) and played a bit with the Drive Select functions. There are &amp;quot;off-road&amp;quot; and &amp;quot;allroad&amp;quot; modes which enable additional element - Tilt Angle Display (TAD). This new element is visible directly on the Drive Select screen, and not as a separate submenu in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
So it got me wondering. What if the SportHMI is also just an additional widget that should be displayed on the Drive Select screen when &amp;quot;Sport&amp;quot; or &amp;quot;Race&amp;quot; mode is selected? If so, it would mean that this function might be controlled via Gateway with proper dataset. Or it&#039;s a separate submenu but still enabled with a gateway dataset?&lt;br /&gt;
&lt;br /&gt;
I need to look into the Charisma menu and TAD elements in LSH.JXE...&lt;br /&gt;
&lt;br /&gt;
 private IMenuEntry[] buildMenuCharisma(LogChannel logChannel) {&lt;br /&gt;
  // (...) &lt;br /&gt;
  menuEntry8.setFunctionalStateValues(new int[]{4}); //LIFT&lt;br /&gt;
  menuEntry2.setFunctionalStateValues(new int[]{4}); //OFFROAD&lt;br /&gt;
  menuEntry10.setFunctionalStateValues(new int[]{4}); //LIFT OFFROAD&lt;br /&gt;
  menuEntry5.setFunctionalStateValues(new int[]{8}); //EFFICIENCY&lt;br /&gt;
  // (...) &lt;br /&gt;
  MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(250, &amp;quot;CHARISMA_EFFICIENCY_BCME_ADD_INFO&amp;quot;, 1898776832);&lt;br /&gt;
  MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(252, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMPTION_BARGRAPH&amp;quot;, 1613564160);&lt;br /&gt;
  MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(251, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMER_LIST&amp;quot;, 1915554048);&lt;br /&gt;
  menuEntry11.setChildren(new IMenuEntry[]{menuEntry12, menuEntry13});&lt;br /&gt;
  MenuEntry menuEntry14 = this.entryFactory.createMenuEntry(326, &amp;quot;TAD_MAIN&amp;quot;, 1999374592);&lt;br /&gt;
  MenuEntry menuEntry15 = this.entryFactory.createMenuEntry(328, &amp;quot;TAD_PITCH_ANGLE&amp;quot;, 1965820160);&lt;br /&gt;
  MenuEntry menuEntry16 = this.entryFactory.createMenuEntry(327, &amp;quot;TAD_ROLL_ANGLE&amp;quot;, 1982597376);&lt;br /&gt;
  menuEntry14.setChildren(new IMenuEntry[]{menuEntry15, menuEntry16});&lt;br /&gt;
  return new IMenuEntry[]{menuEntry, menuEntry2, menuEntry3, menuEntry4, menuEntry5, menuEntry7, menuEntry6, menuEntry8, menuEntry10, menuEntry9};&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nope! It looks like only Efficiency Mode and Lift/Offroad Modes have children elements. No SportHMI mentions here. And previously mentioned &amp;lt;code&amp;gt;LD_CAR_SEL_SPORTDISPLAY&amp;lt;/code&amp;gt; was linked to left drawer, which means that the SportHMI needs to be present in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
But there&#039;s a RACE Mode mentioned here and there.&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(238, &amp;quot;CHARISMA_PROFILE_RACE&amp;quot;, 305203456);&lt;br /&gt;
&lt;br /&gt;
 public boolean isRacesport() {&lt;br /&gt;
  return this.racesport;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Maybe that&#039;s it? Maybe the RACE Charisma mode needs to be enabled from the SportHMI to be accessible?&lt;br /&gt;
&lt;br /&gt;
Just to be sure, I will check if there are some &amp;quot;RACE&amp;quot; references in the code. But not now.&lt;br /&gt;
&lt;br /&gt;
== Figuring out the missing data ==&lt;br /&gt;
Played around with KeyCombo (that&#039;s a separate topic) and found that Audi HMI has an build-in app for HMI tests. It shows a lot of data about visible items and data provided by the rest of the car.&lt;br /&gt;
&lt;br /&gt;
Here we can see which information is provided &amp;lt;code&amp;gt;state: 2&amp;lt;/code&amp;gt;, and which is not &amp;lt;code&amp;gt;state: 0&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SportHMI&lt;br /&gt;
  DynamicVehicleInfoHighFrequentViewOptions(&lt;br /&gt;
   longitudinalAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   engineSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   powermeter=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   lateralAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   relChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   absChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentTorque=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   yawRate=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   brakePressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   wheelAngle=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   acceleratorPosition=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   vehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   systemCycleDistance=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   realVehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   shiftLight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   allWheelDriveTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espOversteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espUndersteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   relAllWheelDriveTorque=ViewOption(state: 0, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
  SemiStaticDataViewOptions(&lt;br /&gt;
   maxChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   engineDisplacement=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   typeOfInjectionSystem=ViewOption(state: 2, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
And here we can check which components in the SPORT HMI are fully functional and which are not:&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602119&lt;br /&gt;
        Parent: CAR_MAIN&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER&lt;br /&gt;
            SPORT_TORQUE&lt;br /&gt;
            SPORT_OIL_TEMPERATURE&lt;br /&gt;
            SPORT_AIR_PRESSURE&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602116&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER_MAX&lt;br /&gt;
            SPORT_POWER_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602118&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_TORQUE_MAX&lt;br /&gt;
            SPORT_TORQUE_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
        State: INVISIBLE&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_TORQUE&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
        State: Invisible&lt;br /&gt;
        ModelID: 602113&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602114&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
&lt;br /&gt;
Two things (&amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; are invisible. This partially correlates with unavailable &amp;lt;code&amp;gt;maxTorque&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Is it that this missing data is what&#039;s locking the SPORT submenu to appear? Let&#039;s find out!&lt;br /&gt;
&lt;br /&gt;
== Logging HMI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;run_lsd.sh&amp;lt;/code&amp;gt; script, that starts the &amp;lt;code&amp;gt;LSD.jxe&amp;lt;/code&amp;gt; can be adjusted for logging different components. &lt;br /&gt;
&lt;br /&gt;
=== App.Car.Sport=5 ===&lt;br /&gt;
Let&#039;s start with &amp;lt;code&amp;gt;App.Car.Sport&amp;lt;/code&amp;gt; set to level &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, so it will output some data.&lt;br /&gt;
&lt;br /&gt;
 00:00:42.715 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateSemiStaticVehicleData:SemiStaticVehicleData(&lt;br /&gt;
  maxChargingAirPressure=2.5,&lt;br /&gt;
  maxOutputPower=228,&lt;br /&gt;
  maxTorque=0,&lt;br /&gt;
  engineDisplacement=2.0,&lt;br /&gt;
  typeOfInjectionSystem=0),&lt;br /&gt;
 valid:1&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.720 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateBCOilTemperatureValue:null,&lt;br /&gt;
 valid:2&lt;br /&gt;
 &lt;br /&gt;
 00:00:42.722 INFO  &amp;lt;App.Car.Sport&amp;gt;&lt;br /&gt;
 updateDynamicVehicleInfoHighFrequent:DynamicVehicleInfoHighFrequent(&lt;br /&gt;
  longitudinalAcceleration=0.0,&lt;br /&gt;
  engineSpeed=699,&lt;br /&gt;
  powermeter=0,&lt;br /&gt;
  lateralAcceleration=-0.01,&lt;br /&gt;
  relChargingAirPressure=0,&lt;br /&gt;
  absChargingAirPressure=0.29,&lt;br /&gt;
  currentOutputPower=1.8,&lt;br /&gt;
  yawRate=-0.09,&lt;br /&gt;
  brakePressure=0.0,&lt;br /&gt;
  wheelAngle=8,&lt;br /&gt;
  acceleratorPosition=0,&lt;br /&gt;
  vehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  currentTorque=25,&lt;br /&gt;
  systemCycleDistance=0,&lt;br /&gt;
  torqueDistributionFrontLeft=0,&lt;br /&gt;
  torqueDistributionFrontRight=0,&lt;br /&gt;
  torqueDistributionRearLeft=0,&lt;br /&gt;
  torqueDistributionRearRight=0,&lt;br /&gt;
  realVehicleSpeed=CarBCSpeed(&lt;br /&gt;
   speedValueState=1,&lt;br /&gt;
   speedValue=0.0,&lt;br /&gt;
   speedUnit=0),&lt;br /&gt;
  shiftLight=0,&lt;br /&gt;
  allWheelDriveTorque=0,&lt;br /&gt;
  espOversteering=0.0,&lt;br /&gt;
  espUndersteering=0.0,&lt;br /&gt;
  espWheelVelocityFrontLeft=0.0,&lt;br /&gt;
  espWheelVelocityFrontRight=0.0,&lt;br /&gt;
  espWheelVelocityRearLeft=0.0,&lt;br /&gt;
  espWheelVelocityRearRight=0.0,&lt;br /&gt;
  relAllWheelDriveTorque=0.0),&lt;br /&gt;
 valid:1&lt;br /&gt;
&lt;br /&gt;
This proves two things:&lt;br /&gt;
1. Sport_HMI exists, works, creates output, and should be functional.&lt;br /&gt;
2. Some of the data from DSI is not provided or is zeroed.&lt;br /&gt;
&lt;br /&gt;
=== App.Car.MER=5 ===&lt;br /&gt;
Since the Sport_HMI is clearly there, but it&#039;s not visible in the CAR menu, let&#039;s check how the Menu Entry Register logs look like.&lt;br /&gt;
&lt;br /&gt;
 00:00:11.913 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_MAIN&#039;)#setChildren] children=&lt;br /&gt;
 CAR_FUNC_CHARISMA&lt;br /&gt;
 CAR_FUNC_SETTINGS&lt;br /&gt;
 CAR_FUNC_DRIVE_ASSIST&lt;br /&gt;
 CAR_FUNC_AIR_CONDITION&lt;br /&gt;
 CAR_FUNC_AUXHEAT&lt;br /&gt;
 CAR_FUNC_AUX_AC)&lt;br /&gt;
 CAR_FUNC_AUX_COMBINED)&lt;br /&gt;
 CAR_FUNC_SERVICE&lt;br /&gt;
 CAR_FUNC_BORDBOOK&lt;br /&gt;
 CAR_FUNC_CHARGE&lt;br /&gt;
 CAR_FUNC_STATISTICS&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.628 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
 SPORT_TORQUE_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.764 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
 &lt;br /&gt;
 00:00:12.765 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#setChildren] children=&lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
Menu structure is created correctly. Now let&#039;s dig some more and check final status of each SPORT element.&lt;br /&gt;
&lt;br /&gt;
 00:00:34.812 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_MAX&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.084 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_MAX&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.086 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_OIL_TEMPERATURE&#039;)#setState] state=&#039;1&#039; // ← NOT OK&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.224 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_TORQUE_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.500 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_POWER_CURRENT&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.647 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;SPORT_AIR_PRESSURE&#039;)#setState] state=&#039;0&#039;&lt;br /&gt;
 00:00:35.649 INFO  &amp;lt;App.Car.MER&amp;gt;        [MenuEntry(&#039;CAR_FUNC_SPORT&#039;)#updateState] state=&#039;0&#039;&lt;br /&gt;
&lt;br /&gt;
It looks like the &amp;lt;code&amp;gt;state=&#039;0&#039;&amp;lt;/code&amp;gt; is reported if the component is working correctly. And two component&#039;s are not. &amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; - same two that were missing or zeroed in DSI-provided data. Huh...&lt;br /&gt;
&lt;br /&gt;
== Modifications with custom data ==&lt;br /&gt;
//TODO&lt;br /&gt;
ideas:&lt;br /&gt;
* oil temp → gearbox temp&lt;br /&gt;
* boost pressure → oil pressure&lt;br /&gt;
* torque → steering angle&lt;br /&gt;
* power → tachometer&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Tweaks]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=QuadLock&amp;diff=400</id>
		<title>QuadLock</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=QuadLock&amp;diff=400"/>
		<updated>2026-02-17T11:59:41Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* Block B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Main connector behind infotainment unit. Originally it featured 4 blocks of pins - hence the name. Since the original 1st generation of QuadLock, infotainment needs changed and the connector evolved. Basic shape stayed the same but block structure was adapted for newer system requirements.&lt;br /&gt;
&lt;br /&gt;
== QuadLock Gen3 ==&lt;br /&gt;
[[File:Quadlock gen3.jpg|thumb|alt=Quadlock gen3 pinout|Quadlock gen3 pinout]]&lt;br /&gt;
&lt;br /&gt;
=== Blocks ===&lt;br /&gt;
==== Block A ====&lt;br /&gt;
Internal amplifier 4 channels&lt;br /&gt;
 pin 1: Speaker Rear Right, positive&lt;br /&gt;
 pin 2: Speaker Front Right, positive&lt;br /&gt;
 pin 3: Speaker Front Left, positive&lt;br /&gt;
 pin 4: Speaker Rear Left, positive&lt;br /&gt;
 pin 5: Speaker Rear Right, negative&lt;br /&gt;
 pin 6: Speaker Front Right, negative&lt;br /&gt;
 pin 7: Speaker Front Left, negative&lt;br /&gt;
 pin 8: Speaker Rear Left, negative&lt;br /&gt;
&lt;br /&gt;
==== Block B ====&lt;br /&gt;
Microphones, [[FBAS]], debug, hands-free kit&lt;br /&gt;
 pin 01: Microphone 1, positive&lt;br /&gt;
 pin 02: Microphone 2, negative&lt;br /&gt;
 pin 03: j5 debug terminal, Rx&lt;br /&gt;
 pin 04: VDA NF, positive&lt;br /&gt;
 pin 05: VDA Mute&lt;br /&gt;
 pin 06: FBAS1, signal in&lt;br /&gt;
 pin 07: Microphone 1, negative&lt;br /&gt;
 pin 08: Microphone 2, positive&lt;br /&gt;
 pin 09: j5 debug terminal, Tx&lt;br /&gt;
 pin 10: VDA NF, negative&lt;br /&gt;
 pin 11: V850 debug terminal, Tx&lt;br /&gt;
 pin 12: FBAS1, shield&lt;br /&gt;
&lt;br /&gt;
==== Block C ====&lt;br /&gt;
 pin 01: AUX-IN, ground&lt;br /&gt;
 pin 02: AUX-IN, right channel&lt;br /&gt;
 pin 03: iPod, detect&lt;br /&gt;
 pin 04: ground&lt;br /&gt;
 pin 05: iPod, accessory power&lt;br /&gt;
 pin 06: detect&lt;br /&gt;
 pin 07: AUX-IN, left channel&lt;br /&gt;
 pin 08: AUX-IN, shield&lt;br /&gt;
 pin 09: FBAS2 in, positive&lt;br /&gt;
 pin 10: FBAS2 in, negative&lt;br /&gt;
 pin 11: iPod, Rx&lt;br /&gt;
 pin 12: iPod, Tx&lt;br /&gt;
&lt;br /&gt;
==== Block D ====&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
==== Block E ====&lt;br /&gt;
 TODO&lt;br /&gt;
&lt;br /&gt;
=== Repair kit ===&lt;br /&gt;
//TODO&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=Diagnostic_Logs&amp;diff=399</id>
		<title>Diagnostic Logs</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=Diagnostic_Logs&amp;diff=399"/>
		<updated>2026-02-15T16:57:34Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: Created page with &amp;quot; isInfo() 1078071040 → 0x40420F00  isDebug() -2137614336 → 0x80969800  isDebug2() 14808325 → 0x00E1F505&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; isInfo() 1078071040 → 0x40420F00&lt;br /&gt;
 isDebug() -2137614336 → 0x80969800&lt;br /&gt;
 isDebug2() 14808325 → 0x00E1F505&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=DisplayManager&amp;diff=398</id>
		<title>DisplayManager</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=DisplayManager&amp;diff=398"/>
		<updated>2026-02-14T17:43:05Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* LSD.JXE references */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;App responsible for setting up contexts, windows, display, etc. &lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
=== LSD.JXE references ===&lt;br /&gt;
 import de.audi.atip.hmi.view.IDisplayManager;&lt;br /&gt;
&lt;br /&gt;
 import de.audi.tghu.fwhmi.IDisplayManagerKombiControl;&lt;br /&gt;
&lt;br /&gt;
 import de.esolutions.hmi.widgets.audi.evo.DisplayControllerEvo;&lt;br /&gt;
&lt;br /&gt;
    private static void initializeDisplayableMapping() {&lt;br /&gt;
        DisplayManager.displayableMapping[0] = 16;&lt;br /&gt;
        DisplayManager.displayableMapping[1] = 17;&lt;br /&gt;
        DisplayManager.displayableMapping[2] = 18;&lt;br /&gt;
        DisplayManager.displayableMapping[3] = 19;&lt;br /&gt;
        DisplayManager.displayableMapping[4] = 20;&lt;br /&gt;
        DisplayManager.displayableMapping[5] = 21;&lt;br /&gt;
        DisplayManager.displayableMapping[7] = 23;&lt;br /&gt;
        DisplayManager.displayableMapping[8] = 25;&lt;br /&gt;
        DisplayManager.displayableMapping[14] = 34;&lt;br /&gt;
        DisplayManager.displayableMapping[9] = 26;&lt;br /&gt;
        DisplayManager.displayableMapping[10] = 27;&lt;br /&gt;
        DisplayManager.displayableMapping[11] = 28;&lt;br /&gt;
        DisplayManager.displayableMapping[12] = 22;&lt;br /&gt;
        DisplayManager.displayableMapping[13] = 24;&lt;br /&gt;
        DisplayManager.displayableMapping[15] = 36;&lt;br /&gt;
        DisplayManager.displayableMapping[16] = 41;&lt;br /&gt;
        DisplayManager.displayableMapping[17] = 50;&lt;br /&gt;
        DisplayManager.displayableMapping[18] = 39;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private final void initDSI() {&lt;br /&gt;
        if (!this.initialized) {&lt;br /&gt;
            if (this.dsiDispMgmt != null) {&lt;br /&gt;
                this.defineContexts();&lt;br /&gt;
                this.dsiDispMgmt.declareContexts(this.dc);&lt;br /&gt;
                this.configureDM();&lt;br /&gt;
                this.initialized = true;&lt;br /&gt;
            } else {&lt;br /&gt;
                this.log.log(10000, &amp;quot;DSI service is NULL&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    protected void configureDM() {&lt;br /&gt;
        if (this.framework.getSysConst(541) == 2) { //isClusterFPK&lt;br /&gt;
            this.createImageDisplayable(new ResourceLocator(102, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 102);&lt;br /&gt;
            this.createImageDisplayable(new ResourceLocator(101, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 101);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private boolean isVideoOnlyContext(int n) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 67: { return true; }&lt;br /&gt;
            case 68: { return true; }&lt;br /&gt;
            case 69: { return true; }&lt;br /&gt;
            case 70: { return true; }&lt;br /&gt;
            case 71: { return true; }&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
 @Override&lt;br /&gt;
 protected void defineContexts() {&lt;br /&gt;
   this.dc = this.framework.getKombiType() == 4 ? new DisplayContext[158] : new DisplayContext[79];&lt;br /&gt;
  this.dc[0] = new DisplayContext(0, new int[]{16});&lt;br /&gt;
  //...//&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 @Override&lt;br /&gt;
 public void declareContexts(DisplayContext[] displayContextArray) {&lt;br /&gt;
  DSIDisplayManagementProxy$1 dSIDisplayManagementProxy$1 = new DSIDisplayManagementProxy$1(this, displayContextArray);&lt;br /&gt;
  this.proxy.remoteCallMethod((short)3, dSIDisplayManagementProxy$1);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a reference to one of the parameters that loads some textures as displayables? Most likely a background for the turn-by-turn navigation contexts.&lt;br /&gt;
 protected void configureDM() {&lt;br /&gt;
  if (this.framework.getSysConst(541) == 2) {&lt;br /&gt;
   this.createImageDisplayable(new ResourceLocator(102, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 102);&lt;br /&gt;
   this.createImageDisplayable(new ResourceLocator(101, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 101);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
Sadly there&#039;s no &amp;lt;code&amp;gt;use displaymanager&amp;lt;/code&amp;gt; info that would show us how to fully use the potential of displaymanager. Luckily there&#039;s [[DisplayManager Debug Tool (dmdt)|DisplayManager Debug Tool]] with nice description.&lt;br /&gt;
&lt;br /&gt;
But still I would like to know how the displaymanager works when controlled directly. Below info was found by accident in system references to the displaymanager binary.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-splashShow 1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-splash &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-2nd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-dbg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-dbgcl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
Used by the start script to show splashscreen animation:&lt;br /&gt;
 ./displaymanager -splashShow 1 -splash /eso/lib/splash.psse -2nd libdmfw.so -dbg 0 -dbgcl 1 -t&lt;br /&gt;
&lt;br /&gt;
== Other... ==&lt;br /&gt;
&lt;br /&gt;
=== Hardcoded paths ===&lt;br /&gt;
No idea why, but some texture paths are hardcoded into the &amp;lt;code&amp;gt;displaymanager&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/media/800.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/audi.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/audi_black.png&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=DisplayManager&amp;diff=397</id>
		<title>DisplayManager</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=DisplayManager&amp;diff=397"/>
		<updated>2026-02-14T17:11:02Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: /* LSD.JXE references */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;App responsible for setting up contexts, windows, display, etc. &lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
=== LSD.JXE references ===&lt;br /&gt;
 import de.audi.atip.hmi.view.IDisplayManager;&lt;br /&gt;
&lt;br /&gt;
 import de.audi.tghu.fwhmi.IDisplayManagerKombiControl;&lt;br /&gt;
&lt;br /&gt;
 import de.esolutions.hmi.widgets.audi.evo.DisplayControllerEvo;&lt;br /&gt;
&lt;br /&gt;
    private static void initializeDisplayableMapping() {&lt;br /&gt;
        DisplayManager.displayableMapping[0] = 16;&lt;br /&gt;
        DisplayManager.displayableMapping[1] = 17;&lt;br /&gt;
        DisplayManager.displayableMapping[2] = 18;&lt;br /&gt;
        DisplayManager.displayableMapping[3] = 19;&lt;br /&gt;
        DisplayManager.displayableMapping[4] = 20;&lt;br /&gt;
        DisplayManager.displayableMapping[5] = 21;&lt;br /&gt;
        DisplayManager.displayableMapping[7] = 23;&lt;br /&gt;
        DisplayManager.displayableMapping[8] = 25;&lt;br /&gt;
        DisplayManager.displayableMapping[14] = 34;&lt;br /&gt;
        DisplayManager.displayableMapping[9] = 26;&lt;br /&gt;
        DisplayManager.displayableMapping[10] = 27;&lt;br /&gt;
        DisplayManager.displayableMapping[11] = 28;&lt;br /&gt;
        DisplayManager.displayableMapping[12] = 22;&lt;br /&gt;
        DisplayManager.displayableMapping[13] = 24;&lt;br /&gt;
        DisplayManager.displayableMapping[15] = 36;&lt;br /&gt;
        DisplayManager.displayableMapping[16] = 41;&lt;br /&gt;
        DisplayManager.displayableMapping[17] = 50;&lt;br /&gt;
        DisplayManager.displayableMapping[18] = 39;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private final void initDSI() {&lt;br /&gt;
        if (!this.initialized) {&lt;br /&gt;
            if (this.dsiDispMgmt != null) {&lt;br /&gt;
                this.defineContexts();&lt;br /&gt;
                this.dsiDispMgmt.declareContexts(this.dc);&lt;br /&gt;
                this.configureDM();&lt;br /&gt;
                this.initialized = true;&lt;br /&gt;
            } else {&lt;br /&gt;
                this.log.log(10000, &amp;quot;DSI service is NULL&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    protected void configureDM() {&lt;br /&gt;
        if (this.framework.getSysConst(541) == 2) { //isClusterFPK&lt;br /&gt;
            this.createImageDisplayable(new ResourceLocator(102, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 102);&lt;br /&gt;
            this.createImageDisplayable(new ResourceLocator(101, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 101);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private boolean isVideoOnlyContext(int n) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 67: { return true; }&lt;br /&gt;
            case 68: { return true; }&lt;br /&gt;
            case 69: { return true; }&lt;br /&gt;
            case 70: { return true; }&lt;br /&gt;
            case 71: { return true; }&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void declareContexts(DisplayContext[] displayContextArray) {&lt;br /&gt;
        DSIDisplayManagementProxy$1 dSIDisplayManagementProxy$1 = new DSIDisplayManagementProxy$1(this, displayContextArray);&lt;br /&gt;
        this.proxy.remoteCallMethod((short)3, dSIDisplayManagementProxy$1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a reference to one of the parameters that loads some textures as displayables?&lt;br /&gt;
 protected void configureDM() {&lt;br /&gt;
  if (this.framework.getSysConst(541) == 2) {&lt;br /&gt;
   this.createImageDisplayable(new ResourceLocator(102, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 102);&lt;br /&gt;
   this.createImageDisplayable(new ResourceLocator(101, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 101);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
Sadly there&#039;s no &amp;lt;code&amp;gt;use displaymanager&amp;lt;/code&amp;gt; info that would show us how to fully use the potential of displaymanager. Luckily there&#039;s [[DisplayManager Debug Tool (dmdt)|DisplayManager Debug Tool]] with nice description.&lt;br /&gt;
&lt;br /&gt;
But still I would like to know how the displaymanager works when controlled directly. Below info was found by accident in system references to the displaymanager binary.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-splashShow 1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-splash &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-2nd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-dbg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-dbgcl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
Used by the start script to show splashscreen animation:&lt;br /&gt;
 ./displaymanager -splashShow 1 -splash /eso/lib/splash.psse -2nd libdmfw.so -dbg 0 -dbgcl 1 -t&lt;br /&gt;
&lt;br /&gt;
== Other... ==&lt;br /&gt;
&lt;br /&gt;
=== Hardcoded paths ===&lt;br /&gt;
No idea why, but some texture paths are hardcoded into the &amp;lt;code&amp;gt;displaymanager&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/media/800.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/audi.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/audi_black.png&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=396</id>
		<title>MHI2 SysConst</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MHI2_SysConst&amp;diff=396"/>
		<updated>2026-02-14T17:09:56Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; 466 - isA3 || isB9 || isQ1 || isQ5 || isQ7&lt;br /&gt;
 541 - isClusterMapFPK || isClusterMapMOST || isClusterRGI&lt;br /&gt;
 4168 - isAudi&lt;br /&gt;
 4389 - isMapInMapAvailable&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=MIB_video_inputs&amp;diff=395</id>
		<title>MIB video inputs</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=MIB_video_inputs&amp;diff=395"/>
		<updated>2026-02-14T16:52:32Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Looks like there are multiple ways that video stream can be sourced by MIB.&lt;br /&gt;
&lt;br /&gt;
 extends IEnum {&lt;br /&gt;
  public static final int FBAS_INPUT_1;&lt;br /&gt;
  public static final int FBAS_INPUT_2;&lt;br /&gt;
  public static final int FBAS_INPUT_3;&lt;br /&gt;
  public static final int LVDS_INPUT_1;&lt;br /&gt;
 }&lt;br /&gt;
== Video inputs ==&lt;br /&gt;
=== FBAS1 ===&lt;br /&gt;
We all know the &amp;lt;code&amp;gt;FBAS1&amp;lt;/code&amp;gt; input on [[QuadLock]]. It&#039;s used for [[Rear-View Camera]] both low and high.&lt;br /&gt;
&lt;br /&gt;
=== FBAS2 ===&lt;br /&gt;
This was used in MIB1 with [[Audi Music Interface]] or MDI. It was possible to play videos from connected iPod, with proper cable adapter.&lt;br /&gt;
&lt;br /&gt;
=== FBAS3 ===&lt;br /&gt;
No idea where it is, or if it exists...&lt;br /&gt;
&lt;br /&gt;
=== LVDS1 ===&lt;br /&gt;
This is most likely the input used for the 360 Area View systems. Needs to be confirmed.&lt;br /&gt;
&lt;br /&gt;
=== Video over Most ===&lt;br /&gt;
For vehicles with TV tuner&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=DisplayManager&amp;diff=394</id>
		<title>DisplayManager</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=DisplayManager&amp;diff=394"/>
		<updated>2026-02-03T12:20:36Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;App responsible for setting up contexts, windows, display, etc. &lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
=== LSD.JXE references ===&lt;br /&gt;
 import de.audi.atip.hmi.view.IDisplayManager;&lt;br /&gt;
&lt;br /&gt;
 import de.audi.tghu.fwhmi.IDisplayManagerKombiControl;&lt;br /&gt;
&lt;br /&gt;
 import de.esolutions.hmi.widgets.audi.evo.DisplayControllerEvo;&lt;br /&gt;
&lt;br /&gt;
    private static void initializeDisplayableMapping() {&lt;br /&gt;
        DisplayManager.displayableMapping[0] = 16;&lt;br /&gt;
        DisplayManager.displayableMapping[1] = 17;&lt;br /&gt;
        DisplayManager.displayableMapping[2] = 18;&lt;br /&gt;
        DisplayManager.displayableMapping[3] = 19;&lt;br /&gt;
        DisplayManager.displayableMapping[4] = 20;&lt;br /&gt;
        DisplayManager.displayableMapping[5] = 21;&lt;br /&gt;
        DisplayManager.displayableMapping[7] = 23;&lt;br /&gt;
        DisplayManager.displayableMapping[8] = 25;&lt;br /&gt;
        DisplayManager.displayableMapping[14] = 34;&lt;br /&gt;
        DisplayManager.displayableMapping[9] = 26;&lt;br /&gt;
        DisplayManager.displayableMapping[10] = 27;&lt;br /&gt;
        DisplayManager.displayableMapping[11] = 28;&lt;br /&gt;
        DisplayManager.displayableMapping[12] = 22;&lt;br /&gt;
        DisplayManager.displayableMapping[13] = 24;&lt;br /&gt;
        DisplayManager.displayableMapping[15] = 36;&lt;br /&gt;
        DisplayManager.displayableMapping[16] = 41;&lt;br /&gt;
        DisplayManager.displayableMapping[17] = 50;&lt;br /&gt;
        DisplayManager.displayableMapping[18] = 39;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private final void initDSI() {&lt;br /&gt;
        if (!this.initialized) {&lt;br /&gt;
            if (this.dsiDispMgmt != null) {&lt;br /&gt;
                this.defineContexts();&lt;br /&gt;
                this.dsiDispMgmt.declareContexts(this.dc);&lt;br /&gt;
                this.configureDM();&lt;br /&gt;
                this.initialized = true;&lt;br /&gt;
            } else {&lt;br /&gt;
                this.log.log(10000, &amp;quot;DSI service is NULL&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    protected void configureDM() {&lt;br /&gt;
        if (this.framework.getSysConst(541) == 2) {&lt;br /&gt;
            this.createImageDisplayable(new ResourceLocator(102, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 102);&lt;br /&gt;
            this.createImageDisplayable(new ResourceLocator(101, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 101);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private boolean isVideoOnlyContext(int n) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 67: { return true; }&lt;br /&gt;
            case 68: { return true; }&lt;br /&gt;
            case 69: { return true; }&lt;br /&gt;
            case 70: { return true; }&lt;br /&gt;
            case 71: { return true; }&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void declareContexts(DisplayContext[] displayContextArray) {&lt;br /&gt;
        DSIDisplayManagementProxy$1 dSIDisplayManagementProxy$1 = new DSIDisplayManagementProxy$1(this, displayContextArray);&lt;br /&gt;
        this.proxy.remoteCallMethod((short)3, dSIDisplayManagementProxy$1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a reference to one of the parameters that loads some textures as displayables?&lt;br /&gt;
 protected void configureDM() {&lt;br /&gt;
  if (this.framework.getSysConst(541) == 2) {&lt;br /&gt;
   this.createImageDisplayable(new ResourceLocator(102, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 102);&lt;br /&gt;
   this.createImageDisplayable(new ResourceLocator(101, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 101);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
Sadly there&#039;s no &amp;lt;code&amp;gt;use displaymanager&amp;lt;/code&amp;gt; info that would show us how to fully use the potential of displaymanager. Luckily there&#039;s [[DisplayManager Debug Tool (dmdt)|DisplayManager Debug Tool]] with nice description.&lt;br /&gt;
&lt;br /&gt;
But still I would like to know how the displaymanager works when controlled directly. Below info was found by accident in system references to the displaymanager binary.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-splashShow 1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-splash &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-2nd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-dbg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-dbgcl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
Used by the start script to show splashscreen animation:&lt;br /&gt;
 ./displaymanager -splashShow 1 -splash /eso/lib/splash.psse -2nd libdmfw.so -dbg 0 -dbgcl 1 -t&lt;br /&gt;
&lt;br /&gt;
== Other... ==&lt;br /&gt;
&lt;br /&gt;
=== Hardcoded paths ===&lt;br /&gt;
No idea why, but some texture paths are hardcoded into the &amp;lt;code&amp;gt;displaymanager&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/media/800.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/audi.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/audi_black.png&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=DisplayManager&amp;diff=393</id>
		<title>DisplayManager</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=DisplayManager&amp;diff=393"/>
		<updated>2026-02-03T07:50:39Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;App responsible for setting up contexts, windows, display, etc. &lt;br /&gt;
&lt;br /&gt;
== Research ==&lt;br /&gt;
=== LSD.JXE references ===&lt;br /&gt;
 import de.audi.atip.hmi.view.IDisplayManager;&lt;br /&gt;
&lt;br /&gt;
 import de.audi.tghu.fwhmi.IDisplayManagerKombiControl;&lt;br /&gt;
&lt;br /&gt;
 import de.esolutions.hmi.widgets.audi.evo.DisplayControllerEvo;&lt;br /&gt;
&lt;br /&gt;
    private static void initializeDisplayableMapping() {&lt;br /&gt;
        DisplayManager.displayableMapping[0] = 16;&lt;br /&gt;
        DisplayManager.displayableMapping[1] = 17;&lt;br /&gt;
        DisplayManager.displayableMapping[2] = 18;&lt;br /&gt;
        DisplayManager.displayableMapping[3] = 19;&lt;br /&gt;
        DisplayManager.displayableMapping[4] = 20;&lt;br /&gt;
        DisplayManager.displayableMapping[5] = 21;&lt;br /&gt;
        DisplayManager.displayableMapping[7] = 23;&lt;br /&gt;
        DisplayManager.displayableMapping[8] = 25;&lt;br /&gt;
        DisplayManager.displayableMapping[14] = 34;&lt;br /&gt;
        DisplayManager.displayableMapping[9] = 26;&lt;br /&gt;
        DisplayManager.displayableMapping[10] = 27;&lt;br /&gt;
        DisplayManager.displayableMapping[11] = 28;&lt;br /&gt;
        DisplayManager.displayableMapping[12] = 22;&lt;br /&gt;
        DisplayManager.displayableMapping[13] = 24;&lt;br /&gt;
        DisplayManager.displayableMapping[15] = 36;&lt;br /&gt;
        DisplayManager.displayableMapping[16] = 41;&lt;br /&gt;
        DisplayManager.displayableMapping[17] = 50;&lt;br /&gt;
        DisplayManager.displayableMapping[18] = 39;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private final void initDSI() {&lt;br /&gt;
        if (!this.initialized) {&lt;br /&gt;
            if (this.dsiDispMgmt != null) {&lt;br /&gt;
                this.defineContexts();&lt;br /&gt;
                this.dsiDispMgmt.declareContexts(this.dc);&lt;br /&gt;
                this.configureDM();&lt;br /&gt;
                this.initialized = true;&lt;br /&gt;
            } else {&lt;br /&gt;
                this.log.log(10000, &amp;quot;DSI service is NULL&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    protected void configureDM() {&lt;br /&gt;
        if (this.framework.getSysConst(541) == 2) {&lt;br /&gt;
            this.createImageDisplayable(new ResourceLocator(102, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 102);&lt;br /&gt;
            this.createImageDisplayable(new ResourceLocator(101, &amp;quot;/mnt/app/eso/hmi/lsd/images/HMISystemEvoHigh/987.png&amp;quot;), 101);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private boolean isVideoOnlyContext(int n) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 67: { return true; }&lt;br /&gt;
            case 68: { return true; }&lt;br /&gt;
            case 69: { return true; }&lt;br /&gt;
            case 70: { return true; }&lt;br /&gt;
            case 71: { return true; }&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Override&lt;br /&gt;
    public void declareContexts(DisplayContext[] displayContextArray) {&lt;br /&gt;
        DSIDisplayManagementProxy$1 dSIDisplayManagementProxy$1 = new DSIDisplayManagementProxy$1(this, displayContextArray);&lt;br /&gt;
        this.proxy.remoteCallMethod((short)3, dSIDisplayManagementProxy$1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
Sadly there&#039;s no &amp;lt;code&amp;gt;use displaymanager&amp;lt;/code&amp;gt; info that would show us how to fully use the potential of displaymanager. Luckily there&#039;s [[DisplayManager Debug Tool (dmdt)|DisplayManager Debug Tool]] with nice description.&lt;br /&gt;
&lt;br /&gt;
But still I would like to know how the displaymanager works when controlled directly. Below info was found by accident in system references to the displaymanager binary.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-splashShow 1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-splash &amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-2nd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-dbg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-dbgcl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
Used by the start script to show splashscreen animation:&lt;br /&gt;
 ./displaymanager -splashShow 1 -splash /eso/lib/splash.psse -2nd libdmfw.so -dbg 0 -dbgcl 1 -t&lt;br /&gt;
&lt;br /&gt;
== Other... ==&lt;br /&gt;
&lt;br /&gt;
=== Hardcoded paths ===&lt;br /&gt;
No idea why, but some texture paths are hardcoded into the &amp;lt;code&amp;gt;displaymanager&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/media/800.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/audi.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;/fs/sda0/audi_black.png&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
	<entry>
		<id>http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=392</id>
		<title>SPORT HMI for Audi</title>
		<link rel="alternate" type="text/html" href="http://wiki.mib-helper.com/index.php?title=SPORT_HMI_for_Audi&amp;diff=392"/>
		<updated>2025-11-14T13:07:21Z</updated>

		<summary type="html">&lt;p&gt;Mr-fix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MMIHigh Sportanzeigen.png|thumb|alt=Audi MMI MIB2 SportHMI mockup|Audi MMI SportHMI mockup]]&lt;br /&gt;
&lt;br /&gt;
There are some indications of Sport_HMI app for Audi MIB2 firmware. But no-one yet have enabled it. Let&#039;s check methods from the VW/Skoda/Seat units and let&#039;s check how the [[LSD.JXE]] in Audi looks like when it comes to references to sport modes.&lt;br /&gt;
&lt;br /&gt;
== VW/SEAT/Skoda SportHMI enabling methods ==&lt;br /&gt;
For whatever reason, VW/SEAT/Skoda vehicles support SPORT HMI out from the factory, without some deep modifications of the system. All it needs is adaptation and FEC/SWaP code.&lt;br /&gt;
&lt;br /&gt;
Details: [[SPORT HMI Performance Monitor]]&lt;br /&gt;
&lt;br /&gt;
== GUI assets in Audi firmware ==&lt;br /&gt;
[[File:Audi SportHMI kzb assets.jpg|thumb|alt=Audi MIB2 MMI SportHMI GUI assets|Audi MIB2 MMI SportHMI GUI assets]]&lt;br /&gt;
 &lt;br /&gt;
There&#039;s a file &amp;lt;code&amp;gt;SPORT_HMI.kzb&amp;lt;/code&amp;gt; - a .kzb package. After extracting, it looks like Audi firmware contains some GUI assets for Sport Display submenu. There&#039;s clock gauge for power and torque, as well as bar gauge for temperature and boost. Also rendered fonts for the large readouts inside the clock gauges.&lt;br /&gt;
&lt;br /&gt;
So if we are looking for needed textures - all is here.&lt;br /&gt;
&lt;br /&gt;
Here we can see that those textures are referenced in [[LSD.JXE]] classes:&lt;br /&gt;
&lt;br /&gt;
 public static String SPORT_HMI = &amp;quot;SPORT_HMI.kzb&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 public static int mib2_sport_hmi_kzbFile = 100;&lt;br /&gt;
&lt;br /&gt;
== SportHMI adaptation channels ==&lt;br /&gt;
We all know that there are adaptation channels related to the Performance Monitor in VW, SEAT, and Skoda → http://wiki.mib-helper.com/index.php?title=SPORT_HMI_Performance_Monitor#Adaptation&lt;br /&gt;
&lt;br /&gt;
And it looks like in Audi those are also connected to Sport Display function. Look at this part of code:&lt;br /&gt;
        if (this.isComponentAvailable((short)52, carFuncAdap)) {&lt;br /&gt;
            this.addCarComponent(new SportComponentEvo(this));&lt;br /&gt;
            this.addCarComponent(new SportKombiComponentEvo(this));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;isComponentAvailable((short)52, carFuncAdap)&amp;lt;/code&amp;gt; simply checks if 52nd channel in &amp;lt;code&amp;gt;Car_Function_Adaptations_Gen2&amp;lt;/code&amp;gt; section is set to &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;. And 52nd channel is... You know which one - &amp;lt;code&amp;gt;[LO]_menu_display_SportHMI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Sport and Sport Kombi classes ==&lt;br /&gt;
It looks like there are two separate apps related to Sport Display feature:&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SportHMI-Kombi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Kombi&amp;lt;/code&amp;gt; can be used to distinguish app version designed for instrument cluster (&amp;quot;Kombiinstrument&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a statement that creates the screen:&lt;br /&gt;
 protected Screen createScreen(int n, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            (...)&lt;br /&gt;
            case 600289: {&lt;br /&gt;
                return CarScreenBag1.cARSPORTMAIN(this, n2);&lt;br /&gt;
&lt;br /&gt;
This one returns name of the screen for diagnostic purposes&lt;br /&gt;
 case 600289: {&lt;br /&gt;
     return &amp;quot;CAR_SPORT_MAIN&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And this one executes conditions&lt;br /&gt;
 @Override&lt;br /&gt;
    public void executeCondition(int n, int n2, HMIView[] hMIViewArray, int n3) {&lt;br /&gt;
        switch (n2) {&lt;br /&gt;
        (...)              &lt;br /&gt;
            case 600289: {&lt;br /&gt;
                this.executeConditioncARSPORTMAINScreen(n, hMIViewArray, n3);&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
...which look like this:&lt;br /&gt;
     private void executeConditioncARSPORTMAINScreen(int n, HMIView[] hMIViewArray, int n2) {&lt;br /&gt;
        switch (n) {&lt;br /&gt;
            case 601056: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ScreenWidgetEVO)hMIViewArray[0]).setOpenSelectionDrawerByHkReturn(!this.evaluateSimpleChoiceModelValueEqualsCondition(-534050560, n2, -214497024));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602113: {&lt;br /&gt;
                if (hMIViewArray[0] != null) {&lt;br /&gt;
                    ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                }&lt;br /&gt;
                if (hMIViewArray[1] == null) break;&lt;br /&gt;
                ((OilTemperatureGaugeController)hMIViewArray[1]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(19925248, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602114: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ChargingAirPressureGaugeController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(36702464, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602116: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(70256896, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
            case 602118: {&lt;br /&gt;
                if (hMIViewArray[0] == null) break;&lt;br /&gt;
                ((ContainerController)hMIViewArray[0]).setVisible(this.evaluateSimpleChoiceModelValueEqualsCondition(103811328, n2, 1));&lt;br /&gt;
                break;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
From the above:&lt;br /&gt;
* 602113 - Oil temperature&lt;br /&gt;
* 602114 - Boost pressure&lt;br /&gt;
* 602116 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
* 602118 - &#039;&#039;TODO&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
State machine class is also referring to the SportHMI:&lt;br /&gt;
 public static final int LD_CAR_SEL_SPORTDISPLAY;&lt;br /&gt;
Meaning of the above would be &amp;quot;Sport Display was selected from the CAR menu Left Drawer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* 601 - SPORT_POWER&lt;br /&gt;
* 602 - SPORT_POWER_MAX&lt;br /&gt;
* 603 - SPORT_POWER_CURRENT&lt;br /&gt;
* 604 - SPORT_TORQUE&lt;br /&gt;
* 605 - SPORT_TORQUE_MAX&lt;br /&gt;
* 606 - SPORT_TORQUE_CURRENT&lt;br /&gt;
* 607 - SPORT_OIL_TEMPERATURE&lt;br /&gt;
* 608 - SPORT_AIR_PRESSURE&lt;br /&gt;
&lt;br /&gt;
== Why no Sport submenu in Car menu? ==&lt;br /&gt;
It looks like everything is there. All the programming logic, adaptation to activate, data pulls, GUI assets, inits... So why it is not working?&lt;br /&gt;
&lt;br /&gt;
One of my theories is that at some point of development they decided to move the Sport HMI functionality from MIB to VC. On one side it makes sense - feature will not be duplicated on both displays. But on the other hand VC is optional equipment and not all cars have it.&lt;br /&gt;
&lt;br /&gt;
For whatever reasons it was - they needed to remove Sport HMI from Audi MIB. And by &amp;quot;remove&amp;quot; I mean &amp;quot;make it not visible for user&amp;quot;. That&#039;s why all the mentioned above parts of code and assets are there. So how they did it? And how to restore it?&lt;br /&gt;
&lt;br /&gt;
Maybe let&#039;s analyse how the MENU and CAR MENU structures looks like:&lt;br /&gt;
* Car&lt;br /&gt;
** Audi Drive Select&lt;br /&gt;
** Charging (eTron)&lt;br /&gt;
** Statistics (eTron)&lt;br /&gt;
** Vehicle Settings&lt;br /&gt;
** Drive Assist&lt;br /&gt;
** Air Condition&lt;br /&gt;
** Service and Checks&lt;br /&gt;
** Boardbook&lt;br /&gt;
* Sound&lt;br /&gt;
* Media&lt;br /&gt;
* Phone&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
By the first look, I can see some similarities to the &amp;lt;code&amp;gt;CarEvoMenuEntryStructure.java&amp;lt;/code&amp;gt; class:&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry2 = this.entryFactory.createMenuEntry(1596459264, &amp;quot;CAR_FUNC_CHARISMA&amp;quot;, -282457856);&lt;br /&gt;
 MenuEntry menuEntry3 = this.entryFactory.createMenuEntry(1630013696, &amp;quot;CAR_FUNC_SETTINGS&amp;quot;, -1305802496);&lt;br /&gt;
 MenuEntry menuEntry4 = this.entryFactory.createMenuEntry(1646790912, &amp;quot;CAR_FUNC_DRIVE_ASSIST&amp;quot;, -1339356928);&lt;br /&gt;
 MenuEntry menuEntry5 = this.entryFactory.createMenuEntry(1663568128, &amp;quot;CAR_FUNC_AIR_CONDITION&amp;quot;, -1389688576);&lt;br /&gt;
 MenuEntry menuEntry6 = this.entryFactory.createMenuEntry(1680345344, &amp;quot;CAR_FUNC_AUXHEAT&amp;quot;, -1356134144);&lt;br /&gt;
 MenuEntry menuEntry7 = this.entryFactory.createMenuEntry(10, &amp;quot;CAR_FUNC_AUX_AC)&amp;quot;, -1372911360);&lt;br /&gt;
 MenuEntry menuEntry8 = this.entryFactory.createMenuEntry(11, &amp;quot;CAR_FUNC_AUX_COMBINED)&amp;quot;, 1210976512);&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(1713899776, &amp;quot;CAR_FUNC_SERVICE&amp;quot;, -1322579712);&lt;br /&gt;
 MenuEntry menuEntry10 = this.entryFactory.createMenuEntry(1177094400, &amp;quot;CAR_FUNC_BORDBOOK&amp;quot;, 1412172032);&lt;br /&gt;
 MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(640289024, &amp;quot;CAR_FUNC_CHARGE&amp;quot;, -1842607872);&lt;br /&gt;
 MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(-383121152, &amp;quot;CAR_FUNC_STATISTICS&amp;quot;, -349370112);&lt;br /&gt;
 MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(12, &amp;quot;CAR_FUNC_SPORT&amp;quot;, 120588544);&lt;br /&gt;
&lt;br /&gt;
Now, let&#039;s check how the top-level menus are initialised and compare them to the SportHMI class to find what&#039;s missing. Maybe this will point us into the right direction.&lt;br /&gt;
&lt;br /&gt;
After quick check and compare, it looks like there&#039;s one function missing from the SportComponentEvo class. It&#039;s &amp;lt;code&amp;gt;updateMenuEntryVisibility()&amp;lt;/code&amp;gt; that appears in other car submenu classes. Not only those top-level. All of them. Is this it?&lt;br /&gt;
&lt;br /&gt;
== Moment of Doubt ==&lt;br /&gt;
Had a chance to test-drive an Audi SQ7 (4M) and played a bit with the Drive Select functions. There are &amp;quot;off-road&amp;quot; and &amp;quot;allroad&amp;quot; modes which enable additional element - Tilt Angle Display (TAD). This new element is visible directly on the Drive Select screen, and not as a separate submenu in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
So it got me wondering. What if the SportHMI is also just an additional widget that should be displayed on the Drive Select screen when &amp;quot;Sport&amp;quot; or &amp;quot;Race&amp;quot; mode is selected? If so, it would mean that this function might be controlled via Gateway with proper dataset. Or it&#039;s a separate submenu but still enabled with a gateway dataset?&lt;br /&gt;
&lt;br /&gt;
I need to look into the Charisma menu and TAD elements in LSH.JXE...&lt;br /&gt;
&lt;br /&gt;
 private IMenuEntry[] buildMenuCharisma(LogChannel logChannel) {&lt;br /&gt;
  // (...) &lt;br /&gt;
  menuEntry8.setFunctionalStateValues(new int[]{4}); //LIFT&lt;br /&gt;
  menuEntry2.setFunctionalStateValues(new int[]{4}); //OFFROAD&lt;br /&gt;
  menuEntry10.setFunctionalStateValues(new int[]{4}); //LIFT OFFROAD&lt;br /&gt;
  menuEntry5.setFunctionalStateValues(new int[]{8}); //EFFICIENCY&lt;br /&gt;
  // (...) &lt;br /&gt;
  MenuEntry menuEntry11 = this.entryFactory.createMenuEntry(250, &amp;quot;CHARISMA_EFFICIENCY_BCME_ADD_INFO&amp;quot;, 1898776832);&lt;br /&gt;
  MenuEntry menuEntry12 = this.entryFactory.createMenuEntry(252, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMPTION_BARGRAPH&amp;quot;, 1613564160);&lt;br /&gt;
  MenuEntry menuEntry13 = this.entryFactory.createMenuEntry(251, &amp;quot;CHARISMA_EFFICIENCY_BCME_CONSUMER_LIST&amp;quot;, 1915554048);&lt;br /&gt;
  menuEntry11.setChildren(new IMenuEntry[]{menuEntry12, menuEntry13});&lt;br /&gt;
  MenuEntry menuEntry14 = this.entryFactory.createMenuEntry(326, &amp;quot;TAD_MAIN&amp;quot;, 1999374592);&lt;br /&gt;
  MenuEntry menuEntry15 = this.entryFactory.createMenuEntry(328, &amp;quot;TAD_PITCH_ANGLE&amp;quot;, 1965820160);&lt;br /&gt;
  MenuEntry menuEntry16 = this.entryFactory.createMenuEntry(327, &amp;quot;TAD_ROLL_ANGLE&amp;quot;, 1982597376);&lt;br /&gt;
  menuEntry14.setChildren(new IMenuEntry[]{menuEntry15, menuEntry16});&lt;br /&gt;
  return new IMenuEntry[]{menuEntry, menuEntry2, menuEntry3, menuEntry4, menuEntry5, menuEntry7, menuEntry6, menuEntry8, menuEntry10, menuEntry9};&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nope! It looks like only Efficiency Mode and Lift/Offroad Modes have children elements. No SportHMI mentions here. And previously mentioned &amp;lt;code&amp;gt;LD_CAR_SEL_SPORTDISPLAY&amp;lt;/code&amp;gt; was linked to left drawer, which means that the SportHMI needs to be present in the CAR menu.&lt;br /&gt;
&lt;br /&gt;
But there&#039;s a RACE Mode mentioned here and there.&lt;br /&gt;
&lt;br /&gt;
 MenuEntry menuEntry9 = this.entryFactory.createMenuEntry(238, &amp;quot;CHARISMA_PROFILE_RACE&amp;quot;, 305203456);&lt;br /&gt;
&lt;br /&gt;
 public boolean isRacesport() {&lt;br /&gt;
  return this.racesport;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Maybe that&#039;s it? Maybe the RACE Charisma mode needs to be enabled from the SportHMI to be accessible?&lt;br /&gt;
&lt;br /&gt;
Just to be sure, I will check if there are some &amp;quot;RACE&amp;quot; references in the code. But not now.&lt;br /&gt;
&lt;br /&gt;
== Figuring out the missing data ==&lt;br /&gt;
Played around with KeyCombo (that&#039;s a separate topic) and found that Audi HMI has an build-in app for HMI tests. It shows a lot of data about visible items and data provided by the rest of the car.&lt;br /&gt;
&lt;br /&gt;
Here we can see which information is provided &amp;lt;code&amp;gt;state: 2&amp;lt;/code&amp;gt;, and which is not &amp;lt;code&amp;gt;state: 0&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SportHMI&lt;br /&gt;
  DynamicVehicleInfoHighFrequentViewOptions(&lt;br /&gt;
   longitudinalAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   engineSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   powermeter=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   lateralAcceleration=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   relChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   absChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   currentTorque=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   yawRate=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   brakePressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   wheelAngle=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   acceleratorPosition=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   vehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   systemCycleDistance=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   torqueDisteributionRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   realVehicleSpeed=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   shiftLight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   allWheelDriveTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espOversteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espUndersteering=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityFrontRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearLeft=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   espWheelVelovityRearRight=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   relAllWheelDriveTorque=ViewOption(state: 0, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
  SemiStaticDataViewOptions(&lt;br /&gt;
   maxChargingAirPressure=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxOutputPower=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   maxTorque=ViewOption(state: 0, reason: 0),&lt;br /&gt;
   engineDisplacement=ViewOption(state: 2, reason: 0),&lt;br /&gt;
   typeOfInjectionSystem=ViewOption(state: 2, reason: 0)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
And here we can check which components in the SPORT HMI are fully functional and which are not:&lt;br /&gt;
 CAR_FUNC_SPORT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602119&lt;br /&gt;
        Parent: CAR_MAIN&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER&lt;br /&gt;
            SPORT_TORQUE&lt;br /&gt;
            SPORT_OIL_TEMPERATURE&lt;br /&gt;
            SPORT_AIR_PRESSURE&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602116&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_POWER_MAX&lt;br /&gt;
            SPORT_POWER_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_POWER_MAX&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_POWER_CURRENT&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_POWER&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_TORQUE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602118&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children:&lt;br /&gt;
            SPORT_TORQUE_MAX&lt;br /&gt;
            SPORT_TORQUE_CURRENT&lt;br /&gt;
            &lt;br /&gt;
 SPORT_TORQUE_MAX&lt;br /&gt;
        State: INVISIBLE&lt;br /&gt;
        ModelID: -1&lt;br /&gt;
        Parent: SPORT_TORQUE&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_OIL_TEMPERATURE&lt;br /&gt;
        State: Invisible&lt;br /&gt;
        ModelID: 602113&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
        &lt;br /&gt;
 SPORT_AIR_PRESSURE&lt;br /&gt;
        State: FUNCTIONAL&lt;br /&gt;
        ModelID: 602114&lt;br /&gt;
        Parent: CAR_FUNC_SPORT&lt;br /&gt;
        Children: none&lt;br /&gt;
&lt;br /&gt;
Two things (&amp;lt;code&amp;gt;SPORT_TORQUE_MAX&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SPORT_OIL_TEMPERATURE&amp;lt;/code&amp;gt; are invisible. This partially correlates with unavailable &amp;lt;code&amp;gt;maxTorque&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Is it that this missing data is what&#039;s locking the SPORT submenu to appear?&lt;br /&gt;
&lt;br /&gt;
== Modifications with custom data ==&lt;br /&gt;
//TODO&lt;br /&gt;
ideas:&lt;br /&gt;
* oil temp → gearbox temp&lt;br /&gt;
* boost pressure → oil pressure&lt;br /&gt;
* torque → steering angle&lt;br /&gt;
* power → tachometer&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Tweaks]]&lt;/div&gt;</summary>
		<author><name>Mr-fix</name></author>
	</entry>
</feed>