Updated Oct 19, 2026

Utilities

Convert a DEX file into a class JAR

dex2jar-convert is an offline adapter for a selected pxb1988/dex2jar operation.

Agent

overview

What dex2jar-convert does

Supply a raw DEX file to convert its bytecode into JVM classes in a JAR. No APK is installed or executed.

A FILE containing a native JAR with .class entries. The adapter requires class magic bytes and refuses missing output or exception/partial-conversion diagnostics, even when the upstream process exits zero. This does not establish support for every DEX instruction or runtime equivalence.

Native execution has a 120-second timeout and JVM -Xmx256m. The adapter checks a 4 MiB artifact limit after execution; this is not peak process-memory or temporary-disk containment. The supplied file is limited to 20 MiB; symlink input is refused.

Pinned native source v2.4 at b5bda4fb4935ae8b3869b422454ae3b3896c7bc1. Final-image native positive and negative fixtures passed. The private platform fixture-tool-verifier run passed. The exact image and source/notices bundle are publicly downloadable; the exact public Library identity was verified.

source github.com/pxb1988/dex2jar/tree/b5bda4fb4935ae8b3869b422454ae3b3896c7bc1

use cases

Where dex2jar-convert fits

Convert a DEX file into a class JAR

Supply a raw DEX file to convert its bytecode into JVM classes in a JAR. No APK is installed or executed.

Retain the native artifact

A FILE containing a native JAR with .class entries. The adapter requires class magic bytes and refuses missing output or exception/partial-conversion diagnostics, even when the upstream process exits zero. This does not establish support for every DEX instruction or runtime equivalence.

reference

dex2jar-convert inputs and flags

1 inputs
NameTypeFlagDescription
dexFILE--dexRaw DEX bytecode file.

Showing key inputs. dex2jar-convert exposes 1 inputs in total.

example

Run dex2jar-convert

dex2jar-convert · command
python3 /app/run.py --dex ./classes.dex ./output
sample output
public class org.trickest.fixture.Fixture {
  public static int answer();
    Code:
       0: bipush        42
       2: ireturn

  public static java.lang.String endpoint();
    Code:
       0: ldc           #11                 // String https://fixture.invalid/api/v1
       2: areturn
}

guidance

Choosing dex2jar-convert

Choose this job when a downstream class-file inspector needs JVM bytecode. JADX reconstructs Java source; baksmali produces smali instructions. Neither output is interchangeable with a JAR of classes.

faq

dex2jar-convert questions

dex: Raw DEX bytecode file.

A FILE containing a native JAR with .class entries. The adapter requires class magic bytes and refuses missing output or exception/partial-conversion diagnostics, even when the upstream process exits zero. This does not establish support for every DEX instruction or runtime equivalence. The registered contract also exposes a FOLDER output; the primary native artifact is the FILE described here. The downloaded primary FILE was verified as a JAR containing the expected class.

Native execution has a 120-second timeout and JVM -Xmx256m. The adapter checks a 4 MiB artifact limit after execution; this is not peak process-memory or temporary-disk containment. The supplied file is limited to 20 MiB; symlink input is refused. Raw DEX size, SHA1 signature and Adler32 checksum are checked by adapter preflight; this is not full DEX semantic validation.

Choose this job when a downstream class-file inspector needs JVM bytecode. JADX reconstructs Java source; baksmali produces smali instructions. Neither output is interchangeable with a JAR of classes.

Yes. This Library tool uses the tested image and supplied-file contract. Native fixtures and the private platform fixture-tool-verifier run passed; the exact image, adapter source and notices are publicly downloadable through the repository directions below.

The public repository overview provides immutable image and ORAS source/notices download commands, the exact bundle SHA256 and pinned native source directions. The bundle retains the adapter, build recipes, owned fixtures, portable native/verifier harnesses, installed and embedded notices, dependency source/POMs and matching Debian OpenJDK source payloads. First-party adapter licensing is separate from native/component licenses. Use its IMAGE override with the immutable public image to reproduce the native fixture without a GHCR account. Source provenance qualifications are retained; this is not a reproducible-build or exhaustive-SBOM claim. Image, source and license notice downloads.

Run dex2jar-convert yourself

Retained javap inspection of the actual generated JAR from a self-owned DEX fixture. This text is an independent inspection, not the native binary JAR format. Fixture.answer() returns 42. Truncated input is rejected by adapter header/checksum preflight; a checksum-consistent bad-map fixture reaches native code and is rejected.

Facts on this page come from the live Trickest tool library.