LSD.JXE: Difference between revisions

From MIB-Helper.com Wiki
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Basics ==
== Basics ==
=== Location ===
=== Location ===
<code>/ifs/lsd.jxe</code>???


=== Variables ===
=== Run script ===
<code>/mnt/app/eso/hmi/lsd/lsd.sh</code>
 
=== Run script variables ===
  export MOUNT_DIR=
  export MOUNT_DIR=
  export MOUNT_APP_DIR=/mnt/app
  export MOUNT_APP_DIR=/mnt/app
Line 8: Line 12:
  export LSD_DIR=$MOUNT_DIR/ifs
  export LSD_DIR=$MOUNT_DIR/ifs
  export GRAPHICS_DIR=$BASE_DIR/graphics
  export GRAPHICS_DIR=$BASE_DIR/graphics
== lsd.sh flags and VMOPTIONS ==
Some functions and options of the LSD.JXE can be adjusted and passed via a <code>VMOPTION</code> parameter. This will allow to run it in with some debug options, experimental features, bypassing safety check, changing screen resolution, etc.
More information about [[VMOPTIONS]].
-DActivateAllCarMenus=true
-DSetMenuCoding=ACC:5,INT_LIGHT:5, (...) ,MKE:5,BCME:0
-DSetCarMenusVisible=true
-DOfficial_Release=true
-DSYNC_EARLY_RVC=true
-DWAIT_FOR_MAP_AVAILABLE=20000
-DWAIT_FOR_AUDIO_TIMEOUT=1
-DWAIT_FOR_SDS_AVAILABLE=1
-Dmedia.config.usb=installed
-Dmedia.config.aux=installed
-Dmedia.config.tv=installed
-Dmedia.config.cd=installed
-Dmedia.config.dvd=notinstalled
-Dtv.startup.config.force.enable=true
-DdisableRRDforPOI=true
-DActivateNaviDebugPopup=true
-DenableNLU=true"
-DsdsPauseActive=false
-DsdsLogicalPopup=true
-DexternalSDS=true
-DenableGEM=true
-DIS_PRODUCTION_MODE=true
-DEOLFLAG_IMPORT_MEDIA_DATA=1
-DEOLFLAG_RIPPING_MEDIA_DATA=1
-DuseNewTtsClient=true
-DErrorDumpTriggerPort=6767
-DSWDLAutoRetries=0
-Dscreenshot.dirs=/fs/sda0;/fs/sdb0;/fs/usb0;/fs/usb1;/tmp
-DmyAudi.VIN=BAUIEE4HZ09012808
-DmyAudi.IMSI=2620225510
-DoverrideBtMediaDiagCode=true
-DbtIgnoreSpeedThreshold=true
-Dbluetooth.enableFastInquiry=true
-DScreenRes=1
-DScreenRes=4


== LSD.jxe development mode ==
== LSD.jxe development mode ==
Line 23: Line 68:
If development mode is enabled, it will trigger couple things in <code>LSD.JXE</code>.
If development mode is enabled, it will trigger couple things in <code>LSD.JXE</code>.
* overwrites JAVA_HOME directory path.
* overwrites JAVA_HOME directory path.
  if [[ -f $DEV_ACTIVATED ]]; then
  <nowiki>if [[ -f $DEV_ACTIVATED ]]; then
  if [[ -d $BASE_DIR/lsd/jre ]]; then
  if [[ -d $BASE_DIR/lsd/jre ]]; then
  export JAVA_HOME=$BASE_DIR/lsd/jre
  export JAVA_HOME=$BASE_DIR/lsd/jre
Line 32: Line 77:
  if [[ -f $DEV_ACTIVATED ]]; then
  if [[ -f $DEV_ACTIVATED ]]; then
   VMOPTIONS="$VMOPTIONS -Dlsd.bundles=$BASE_DIR/lsd/bundles.properties"
   VMOPTIONS="$VMOPTIONS -Dlsd.bundles=$BASE_DIR/lsd/bundles.properties"
  fi
  fi</nowiki>


* sets <code>dev_mode</code> variable for hmi logic, sets path to external hmi.zip boot class if it exists
* sets <code>dev_mode</code> variable for hmi logic, sets path to external hmi.zip boot class if it exists
  #development mode
  <nowiki>#development mode
  if [[ -f $DEV_ACTIVATED ]]; then
  if [[ -f $DEV_ACTIVATED ]]; then
  echo "######################################"
  echo "######################################"
Line 59: Line 104:


* outputs diagnostic info
* outputs diagnostic info
  #Diagnosis output in development mode:
  <nowiki>#Diagnosis output in development mode:
  if [[ -f $DEV_ACTIVATED ]]; then
  if [[ -f $DEV_ACTIVATED ]]; then
  echo "JAVA_HOME=$JAVA_HOME"
  echo "JAVA_HOME=$JAVA_HOME"
  echo "VMOPTIONS=$VMOPTIONS"
  echo "VMOPTIONS=$VMOPTIONS"
  echo "BOOTCLASSPATH=$BOOTCLASSPATH (plus lsd.jxe)"
  echo "BOOTCLASSPATH=$BOOTCLASSPATH (plus lsd.jxe)"
  echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
  echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"</nowiki>
  fi
  fi</nowiki>


* executes this
* executes this
  if [[ -f $DEV_ACTIVATED && -f "$HMI_ZIP" ]]; then
  <nowiki>if [[ -f $DEV_ACTIVATED && -f "$HMI_ZIP" ]]; then
  # start hmi.zip
  # start hmi.zip
  info "starting j9 with $HMI_ZIP"
  info "starting j9 with $HMI_ZIP"
Line 81: Line 126:
  echo !!!!!  lsd.jxe not found !!!!!
  echo !!!!!  lsd.jxe not found !!!!!
  fi
  fi
  fi
  fi</nowiki>


== Tweaks ==
== Tweaks ==
Line 97: Line 142:
=== Car Menus override ===
=== Car Menus override ===
//TODO
//TODO
== More TODOOO ==
Look for:
flush
deviceModeToString
initAudioFocusManagement
...to find potentially interesting elements of the code.

Latest revision as of 08:37, 16 March 2025

Basics

Location

/ifs/lsd.jxe???

Run script

/mnt/app/eso/hmi/lsd/lsd.sh

Run script variables

export MOUNT_DIR=
export MOUNT_APP_DIR=/mnt/app
export BASE_DIR=$MOUNT_APP_DIR/eso/hmi
export LSD_DIR=$MOUNT_DIR/ifs
export GRAPHICS_DIR=$BASE_DIR/graphics

lsd.sh flags and VMOPTIONS

Some functions and options of the LSD.JXE can be adjusted and passed via a VMOPTION parameter. This will allow to run it in with some debug options, experimental features, bypassing safety check, changing screen resolution, etc.

More information about VMOPTIONS.

-DActivateAllCarMenus=true
-DSetMenuCoding=ACC:5,INT_LIGHT:5, (...) ,MKE:5,BCME:0
-DSetCarMenusVisible=true
-DOfficial_Release=true
-DSYNC_EARLY_RVC=true
-DWAIT_FOR_MAP_AVAILABLE=20000
-DWAIT_FOR_AUDIO_TIMEOUT=1
-DWAIT_FOR_SDS_AVAILABLE=1
-Dmedia.config.usb=installed
-Dmedia.config.aux=installed
-Dmedia.config.tv=installed
-Dmedia.config.cd=installed
-Dmedia.config.dvd=notinstalled
-Dtv.startup.config.force.enable=true
-DdisableRRDforPOI=true
-DActivateNaviDebugPopup=true
-DenableNLU=true"
-DsdsPauseActive=false
-DsdsLogicalPopup=true
-DexternalSDS=true
-DenableGEM=true
-DIS_PRODUCTION_MODE=true
-DEOLFLAG_IMPORT_MEDIA_DATA=1
-DEOLFLAG_RIPPING_MEDIA_DATA=1
-DuseNewTtsClient=true
-DErrorDumpTriggerPort=6767
-DSWDLAutoRetries=0
-Dscreenshot.dirs=/fs/sda0;/fs/sdb0;/fs/usb0;/fs/usb1;/tmp
-DmyAudi.VIN=BAUIEE4HZ09012808
-DmyAudi.IMSI=2620225510
-DoverrideBtMediaDiagCode=true
-DbtIgnoreSpeedThreshold=true
-Dbluetooth.enableFastInquiry=true
-DScreenRes=1
-DScreenRes=4

LSD.jxe development mode

Warning! In my case developer mode caused screen freeze. I was able to recover the unit.

How to enable dev mode

DEV_ACTIVATED=$BASE_DIR/lsd/development_activated

Enable development mode by creating this empty file:

touch /mnt/app/eso/hmi/lsd/development_activated && sync && sync && sync

How to disable dev mode

rm /mnt/app/eso/hmi/lsd/development_activated && sync && sync && sync

What is dev mode?

If development mode is enabled, it will trigger couple things in LSD.JXE.

  • overwrites JAVA_HOME directory path.
if [[ -f $DEV_ACTIVATED ]]; then
 	if [[ -d $BASE_DIR/lsd/jre ]]; then
 		export JAVA_HOME=$BASE_DIR/lsd/jre
 	fi
 fi

* loads <code>bundles.properties</code> file
 if [[ -f $DEV_ACTIVATED ]]; then
   VMOPTIONS="$VMOPTIONS -Dlsd.bundles=$BASE_DIR/lsd/bundles.properties"
 fi
  • sets dev_mode variable for hmi logic, sets path to external hmi.zip boot class if it exists
#development mode
 if [[ -f $DEV_ACTIVATED ]]; then
 	echo "######################################"
 	echo "#     DEVELOPER MODE ACTIVE          #"
 	echo "######################################"
 	echo "BASEDIR = $BASE_DIR"
 
     VMOPTIONS="$VMOPTIONS -Ddev_mode=true"
 
 	##
 	## hmi.zip classpath
 	##
 	HMI_ZIP=$BASE_DIR/lsd/hmi.zip
 	if [ -f "$HMI_ZIP" ]; then
 		BOOTCLASSPATH="$BOOTCLASSPATH:$HMI_ZIP"
 	fi
 
 	# use JXE from basedir (eso/hmi) if it exists
 	if [[ -f $BASE_DIR/lsd/lsd.jxe ]]; then
 		LSD_JXE=$BASE_DIR/lsd/lsd.jxe
 	fi
 fi

* outputs diagnostic info
 <nowiki>#Diagnosis output in development mode:
 if [[ -f $DEV_ACTIVATED ]]; then
 	echo "JAVA_HOME=$JAVA_HOME"
 	echo "VMOPTIONS=$VMOPTIONS"
 	echo "BOOTCLASSPATH=$BOOTCLASSPATH (plus lsd.jxe)"
 	echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
fi</nowiki>
  • executes this
if [[ -f $DEV_ACTIVATED && -f "$HMI_ZIP" ]]; then
 	# start hmi.zip
 	info "starting j9 with $HMI_ZIP"
 	$J9 $VMOPTIONS -Xbootclasspath:$BOOTCLASSPATH de.dreisoft.lsd.LSD &
 else
 	if [[ -f "$LSD_JXE" ]]; then
 		# start lsd.jxe
 		BOOTCLASSPATH="$BOOTCLASSPATH:$LSD_JXE"
 		info "starting j9 ...."
 		$J9 $VMOPTIONS -Xbootclasspath:$BOOTCLASSPATH -jxe:$LSD_JXE &
 	else
 		echo !!!!!  lsd.jxe not found !!!!!
 	fi
 fi

Tweaks

Google Earth / Satellite View license bypass

Not working. Passing flag will only remove the popup warning about invalid license. Validation is done on server side.

Apple Siri / Google Assistent patch

Not 100% sure, but this might disable the SDS popup about external SDS when using Siri/Assistant. Will try it soon.

VMOPTIONS="$VMOPTIONS -DsdsLogicalPopup=false"

Touchpad input rubberband disable

Not 100% sure, but this might disable inertion of user input from the touchpad (map scrolling, balance/fader setting)

touch /mnt/app/eso/hmi/disableRubberbandCrosshair && sync && sync && sync

Car Menus override

//TODO

More TODOOO

Look for:

flush
deviceModeToString
initAudioFocusManagement

...to find potentially interesting elements of the code.