github skylot/jadx v1.5.4
1.5.4

7 hours ago

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: v1.5.3...v1.5.4

New Contributors

Don't miss a new jadx release

NewReleases is sending notifications on new releases.