Download Latest Version 1.5.5 source code.tar.gz (2.1 MB)
Email in envelope

Get an email when there's a new version of JADX

Home / v1.5.4
Name Modified Size InfoDownloads / Week
Parent folder
jadx-1.5.4.zip 2026-02-13 58.4 MB
jadx-gui-1.5.4-win.zip 2026-02-13 58.4 MB
jadx-gui-1.5.4-with-jre-win.zip 2026-02-13 91.9 MB
1.5.4 source code.tar.gz 2026-02-13 2.1 MB
1.5.4 source code.zip 2026-02-13 3.4 MB
README.md 2026-02-13 6.1 kB
Totals: 6 Items   214.2 MB 4

Main features

CLI:

  • Implement config file load and save (#1731)

GUI:

  • Change fonts size with UI zoom, use FlatLaf fonts bundle
  • Use FontUtils.getCompositeFont() that supports CJK (PR [#2751])

Plugins:

  • Scripting plugin now external and not included in release bundle. Check jadx-script-kotlin for installation details.
  • Support '.apks' files (PR [#2647])
  • Allow to use .zip as plugin artifact (with jars inside)
  • Report plugin exceptions to plugin github project

All changes

Click to expand ### Features - [core] Allow to change limit for type inference updates (PR [#2629]) - [core] Support '.apks' files (PR [#2647]) - [core] Select better class from duplicates (#2701)(PR [#2702]) - [cli] Implement config file load and save (#1731) - [gui] Add option for UI zoom factor (#2720) - [gui] Change fonts size with UI zoom, use FlatLaf fonts bundle - [gui] Report plugin exceptions to plugin github project - [plugins] Allow to use `.zip` as plugin artifact (with jars inside) ### Bug Fixes - [core] Minor fixes for type update limit option (#2629) - [core] Avoid false positive throws (PR [#2636])(#2475) - [core] Resolve race condition in task executor - [core] Add missing field code annotation for enum fields in switch-case - [core] Resolve rename of inner class using full name (#1997) - [core] Catch all exceptions in type update (#2668) - [core] More file extensions added for file type detection (PR [#2670]) - [core] Enhancements for abnormal situations (PR [#2679]) - [core] Improve decoding errors handling (#2676) - [core] Handle `OutOfMemoryError` to correctly halt processing (#2676) - [core] Detect more for-each loops (also prevent issues with missing generics types) (PR [#2689]) - [core] Keep generics while applying debug info (#2687) - [core] Respect arg offset for type var mapping on invoke (PR [#2698]) - [core] Extract common switch break, remove unreachable (#2697) - [core] Improve common 'break' extract checks (#2697) - [core] Correctly handle variable in ternary transform - [core] Support 'break' extract for nested 'if' (#2697) - [core] Refactor and improve class duplicates removal (#2701) - [core] Resolve edge cases for select best classes from duplicates (#2701) - [core] Prevent endless loop in region maker on dead code with loops (#2715) - [core] Add missing level info for jadx code comments (#2737) - [core] Keep wide upcast for arith instructions (#2730) - [core] Improve codegen methods for custom decompilation mode - [core] Speed up file path security checks (PR [#2745]) - [core] Terminate type inference on first stack overflow (#2744) - [core] Add more checks to better find handler's end (PR [#2749]) - [core] Avoid more false positive throws (PR [#2752]) - [core] Improve switch over string restore (#2359) - [aab-input] Correct check for '.aab' file (PR [#2646]) - [cli] Distinguish JadxCLI error code (PR [#2734]) - [dex-input] Use length in header for checksum, fix error in Dex v41 (PR [#2711]) - [gui] Handle syntax parsing errors during search (#2669) - [gui] Use simple token maker as default to avoid parsing error (#2669) - [gui] Update Chinese localization for various menu items (PR [#2673]) - [gui] Split loading and UI update for code area (#2682) - [gui] Rework background executor to reduce delay for short tasks - [gui] Prevent unlimited recursion in text search (#2685) (PR [#2694]) - [gui] Use correct threads for code from close and reload actions (#2684) - [gui] In comment dialog insert new line at current caret position (#2706) - [gui] Resolve exception in search dialog on project reload (#2714) - [gui] Resolve NPE with smali breakpoint (#2717) (PR [#2718]) - [gui] Do not enforce new nodes method for backward compatibility - [gui] Don't init already loaded plugins while collecting options (#2727) - [gui] Use FontUtils.getCompositeFont() that supports CJK (PR [#2751]) - [gui] Load class code before resolving jump position to get corrent value - [gui] Fix illegal ':' character in path when exporting resources.arsc/res - [gui] Use resource short name when exporting a folder via context menu - [gui] Use new resource class for files in arsc (#2771) - [gui] Limit tabs title length, fix tooltips (#2771) - [gui] Go to main activity and application class when class name was renamed by deobfuscator (PR [#2779]) - [java-input] Support Java modified UTF-8 strings (PR [#2654]) - [java-input] Fix `dup2_x1` stack to regs conversion for wide types (#2755) - [kotlin-metadata] Upgrade to kotlin 2.2 metadata library (PR [#2655]) - [plugins] Improve errors handling and reporting (#2597) - [plugins] Reduce plugins-list update checks - [plugins] Use class with correct fields for plugins list entry - [res] As workaround use INVALID_STRING_PLACEHOLDER when string offset is is negative (#2729)(PR [#2739]) - [res] Prevent problems arising by parsing duplicate resource entries from resources.arsc (#2775)(PR [#2777]) - [res] Back to the old correct resource ID calculation (PR [#2788]) - [smali-input] Use synced list for threaded processing, improve inner classes handling - [xapk] Use stream copy to prevent OOM on large files (#2619) (PR [#2719]) - [zip] Check uncompressed size exceeds the maximum value of an integer (PR [#2773])

Full Changelog: https://github.com/skylot/jadx/compare/v1.5.3...v1.5.4

New Contributors

Source: README.md, updated 2026-02-13