NextStack

jadx v1.5.4

patch PublishedFeb 13, 2026 Sourceskylot/jadx

jadx v1.5.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 skylot/jadx · v1.5.4 · 2026-02-13 · upstream release

Mirrored verbatim for indexing. All rights belong to the upstream project.

Release notes are published by the upstream project and mirrored here for indexing. All rights belong to their authors.