diff --git a/.github/workflows/build-ghidra.yml b/.github/workflows/build-ghidra.yml index 57a92feefb..54bd6dfdec 100644 --- a/.github/workflows/build-ghidra.yml +++ b/.github/workflows/build-ghidra.yml @@ -10,7 +10,9 @@ jobs: runs-on: ${{ matrix.platform }} steps: - - uses: actions/checkout@v6 + + - name: Checkout repository + uses: actions/checkout@v6 - name: Read Ghidra JDK Version run: echo "JDK_VER=$(awk -F'=' '$1=="application.java.min" {print $2}' Ghidra/application.properties)" >> $GITHUB_ENV diff --git a/.github/workflows/dependency-submission.yml b/.github/workflows/dependency-submission.yml index e707b127b0..db507711d6 100644 --- a/.github/workflows/dependency-submission.yml +++ b/.github/workflows/dependency-submission.yml @@ -15,11 +15,14 @@ jobs: - name: Checkout repository uses: actions/checkout@v6 + - name: Read Ghidra JDK Version + run: echo "JDK_VER=$(awk -F'=' '$1=="application.java.min" {print $2}' Ghidra/application.properties)" >> $GITHUB_ENV + - name: Setup JDK uses: actions/setup-java@v5 with: - distribution: 'temurin' - java-version: '21' + distribution: 'temurin' + java-version: '${{ env.JDK_VER }}' - name: Fetch Dependencies run: ./gradlew -I gradle/support/fetchDependencies.gradle -DhideDownloadProgress -DnoEclipse diff --git a/Ghidra/Features/PyGhidra/.launch/PyGhidra GUI.launch b/Ghidra/Features/PyGhidra/.launch/PyGhidra GUI.launch index bc0c1ef12c..768d68689e 100644 --- a/Ghidra/Features/PyGhidra/.launch/PyGhidra GUI.launch +++ b/Ghidra/Features/PyGhidra/.launch/PyGhidra GUI.launch @@ -9,7 +9,7 @@ - + diff --git a/Ghidra/Features/PyGhidra/.launch/PyGhidra Interpreter.launch b/Ghidra/Features/PyGhidra/.launch/PyGhidra Interpreter.launch index 97462b74b2..6d5a6dd243 100644 --- a/Ghidra/Features/PyGhidra/.launch/PyGhidra Interpreter.launch +++ b/Ghidra/Features/PyGhidra/.launch/PyGhidra Interpreter.launch @@ -9,7 +9,7 @@ - + diff --git a/Ghidra/Features/PyGhidra/.launch/_PyGhidra GUI Debug.launch b/Ghidra/Features/PyGhidra/.launch/_PyGhidra GUI Debug.launch index c9a8500275..4642670128 100644 --- a/Ghidra/Features/PyGhidra/.launch/_PyGhidra GUI Debug.launch +++ b/Ghidra/Features/PyGhidra/.launch/_PyGhidra GUI Debug.launch @@ -9,7 +9,7 @@ - + diff --git a/Ghidra/Features/PyGhidra/.launch/_PyGhidra Interpreter Debug.launch b/Ghidra/Features/PyGhidra/.launch/_PyGhidra Interpreter Debug.launch index eacee98399..89be4b6613 100644 --- a/Ghidra/Features/PyGhidra/.launch/_PyGhidra Interpreter Debug.launch +++ b/Ghidra/Features/PyGhidra/.launch/_PyGhidra Interpreter Debug.launch @@ -9,7 +9,7 @@ - + diff --git a/Ghidra/Features/PyGhidra/src/main/py/src/pyghidra/launcher.py b/Ghidra/Features/PyGhidra/src/main/py/src/pyghidra/launcher.py index 9665439b46..c920a355b0 100644 --- a/Ghidra/Features/PyGhidra/src/main/py/src/pyghidra/launcher.py +++ b/Ghidra/Features/PyGhidra/src/main/py/src/pyghidra/launcher.py @@ -262,6 +262,8 @@ class PyGhidraLauncher: if "org.eclipse.jdt.launching.VM_ARGUMENTS" in line: _, _, value = line.partition("value=") value = value.removesuffix("/>") + if value.startswith('"') and value.endswith('"'): + value = value[1:-1] return html.unescape(value).split() raise Exception("org.eclipse.jdt.launching.VM_ARGUMENTS not found") diff --git a/Ghidra/RuntimeScripts/support/launch.properties b/Ghidra/RuntimeScripts/support/launch.properties index 42e00fdba8..f13c8f1e5a 100644 --- a/Ghidra/RuntimeScripts/support/launch.properties +++ b/Ghidra/RuntimeScripts/support/launch.properties @@ -105,6 +105,9 @@ 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 diff --git a/Ghidra/application.properties b/Ghidra/application.properties index 1c6ddeaf6c..270f8a1900 100644 --- a/Ghidra/application.properties +++ b/Ghidra/application.properties @@ -2,9 +2,9 @@ application.name=Ghidra application.version=12.2 application.release.name=DEV application.layout.version=3 -application.gradle.min=8.5 +application.gradle.min=9.1 application.gradle.max= -application.java.min=21 +application.java.min=25 application.java.max= -application.java.compiler=21 +application.java.compiler=25 application.python.supported=3.14, 3.13, 3.12, 3.11, 3.10, 3.9 diff --git a/GhidraDocs/GettingStarted.md b/GhidraDocs/GettingStarted.md index f844576205..3f20a3edc9 100644 --- a/GhidraDocs/GettingStarted.md +++ b/GhidraDocs/GettingStarted.md @@ -51,12 +51,12 @@ a specific need. * Dual monitors strongly suggested ### Software -* Java 21 64-bit Runtime and Development Kit (JDK) (see [Java Notes](#java-notes)) - * Free long term support (LTS) versions of JDK 21 are provided by: +* Java 25 64-bit Runtime and Development Kit (JDK) (see [Java Notes](#java-notes)) + * Free long term support (LTS) versions of JDK 25 are provided by: * [Adoptium Temurin](https://adoptium.net/temurin/releases) - * [Amazon Corretto](https://docs.aws.amazon.com/corretto/latest/corretto-21-ug/downloads-list.html) + * [Amazon Corretto](https://docs.aws.amazon.com/corretto/latest/corretto-25-ug/downloads-list.html) * Python3 (3.9 to 3.14) - * Python 3.9 to 3.14 for [Debugger support](#debugger-notes) + * Python 3.7 to 3.14 for [Debugger support](#debugger-notes) * Python 3.9 to 3.14 for [PyGhidra support](#pyghidra-mode) * This is available from [Python.org](https://python.org) or most operating system's app stores or software repositories. For Linux it is recommended that the system's package repository be used @@ -210,7 +210,7 @@ For supported systems where native binaries have not been supplied, or those tha to run properly, it may be necessary to build the native Ghidra binaries. In order to build native binaries for your platform, you will need the following installed on your system: * A [supported](#minimum-requirements) version of a Java Development Kit -* [Gradle 8.5+](https://gradle.org/releases) (or supplied Gradle wrapper with Internet connection) +* [Gradle 9.1.0+](https://gradle.org/releases) (or supplied Gradle wrapper with Internet connection) * Software C/C++ build tools and library packages * __macOS:__ _Xcode_ or the abbreviated _Command Line Tools for Xcode_. Assuming you are connected to the Internet, _Xcode_ (which includes the command tools) may be installed directly from the diff --git a/README.md b/README.md index 1e5534e830..4640214ee3 100644 --- a/README.md +++ b/README.md @@ -47,8 +47,8 @@ Ghidra installation directory. To create the latest development build for your platform from this source repository: ##### Install build tools: -* [JDK 21 64-bit][jdk] -* [Gradle 8.5+][gradle] (or provided Gradle wrapper if Internet connection is available) +* [JDK 25 64-bit][jdk] +* [Gradle 9.1.0+][gradle] (or provided Gradle wrapper if Internet connection is available) * [Python3][python3] (version 3.9 to 3.14) with bundled pip * GCC or Clang, and make (Linux/macOS-only) * [Microsoft Visual Studio][vs] 2017+ or [Microsoft C++ Build Tools][vcbuildtools] with the diff --git a/eclipse/GhidraEclipseFormatter.xml b/eclipse/GhidraEclipseFormatter.xml index bb36d11835..2ddcf2328f 100644 --- a/eclipse/GhidraEclipseFormatter.xml +++ b/eclipse/GhidraEclipseFormatter.xml @@ -226,6 +226,7 @@ +