ghidra/Ghidra/RuntimeScripts/Common/support/launch.properties
Ryan Kurtz 131aa4ac9a GP-0: If pyghidra.sys.modules.restore is set, PyGhidra will restore
sys.modules each time a script is run (Closes #8529)
2025-10-02 13:10:46 -04:00

158 lines
7.5 KiB
Properties

# Force Ghidra's Java home instead of trying to figure it out automatically.
# If the provided path does not point to a supported Java home that Ghidra
# supports, this property is ignored.
# NOTE: Ghidra requires a JDK to launch.
JAVA_HOME_OVERRIDE=
# Required Ghidra class loader
VMARGS=-Djava.system.class.loader=ghidra.GhidraClassLoader
# Set default encoding to UTF8
VMARGS=-Dfile.encoding=UTF8
# Set locale (only en_US is supported)
VMARGS=-Duser.country=US
VMARGS=-Duser.language=en
VMARGS=-Duser.variant=
# The following options affect rendering on different platforms. It may be necessary to play
# with these settings to get Ghidra to display and perform optimally on HiDPI monitors or in VM's.
VMARGS=-Dsun.java2d.opengl=false
VMARGS_LINUX=-Dsun.java2d.pmoffscreen=false
VMARGS_LINUX=-Dsun.java2d.xrender=true
VMARGS_LINUX=-Dsun.java2d.uiScale=1
VMARGS_LINUX=-Dawt.useSystemAAFontSettings=on
VMARGS_WINDOWS=-Dsun.java2d.d3d=false
# The Ghidra application establishes the default SSLContext for all
# secure client connections based upon Java's default TLS protocol enablement.
# Setting this property will restrict the enabled TLS protocol versions for
# all secure network connections. Specifying multiple protocols must be
# comma-separated (e.g., TLSv1.2,TLSv1.3). See https://java.com/en/configure_crypto.html
# for details on configuring Java's cryptographic algorithms.
VMARGS=-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3
# Force PKI server authentication of all HTTPS and Ghidra Server connections by
# specifying path to installed CA certificates file.
# VMARGS=-Dghidra.cacerts=
# Enable verbose logging for network SSL/TLS negotiations.
# This can be very useful when troubleshooting SSLHandshakeException failures which can
# manifest with very cryptic messages. All Ghidra Server communications rely on secure
# SSL/TLS connections. This VMARG should only be uncommented while actively troubleshooting
# since it will log a significant amount of data.
#
# See the "Troubleshoting JSSE" section of the following internet hosted document:
# https://docs.oracle.com/en/java/javase/17/security/java-secure-socket-extension-jsse-reference-guide.html
#
#VMARGS=-Djavax.net.debug=ssl
# The following property will limit the number of processor cores that Ghidra
# will use for thread pools. If not specified, it will use the default number
# of processors returned from Runtime.getRuntime().getAvailableProcessors().
# Otherwise, it will use the min of the value returned from Runtime and the
# value specified by the following property.
VMARGS=-Dcpu.core.limit=
# The following property is a way to exactly specify the number of processor
# cores that Ghidra will use for thread pools. Note: this will supersede the
# above 'cpu.core.limit' value if it is set.
VMARGS=-Dcpu.core.override=
# Default font size for many java swing elements.
VMARGS=-Dfont.size.override=
# Set Jython console encoding (prevents a console error)
VMARGS=-Dpython.console.encoding=UTF-8
# Eclipse on macOS can have file locking issues if the user home directory is networked. Therefore,
# we will disable file locking by default for macOS. Comment the following line out if Eclipse file
# locking is needed and known to work.
VMARGS_MACOS=-Declipse.filelock.disable=true
# Where the menu bar is displayed on macOS
VMARGS_MACOS=-Dapple.laf.useScreenMenuBar=false
# Make the title bar adaptable to macOS theme
VMARGS_MACOS=-Dapple.awt.application.appearance=system
# Prevent log4j from using the Jansi DLL on Windows.
VMARGS_WINDOWS=-Dlog4j.skipJansi=true
# Custom class loader usage forces class data sharing to be disabled which produces a warning.
# Ghidra does not use class data sharing, so explicitly turn it off to avoid the warning.
VMARGS=-Xshare:off
# Restrict XML external access
VMARGS=-Djavax.xml.accessExternalDTD=
VMARGS=-Djavax.xml.accessExternalSchema=
VMARGS=-Djavax.xml.accessExternalStylesheet=
# Enable native access (required by FlatLaf)
VMARGS=--enable-native-access=ALL-UNNAMED
# Settings directory used by the application to store application settings and data that persist
# between application sessions, system reboots, and periodic system cleanup. Overridden values
# are required to be absolute paths. The current user name may be incorporated into the settings
# directory's name if the settings directory lives outside of the user's home directory. The
# settings directory will be selected based on the following rules, in order of precedence:
# 1. System.getProperty("application.settingsdir")/[user-]<application>/<application>_<version>
# 2. System.getenv("XDG_CONFIG_HOME")/[user-]<application>/<application>_<version>
# 3. A platform specific default location:
# - Windows: %APPDATA%\<application>\<application>_<version>
# - Linux: $HOME/.config/<application>/<application>_<version>
# - macOS: $HOME/Library/<application>/<application>_<version>
#VMARGS=-Dapplication.settingsdir=
# Cache directory used by the application to store cached application data that ideally will persist
# between application sessions and system reboots, but is not required to do so. Files stored in
# the cache directory may be numerous and/or large. Overridden values are required to be absolute
# paths. The current user name may be incorporated into the cache directory's name if the cache
# directory lives outside of the user's home directory. The cache directory will be selected based
# on the following rules, in order of precedence
# 1. System.getProperty("application.cachedir")/[user-]<application>
# 2. System.getenv("XDG_CACHE_HOME")/[user-]<application>
# 3. A platform specific default location:
# - Windows: %LOCALAPPDATA%\<application>
# - Linux: /var/tmp/<user>-<application>
# - macOS: /var/tmp/<user>-<application>
#VMARGS=-Dapplication.cachedir=
# Temporary directory used by the application to store short-lived files that are not required to
# persist between application sessions. Overridden values are required to be absolute paths. The
# current user name may be incorporated into the temporary directory's name if the temporary
# directory lives outside of the user's home directory. The temporary directory will be selected
# based on the following rules, in order of precedence:
# 1. System.getProperty("application.tempdir")/[user-]<application>
# 2. System.getProperty("java.io.tmpdir")/[user-]<application>
# Unless overridden below, the "java.io.tmpdir" system property typically defaults to the following
# platform specific locations:
# - Windows: %TEMP%
# - Linux: /tmp
# - macOS: $TMPDIR
#VMARGS=-Dapplication.tempdir=
#VMARGS=-Djava.io.tmpdir=
# Disable alternating row colors in tables
#VMARGS=-Ddisable.alternating.row.colors=true
# Limit on XML parsing. See https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html
#VMARGS=-Djdk.xml.totalEntitySizeLimit=50000000
# Restrict extensions to their own 'lib' directory for loading non-Ghidra jars. This may be used
# to fix class resolution if multiple extensions include different versions of the same named class.
#VMARGS=-Dghidra.extensions.classpath.restricted=true
# Enables PDB debug logging during import and analysis to .ghidra/.ghidra_ver/pdb.analyzer.log
#VMARGS=-Dghidra.pdb.logging=true
# Enables PDB developer mode
#VMARGS=-Dghidra.pdb.developerMode=true
# Disables the loaders echoing their message log to the application.log file
#VMARGS=-Ddisable.loader.logging=true
# Restores sys.modules to its prior state after a PyGhidra script is run so the next time the script
# is run, it freshly reloads all of its imported modules again. This is experimental and should only
# be enabled if necessary.
#VMARGS=-Dpyghidra.sys.modules.restore=true