dev-util/jadx - 1.5.6 (pf4public)

Search

Install

Install this version:

emerge -a =dev-util/jadx-1.5.6

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =dev-util/jadx-1.5.6

Or alternatively:

emerge --autounmask-write -a =dev-util/jadx-1.5.6

Package Information

Description:
DEX to Java decompiler
Homepage:
https://github.com/skylot/jadx
License:
Apache-2.0 BSD EPL-1.0 LGPL-3+ MIT OFL-1.1

Ebuild Details

Version EAPI Keywords Slot
1.5.6 8 ~amd64 0
View Raw Ebuild
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop edo java-pkg-2 multiprocessing xdg

DESCRIPTION="DEX to Java decompiler"
HOMEPAGE="https://github.com/skylot/jadx"
SRC_URI="https://github.com/skylot/jadx/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="Apache-2.0"
LICENSE+=" BSD EPL-1.0 LGPL-3+ MIT OFL-1.1"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+build-online"
RESTRICT="test build-online? ( network-sandbox )"

# Gradle 9 needs a JDK 17+ to run; cap at 21, newer JDKs break
# the build scripts of some gradle-bin versions.
DEPEND="|| ( virtual/jdk:21 virtual/jdk:17 )"
RDEPEND=">=virtual/jre-11"
BDEPEND="
	>=dev-java/gradle-bin-9.6
	dev-java/java-config
"

DOCS=( README.md SECURITY.md )

src_compile() {
	local -x JADX_VERSION="${PV}"
	local -x JAVA_HOME="$(java-config --jdk-home || die)"
	local -x HOME="${T}/home"
	# some JVMs take user.home from the passwd database instead of $HOME:
	# pin it for the gradle client, the kotlin daemon and friends
	local -x JAVA_TOOL_OPTIONS="-Duser.home=${HOME}"
	mkdir -p "${HOME}" || die
	einfo "Using JAVA_HOME: ${JAVA_HOME}"

	edo gradle \
		--no-daemon \
		--no-watch-fs \
		--gradle-user-home="${T}/gradle" \
		--parallel --max-workers="$(get_makeopts_jobs)" \
		:jadx-gui:shadowJar
}

src_install() {
	local jar="jadx-gui/build/libs/jadx-gui-${PV}-all.jar"

	java-pkg_newjar "${jar}" "jadx-${PV}-all.jar"
	java-pkg_dolauncher "jadx" --main "jadx.cli.JadxCLI"
	java-pkg_dolauncher "jadx-gui" --main "jadx.gui.JadxGUI"

	local logo="jadx-gui/src/main/resources/logos/jadx-logo"
	newicon -s 16 "${logo}-16px.png" "${PN}.png"
	newicon -s 32 "${logo}-32px.png" "${PN}.png"
	newicon -s 48 "${logo}-48px.png" "${PN}.png"
	# the logo is 252px, too big for a 256x256 hicolor entry: install it
	# as a scalable icon instead
	newicon "${logo}.png" "${PN}.png"
	domenu "contrib/jadx-gui.desktop"

	einstalldocs
}

pkg_postinst() {
	xdg_icon_cache_update
	xdg_desktop_database_update
}

pkg_postrm() {
	xdg_icon_cache_update
	xdg_desktop_database_update
}

USE Flags

Manage flags for this package: euse -i <flag> -p dev-util/jadx | euse -E <flag> -p dev-util/jadx | euse -D <flag> -p dev-util/jadx

Global/Standard Flags

build-online
❓ Default: Enabled (+)

Inherited Eclasses

edo
xdg

Dependencies

DEPEND

|| ( virtual/jdk:21 virtual/jdk:17 )

RDEPEND

>=virtual/jre-11

BDEPEND

	>=dev-java/gradle-bin-9.6
	dev-java/java-config

Manifest for 1.5.6

Type File Size Source URLs
DIST jadx-1.5.6.tar.gz 2197748 bytes https://github.com/skylot/jadx/archive/refs/tags/v1.5.6.tar.gz