Releases: skylot/jadx
1.5.5
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
NULLtoken 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:
- jadx-gui-1.5.5-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.5.5-win.zip - jadx-gui Windows executable (system JRE must be installed)
- jadx-1.5.5.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, download at oracle.com
1.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
.zipas 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
.zipas 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
OutOfMemoryErrorto 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_x1stack 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
- @huqiuser made their first contribution in #2646
- @duzhaokun123 made their first contribution in #2647
- @wech71 made their first contribution in #2654
- @histausse made their first contribution in #2702
- @RedArms made their first contribution in #2718
- @google-mirror made their first contribution in #2734
1.5.3
Features
- [aab] Enhance AAB parsing (PR #2557)
- [gui] New search options to search in text or binary resources (PR #2526)
- [gui] Allow view and edit input smali files
- [export] Use
compileSdkVersionfrom manifest, update AGP to 8.10.1, other improvements (PR #2528)
Bug Fixes
- Correct loading for plain text XML files (PR #2537)
- Correct hex format for negative numbers (#2531)
- Use 'dev.dirs' JNI implementation only on x86-64 (#2578)
- Use proper newlines when generating CFG (PR #2592)
- [cli] Improve memory usage in jadx-cli (#2524)
- [cli] Add missing '-XX:+IgnoreUnrecognizedVMOptions' JVM flag (#2554)
- [gui] Workaround for wrap layout repaint issue in search dialog (PR #2521)
- [gui] Remove duplicate class of Frida snippet (PR #2525)
- [gui] Use
varinsteadletfor class variable in Frida script (PR #2527) - [gui] Prevent IndexOutOfBoundsException in MethodSearchProvider (PR #2542)
- [gui] Disable debugger action if project not loaded (#2547)
- [gui] Minor UI fixes (PR #2549)
- [gui] Resolve NPE on code area close
- [gui] Fix NullPointerException in copyAllSearchResults (#2580) (PR #2581)
- [gui] Various tabs related fixes (PR #2595)
- [zip] Allow to load zip with duplicate names in entries
- [gui] Improve menu icon, such as 'Select in Tree' and 'Go to AndroidManifest.xml' buttons (PR #2543)
- [export] Disable targetSDKVersion checks in AndroidStudio (PR #2533)
- [export] Add missing
ExpiringTargetSdkVersionin #2533 (PR #2538)
Full Changelog: v1.5.2...v1.5.3
New Contributors
- @TheDauntless made their first contribution in #2527
- @akexorcist made their first contribution in #2528
- @MartLintz made their first contribution in #2538
- @TinyServal made their first contribution in #2549
- @LoyieKing made their first contribution in #2557
- @beaverxsheet made their first contribution in #2592
Download files:
- jadx-gui-1.5.3-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.5.3-win.zip - jadx-gui Windows executable (system JRE must be installed)
- jadx-1.5.3.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, download at oracle.com
1.5.2
Main features
Core:
- Custom zip reader implementation to fight tampering
- Add gradle export templates, support android app/lib and simple java
- Initial support for DEX v41 (#2128)
GUI:
- Add export dialog with options (PR #2378)
- A tree structure usage search (PR #2498)
- Add dynamic code editor theme from UI theme (PR #2471)
- Add Preview Tab Feature (PR #2474)
- New HexViewer (PR #2469)
Plugins:
- Add APKM support (PR #2379)
- Parse and use Kotlin SourceDebugExtension with SMAP for rename classes and packages (PR #2389)
API:
- Add 'unload' method to JadxPlugin (#2463)
- Method to add popup menu entry for tree nodes (#2412)
- Add method to get jadx-gui icons by name
- Add method to open usage dialog
All changes
Click to expand
Features
- Replace constants in annotations of method arguments (PR #2358)
- Add APKM support (PR #2379)
- Parse and use Kotlin SourceDebugExtension with SMAP for rename classes and packages (PR #2389)
- Custom zip reader implementation to fight tampering
- Add gradle export templates, support android app/lib and simple java
- Generate missing throws declarations, validate exceptions (#2441) (PR #2475)
- Move variable name apply from codegen to new pass (#2422)
- Use parallel jobs to delete files in directory (#2436)
- [api] Add 'unload' method to JadxPlugin (#2463)
- [dex-input] Initial support for DEX v41 (#2128)
- [gradle] Handle non-final res ids for AGP >8.0.0 (PR #2362)
- [gui] Add webp image preview support (PR #2372)
- [gui] Add script rename feature (PR #2374)
- [gui] Added confirm dialog when removing script (PR #2375)
- [gui] Add export dialog with options (PR #2378)
- [gui] Add button to install desktop file directly from jadx-gui (PR #2404)
- [gui] Tabs UI improvements (PR #2419)
- [gui] Support APK Signature Scheme v3.1 signers (PR #2452)
- [gui] Add dynamic code editor theme from UI theme (PR #2471)
- [gui] Allow to set code area theme with custom code (#2471)
- [gui] Add Preview Tab Feature (PR #2474)
- [gui] Add "Copy All" button to Search dialog (PR #2480)
- [gui] New HexViewer (PR #2469)
- [gui] Added support view and open more resource files (PR #2483)
- [gui] Added feature to close all left tabs (#1390) (PR #2484)
- [gui] Added dialog for select methods for generate frida class snippet (PR #2487)
- [gui] A tree structure usage search (PR #2498)
- [gui] Notify user if code has non-displayable character with current font (PR #2490)
- [gui] Add option to disable the tooltip that pops up on hover (PR #2505)
- [gui] Use list component for recent projects on start page (PR #2513)
- [plugins] Add method to get jadx-gui icons by name
- [plugins] Add method to open usage dialog
- [plugins] New API method to add popup menu entry for tree nodes (#2412)
- [res] Use file headers to detect extension for obfuscated resources (PR #2495)
- [tools] Improve tool for sync and update I18N lines (PR #2494)
- [zip] Provide direct InputStream of ZIP entries (PR #2509)
Bug Fixes
- Disable usage of JDK Unsafe class in GSON (#2341)
- Additional checks for default switch case exit (#2351)
- Check respectBytecodeAccModifiers in MarkMethodsForInline (PR #2361)
- Inner class parent is wrong when name formatted as Class$method$xxx (PR #2364)
- Inline anonymous class wrongly handles field as Classname.this (PR #2367)
- Remove wrapped flag for inlined instruction (#2363)
- Better package-info support (PR #2369)
- Force type var short form as a key in generic resolve mapping (#2370)
- Resolve incorrect var ref validation and remove (#2381)
- Allow to inline methods with ternary instructions (#2380)
- Show all methods for 'simple' and 'fallback' decompilation modes
- IfRegionMaker find the wrong outBlock (PR #2385)
- Improve rename using source class name (#2397)
- Use fork of directories library with JNI implemetation for Windows (#2401)
- Do not replace constant fields which still used in code (#2414)
- Unload attributes map if empty (#2433)
- Do not reopen zip file on every resource decode
- Improve BlockSet class, use it in more places
- Deduplicate blocks to help 'complex if' restructure (#2445)
- Scan annotations in usage collector visitor (#2435)
- Ignore external and invalid class names in signature (#2459)(PR #2460)
- Collect usage info in generic types
- Check and report invalid magic in '.dex' files (#2473)
- Process synthetic resource inner classes using common method (#2482)
- For static synchronized methods remove top
synchronizedblock (#2493) - Wrap
MethodThrowsVisitorinsns processing in try/catch (#2441) - Lazily create dirs in default file getter implementation
- Use wrap layout for options in search dialog, add size limit option
- Use resource table file name as prefix in sub files (#2373)
- Add arsc file name prefix only in jadx-gui (#2373)
- [cli] Concat new lines in plugin description
- [gui] Resolve ignored mouse actions (#2360)
- [gui] Text on popup action change if need update comment & fixes default size on comment diallog (PR #2376)
- [gui] Improve detection of multi line method comments for update
- [gui] Add missing sync in clean task at search dialog close (#2363)
- [gui] Update Messages_zh_CN.properties (PR #2387)
- [gui] Improve expand tree (speed up and duplicate entries removal) (#2399)
- [gui] Workaround to force class decompilation in loading task (#2400)
- [gui] Improve JNode caching (#2400)
- [gui] New implementation for tree state save/load (#2399)
- [gui] Set minimum size for comment dialog (#2405)
- [gui] Skip window pos saving if not changed
- [gui] Don't ask to save blank project
- [gui] Save current caret position and add it to tab code jump event (#2409)
- [gui] Correct class init method actions and highlight (#2412)
- [gui] Minor action names and icons adjustments (#2419)
- [gui] Allow file and directory have same name in tree (#2420)
- [gui] Update Messages_de_DE.properties (PR #2410)
- [gui] Improve accessibility of preferences dialog (#2445)
- [gui] Apply log level as early as possible
- [gui] Update zh_TW translation (PR #2448)
- [gui] Flatten packages view: non-leaf packages with classes were not visible in the sources tree (PR #2450)
- [gui] Xposed snippet argument types corrected (PR #2454) (#2458)
- [gui] Properly handle excluded classes in code search (#2432)
- [gui] Update Messages_zh_CN.properties (PR #2470)
- [gui] Add missing annotations color for dynamic theme (#2471)
- [gui] Improved preview tab behaviors (PR #2477)
- [gui] Improve apk signature loading speed (PR #2481)
- [gui] Restore tree state after renaming (PR #2486)
- [gui] Update resource.arsc nodes after opened tab with resource ids (PR #2489)
- [gui] Using actual tree in usage tree dialog (PR #2503)
- [gui] Fix rename package behaviors (PR #2500)
- [gui] Improve colors in usage tree, some UI fixes (PR #2506)
- [gui] Minor improved search dialog & small refactor for search fields (PR #2510)
- [gui] Validate hex address in
GotoAddressDialog(PR #2512) - [gui] Validate extensions list in file dialog (PR #2515)
- [gui] Lazy load hex viewer content
- [gui] Redirect plugins menu action to show plugins settings page
- [gui] Prevent UI thread freeze on plugin install/uninstall
- [plugins] Use release from asset if differ from release name with GitHub resolver
- [res] Allow jumping backwards to an already processed position (PR #2344)
- [res] Handle null values in android manifest parsing (#2392)
- [res] Ignore reserved value in type chunk (PR #2403)
- [res] Chunk parsing was aborted too early for unordered entries (PR #2444)
- [res] Improve resource table and config decoding (#2420)
- [res] Fix decode xml attributes value (PR #2492)
- [smali-input] Improve error report for smali assemble (#2411)
- [xapk] New implementation to reduce zip unpack and fix NPE (#2501)
Full Changelog: v1.5.1...v1.5.2
New Contributors
- @ewt45 made their first contribution in #2361
- @Bnyro made their first contribution in #2388
- @Hidoni made their first contribution in #2404
- @yyyair made their first contribution in #2419
- @Sencaid made their first contribution in #2410
- @joshryan made their first contribution in #2452
- @nerodesu017 made their first contribution in #2460
- @17307 made their first contribution in #2480
- @MewtR made their first contribution in #2505
Download files:
- jadx-gui-1.5.2-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.5.2-win.zip - jadx-gui Windows executable (system JRE must be installed)
- jadx-1.5.2.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, download at oracle.com
1.5.1
Main features
Core:
- Support restore of switch over string
- Adding automatic patching for semi-corrupted APKs (PR #2298)
- Resource decoding support new fields
GUI:
- Pin tabs (PR #2230)
- Quick Tabs (PR #2241)
- Limit search to a package (PR #2284)
- Add button to go to Application class (#2208)(PR #2213)
- Export resource/class/package (PR #2228)
- Smali code folding (PR #2233)
All changes
Click to expand
Features
-
Move AAB support to separate plugin (PR #2165)
-
Allow to change config and cache dirs with env vars (#2159)
-
Support inner class contruction with outer instance (#2253)
-
Add the option to always use source file name as class name alias (PR #2287)
-
Support restore of switch over string (basic case)(#2288)
-
Adding automatic patching for semi-corrupted APKs (PR #2298)
-
Improve
better namealgorithm (PR #2299) -
Allow to disable installed plugins (#2277)
-
Give ability to plugins to edit blocks before locking (PR #2336)
-
Add method to update all blocks related info in method (#2335)
-
[api] Add JadxArgs property to adjust xml security checks (#2291)
-
[api] Allow to get method code (#2305)
-
[cli] Add option to disable plugins (#2277)
-
[gui] Allow to check for unstable releases (PR #2200)
-
[gui] Add button to go to Application class (#2208)(PR #2213)
-
[gui] Export resource/class/package (PR #2228)
-
[gui] Pin tabs (PR #2230)
-
[gui] Smali code folding (PR #2233)
-
[gui] Quick Tabs Overhaul (PR #2241)
-
[gui] Limit search to a package (PR #2284)
-
[gui] Add button to go to Android Manifest (PR #2296)
-
[gui] Create Frida hooking snippet for all methods in the class (PR #2328)
-
[java-input] Support StackMapTable to get stack info for unvisited jumps (#2271)
-
[plugins] Get a main window reference as JFrame
-
[plugins] Get config and cache dirs for plugins
-
[plugins] Allow to set minimum required jadx version in plugin info (#2314)
-
[res] Improve error message for unsupported ResTable flags (PR #2266)
-
[res] Support 16-bit entry offsets (PR #2269)
-
[res] Support compact resource entries (#2268)
-
[res] Support grammar inflection flag in res config (#2270)
-
[res] Improve resource names (PR #2316)
Bug Fixes
-
Config dir was used instead cache dir
-
Improve exception handlers checks (#2086)
-
Make detailed var info deterministic (PR #2231)
-
Improve checking if methods are inline for FixAccessModifiers (PR #2235)
-
Don't rerun SSA transform in ConstructorVisitor (#2236)
-
Workaround to make method inline deterministic (#1089)
-
Improve inlining synthetic accessors (PR #2243)
-
Use correct approach to get prev block on path (#2239)
-
Handle quick return on branched constructor (#2240)
-
Improve switch
outsearch in loop (#2246) -
Improve checking of access modifiers for classes (PR #2251)
-
Improve checking of access modifiers for methods (PR #2252)
-
Improve try/catch temp edges injection (#2247)
-
Improve checking of access modifiers (PR #2255)
-
Improve 'continue' insertion for switch in loop (#2249)
-
Check if debug info offset is invalid (#1653)
-
Additional checks for class signature (#2272)
-
Do not add custom passes for fallback and simple modes (#2276)
-
Protect class deps from loading in different decompilation mode
-
Improve condition branch checks in loops (#2274)
-
Use type from
new-instanceif differ from constructor call (#2285) -
Ignore debug lines hints if numbers was adjusted for method
-
Don't add same 'loaded from:' comment for inner classes
-
Improve switch out block search if all method exits are inside (#2264)
-
Improve checks for restore new filled array (#2289)
-
Use temp dir env var only in apps
-
Update reserved keywords (PR #2301)
-
Replace patched zip early in input files (#2302)
-
Add missing null check in codegen for classes generated by jadx
-
Clear temp root dir instead delete (#2312)
-
Fix default branch position in switch-over-string (PR #2331)
-
Prevent endless loop in pre header insertion mod (#2300)
-
Unwrap consts in switch-over-string (PR #2332)
-
Improve negation condition checks for switch over string (#2333)
-
Support "fall-through to default" case in switch-over-string (PR #2338)
-
Insert new filled array insn before first usage (#2340)
-
Fix primitive-to-primitive conversions (PR #2326)
-
[deobf] Update TLDs (PR#2320)
-
[gui] Show correct content of binary resources in hex view (#2160) (PR #2166)
-
[gui] Support filtering files with multiple extensions in file dialog (PR #2185)
-
[gui] Update russian translation (PR #2209)
-
[gui] Fix Xposed args code generation (PR #2212)
-
[gui] Horizontal scrolling in Linux (PR #2229)
-
[gui] Show folding actions in code popup menu (#2234)
-
[gui] Add VM flags to fix UI ghosting (#2225)
-
[gui] Trim trailing spaces in input files (#2244)
-
[gui] Trim also leading spaces in paths from file dialog (#2244)
-
[gui] Use correct translation in rename dialog (#2254)
-
[gui] Quick Tabs Optimization (PR #2242)
-
[gui] Merge full class name tokens for constructors (#2261)
-
[gui] Prevent UI stuck on class load (#2259)
-
[gui] Minor fixes for code jumps
-
[gui] Resolve old objects reference leak in TabsController
-
[gui] Prevent old refs leak in shortcuts controller
-
[gui] Send select tab event before code jump (#2292)
-
[gui] Update check fixed to match current artifact naming
-
[gui] Improve plugins preferences group
-
[gui] In settings row reduce space between description and value
-
[gui] Use another implementation for font dialog (#2310)
-
[gui] Load plugins settings in temp context without UI (#2206)
-
[gui] Use correct section filter in plugins list
-
[gui] Correct tabs filter in "Close others" tab action (#2330)
-
[launch4j] Do not overwrite Java heap configuration from applicationDefaultJvmArgs (PR #2218)
-
[mappings] Try to prevent mapping file reset on export exception, refactor and fix code to avoid NPE (#2220)(#2226)
-
[quark] Fix automated installation and check exit code of executed external commands (#2119)(PR #2216)
-
[res] Prevent duplication of ARSC entries (#2263)
-
[res] Don't rename resource entries when useRawResName = true (PR #2306)
-
[res] Update Android attrs to API 35 (PR #2318)
-
[smali-input] Compile one smali file at a time to avoid 64k limit (#2158)
-
[xml] Allow for non-standard attributes sizes and avoid index exceptions when decoding some strings (PR #2210)
-
[xml] AXML/Manifest parsing improvements (PR #2211)
New Contributors
- @zt64 made their first contribution in #2161
- @qfalconer made their first contribution in #2210
- @pubiqq made their first contribution in #2231
- @andyjsmith made their first contribution in #2284
- @xiaojye made their first contribution in #2296
- @RuffaloLavoisier made their first contribution in #2328
Download files:
- jadx-gui-1.5.1-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.5.1-win.zip - jadx-gui Windows executable (system JRE must be installed)
- jadx-1.5.1.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, download at oracle.com
1.5.0
Main features
- Added support for:
- Scripting, uses Kotlin, check short guide
- External plugins, guide
Both features in preview state, API is stable but limited (especially in UI customizations)
- Jadx GUI:
- Improved code cache, allow use common directory, view/delete exist caches in preferences
- jadx-gui configuration moved into plain json files in system config directory
- Allow to set custom shortcuts
- Tabs drag and drop reorder support
- Hex-viewer for binary asset files
- Add 'go to main activity' action
- Other:
- Java 11+ is required now
- Parse and use Kotlin metadata for renames
- Add support for XApk files
- Allow to move class to another package
- Support jsr/ret opcodes (java-input)
- A lot of bug fixes ... and regressions π€£
Full Changelog: v1.4.7...v1.5.0
Download files:
- jadx-gui-1.5.0-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.5.0-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.5.0.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, Java 11+ is required, download at oracle.com
1.4.7
Features
- [core] Inline lambdas by instance field (#1800)
- [plugins] Allow to load classes using input stream or byte array in jadx-input plugin (#1457)
Bug Fixes
- [core] Restore missing type parameter declarations (#1800)
- [core] Filter invalid chars in app name for gradle export (PR #1813)
- [core] Correct args shift for instance invoke-custom (#1816)
- [core] Additional checks to forbid inline of null consts (#1828)
- [core] Use strict patterns for synthetic methods inline (#1829)
- [res] Resolve manifest decoding error
Expected strings start(#1797)(PR #1798) - [res] Handle RES_TABLE_TYPE_OVERLAY (#1748) (PR #1804)
- [res] Parsing of sparse RES_TABLE_TYPE_TYPE and RES_TABLE_TYPE_STAGED_ALIAS chunks (#1806 #1803)(PR #1807)
- [res] Resolve int hex attributes
- [res] Resolve custom attributes
- [res] Resolve declare-styleable atrributes
- [res] Set empty parent for styles without a parent, remove duplicated code
- [xml] Use parent attribute only for styles (PR #1815)
- [gui] Search constant fields usage in all classes (#1801)
- [gui] Redirect jump from search for inlined classes
- [gui] Show skipped resources count during search (#1808)
- [gui] Update Messages_zh_CN.properties (PR #1811)
- [debugger] Process UI updates in correct thread (#1796)
- [cli] Make enum CLI arguments match documented format (PR #1787)
Full Changelog: v1.4.6...v1.4.7
Download files:
- jadx-gui-1.4.7-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.4.7-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.4.7.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, download at oracle.com
1.4.6
Features
- [core] Support polymorphic invoke (#384)(#1777)
- [gui] Add alternative file open dialog (#1709)
- [gui] Add native libs info to summary (#1717)
- [gui] Add Russian Translation (PR #1744)
- [gui] Added keyboard shortcut ctrl+w to close tab (#1765)(PR #1766)
Bug Fixes
- [core] Check full signature for search method override (#1743)
- [core] Escape special characters in AAB resources (PR #1747)
- [core] Allow
altMetafactorymethod in lambda call site (#1760) - [core] Resolve JavaNode caching issues (#1775)
- [core] Output unknown
invoke-customas polymorphic call (#1760) - [core] Process manifest before other resources (#1740)
- [gui] Disable
shell foldersin file open dialog (#1709) - [gui] Correct html disabling in search results
- [gui] Try to handle exception in
RSTA.getPreferredSize()(#1712) - [gui] Show all code sources in summary (remove dex filter) (#1716)
- [gui] Change callMethodName of constructors in Frida action (#1714)(PR #1715)
- [gui] Add template for constructor and void methods to Frida snippet (#1714)
- [gui] Hi-dpi main window initial size (#1728)(PR #1729)
- [gui] Correct html render in comments search results
- [gui] Resolve exception in smali method writer (#1739)(PR #1745)
- [gui] Improve smali disasm method param write (#1739)
- [gui] Make
bytecodeoutput closer to smali (#1739) - [gui] Quick fix for duplicate/overlapping logcat windows (#1752)(PR #1761)
- [gui] Allow html in JVariable to render renaming of variables correctly (#1769)(PR #1770)
- [gui] Print the renamed function name in a frida snippet log (#1772)(PR #1773)
- [gui] Split tabs loading to prevent ui dead lock
New Contributors
- @daMatz made their first contribution in #1715
- @SnowVolf made their first contribution in #1744
- @zach-snell made their first contribution in #1761
- @Ran-Naor made their first contribution in #1766
Full Changelog: v1.4.5...v1.4.6
Download files:
- jadx-gui-1.4.6-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.4.6-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.4.6.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, download at oracle.com
1.4.5
Features
- [gui] Option for search results count per page (#1652)
- [debugger] Add logcat output (#1411)(PR #1666)
Bug Fixes
- Don't rename bridged overridden methods (#1672)
- Don't mark constructor for inline if anonymous class inline is disabled (#1680)
- Handle possible concurrent exception in method codegen (#1685)
- Correct fix for all use places of incompatible primitives (#1688)
- Improve logging messages for zip security errors (#750)(PR #1698)
- Improve ternary inline, resolve more enum cases (#1686)
- Restore enum class with custom code in static init (#1699)
- Handle empty block at end of
else-ifchain (#1674) - [res] Implemented parsing RES_TABLE_TYPE_LIBRARY chunks (#1663)(PR #1664)
- [debugger] Migrate to fixed jdwp library fork (#1471)
- [gui] Multi-threading issue in DebugController fixed (#1701) (PR #1702)
- [gui] Disable HTML rendering in labels if not needed
- [gui] Update Korean translation (PR #1650)
- [gui] Update pt-BR translation (PR #1655)
- [gui] Update zh-TW translation (PR #1694)
- [gui] Update zh_CN translation (PR #1700)
Full Changelog: v1.4.4...v1.4.5
Download files description:
- jadx-gui-1.4.5-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.4.5-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.4.5.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, download at oracle.com
1.4.4
Features
- [gui] Add manual search, stop and sort actions to search dialog (#1600)
- [gui] Save project search history
- [gui] Show start page on jadx open
- [gui] Add Brazilian Portuguese translation (PR #1596)
- Select better resource name (#1581)
- Add option to disable finally block extraction (#1592)
Bug Fixes
- Resolve inherited method to use correct alias (#1582)
- Check variables before merge in finally block (#1592)
- Checks for field init reorder (#1599)
- Handle empty endless loop (#1611)
- Improve top block search for try/catch (#1633)
- UnsupportedOperationException on adding a field (#1645)(PR #1646)
- Don't inline anonymous in self inner class (#1645)
- [gui] Improve search dialog performance
- [gui] Improve resources search (#1648)
- [gui] Improve log viewer dialog (#1311)(PR #1649)
- [gui] Add constructors usage into class usage (#1591)
- [gui] Sort resources by deobfuscated name (#1595)(PR #1598)
- [gui] Correct Frida snippet for constructor (PR #1605)
- [gui] Fix broken FileDialog by using legacy sort (#1628)(PR #1630)
- [gui] Handle possible classes overlap in disk cache (#1633)
- [gui] Disable actions if files not loaded (#1644)
- [debugger] Resolve NPE in adb device viewer (#1585) (PR #1586)
- [res] XML "null" decoding (#1583)(PR #1594)
Full Changelog: v1.4.3...v1.4.4
Download files description:
- jadx-gui-1.4.4-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.4.4-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.4.4.zip - cross-platform cli and gui bundle (system JRE must be installed)
For system JRE the latest version is always preferred, download at oracle.com