Files
ghidra/Ghidra/RuntimeScripts/support/launch.properties
2026-10-07 06:58:45 -04:00

204 lines
10 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
# Fix blank windows on non-parenting windows managers such as XMonad and Sway
#ENVVARS_LINUX=_JAVA_AWT_WM_NONREPARENTING=1
# 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
# Optionally disable server-authentication when accessed via a local loopback interface such
# as 127.0.0.1, ::1 or localhost. This permits such a server to present a self-signed certificate,
# as generated by a Ghidra Server or BSim PostgreSQL server which was configured without a server
# keystore. This should only be done under controlled situations since a rogue server on the local
# system could easily capture sensitive information passed by the client (such as a PostgreSQL
# admin password). Only loopback connections are affected; all other connections continue to be
# authenticated.
#
# NOTE: This will not work with the Ghidra Server if it has been initialized with a keystore
# unless the server has specifically been configured to use localhost interface.
#
# VMARGS=-Dghidra.disable.loopback.server.authentication=true
# Optional CA certificates file may be specified to prevent use of OS and Java default CA certificates.
# If specified, only those CA certificates specified within this file will be considered when
# authenticating server connections which use the default SSLContext. If using the defaults is desirable
# adding CAs to the OS managed certificates should be done. In the case of Unix, whose system managed
# certificate store requires root access, the 'ghidra.unix.default.cacerts' property below can be used in
# the place of 'ghidra.cacerts'.
# VMARGS=-Dghidra.cacerts=
# Optional Unix OS CA Trust Store path (does not apply to Windows or macOS). If the default set of
# Linux CA Trust Store paths, as defined by UnixSystemTrustKeyStoreUtil.java, does not include a suitable
# location where CA certificates are stored this property may specify a directory or file to be
# included when building the default OS trust store. This property is ignored if the ghidra.cacerts
# property has been set since OS trust store(s) will not be loaded.
# VMARGS=-Dghidra.unix.default.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 "Troubleshooting 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
#
# NOTE: When this debug logging is enabled be sure to launch Ghidra with debugGhidra instead of
# ghidraRun since the detailed log output is directed to the console only. This behavior may
# vary with other launch scripts.
#
#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
# Use JDK compact object headers
VMARGS=-XX:+UseCompactObjectHeaders
# 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
# Hide unsafe memory access warning (triggered by Apache Felix)
VMARGS=--sun-misc-unsafe-memory-access=allow
# 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
# Override the maximum number of allowed entries in an extension zip archive. We internally cap this
# to avoid malicious zip files from causing issues when trying to install zipped extensions.
#VMARGS=-Dghidra.extensions.maxfiles.override=10000
# 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
# Prevents PyGhidra from restoring sys.modules to its original state after a PyGhidra script is run.
# Used to help debug potential issues that might arise from mucking with sys.modules.
#VMARGS=-Dpyghidra.sys.modules.restore.disable=true
# Full path to the native Swift demangler binary. This is typically named "swift", but some Swift
# installations also provide a standalone "swift-demangle" binary.
#ENVVARS=GHIDRA_SWIFT_DEMANGLER=