jadx v1.5.5 Release Notes

Release Date: 2026-02-25 // 3 months ago
  • ๐Ÿ›  Major bug fixed

    • โšก๏ธ Code area was updated from wrong thread causing many exception report popups, UI freezes and high CPU usage (#2798)

    ๐Ÿ›  Other Bug Fixes

    • [gui] Resolve possible NPE during project data loading (#2794)
    • [gui] Stop token process on NULL token in JadxTokenMaker (#2798)
    • [gui] Make the Split view checkbox correctly toggle between both modes (PR #2801)
    • [core] Insert generic casts for variable assigned from fields with known types (#2776)

    Full Changelog : v1.5.4...v1.5.5

    Download files:

    ๐Ÿ For system JRE the latest version is always preferred, download at oracle.com


Previous changes from 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)
    • 0๏ธโƒฃ [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 : v1.5.3...v1.5.4

    ๐Ÿ†• New Contributors