Releases: skylot/jadx
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 name
algorithm (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
out
search 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-instance
if 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
altMetafactory
method in lambda call site (#1760) - [core] Resolve JavaNode caching issues (#1775)
- [core] Output unknown
invoke-custom
as polymorphic call (#1760) - [core] Process manifest before other resources (#1740)
- [gui] Disable
shell folders
in 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
bytecode
output 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-if
chain (#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
1.4.3
Bug Fixes
- [gui] Check user renames (#1557)
- [gui] Allow to use empty name to reset rename
- [gui] Ignore/limit waiting of canceled search task (#1568)
- [gui] Forbid rename method args in fallback mode (#1558)
- [gui] Set current dir directly in file chooser constructor (#1553)
- [gui] IndexOutOfBoundsException in JumpManager (#1576) (PR #1577)
- [gui] QuarkReport data validation added and other minor improvements (PR #1556)
- [gui] Resolve payload offset for switch insns in debug smali code (#1575)
- [gui] Ignore errors on code area dispose (#1545)
- Check synthetic methods before remove/inline (#1560)
- Correct inline/merge with overriden bridge method (#1580)
- Add more checks before remove or rename enum methods (#1572)
- Handle parent of inlined/moved classes (#1578)
- Update deps and fix proto resource loading (AAB) (#1129)
- Ignore anonymous classes in enclosing node search (#1580)
- Save classes with code generation error into cache (#1568)
- Resolve possible decompilation double execution
- Better dominators algorithms
Full Changelog: v1.4.2...v1.4.3
Download files description:
- jadx-gui-1.4.3-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.4.3-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.4.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.4.2
Yet another mostly bug fix release to resolve regressions from 1.4.1
Features
- [gui] Support export to various deobfuscation mapping file formats (#1491)(PR #1505)
- [gui] Add reload and live reload actions (#1537)
- [gui] Allow to disable jump on double click (#1540)
Bug Fixes
- [cli] Allow decoding resource-only APKs (#1517)(PR #1530)
- [cli] Remove deprecated
--deobf-rewrite-cfg
(#1513) - [gui] Try to prevent jadx node leaks in UI objects
- [gui] Improve restoration of windows saved state (PR #1511)
- [gui] Add volatile and update sync for decompiler field in wrapper (#1518)
- [gui] Resolve popup menu action run (#1514, #1529)
- [gui] Correct set highlighted text in search (#1507)
- [gui] Allow to select file on mapping export
- [gui] Reset disk cache on new jadx version
- [gui] Force jadx new version check by default
- Improve blocks tree compare for finally extract (#1501)
- Support all-catch in multi-catch (#1510)
- Improve class search for super call (#1512)
- Keep types on duplicate cast remove (#1527)
- Check class name collisions (#1526)
- Use wide move for long/double store/load java opcodes
Full Changelog: v1.4.1...v1.4.2
Download files description:
- jadx-gui-1.4.2-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.4.2-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.4.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
Artifacts on maven central repository: list. How to use jadx as a library, read on wiki page.
1.4.1
Bug fix release to resolve regressions from 1.4.0
Bug Fixes
- [gui] Correct handle of selected file in save dialog
- [gui] Improve usage search, refactor java nodes creation (#1489)
- [gui] Resolve cast exception for variable reference (#1489)
- [gui] Save variable name to show in tooltip (#1487)
- [gui] Save full type info in metadata (#1487)
- [gui] Correct merge for plugin options from command line (#1490)
- [gui] Complete Chinese Translation (PR #1492)
- [gui] Correct close and reopen for decompiler and cache
- [res] Ignore version in AndroidManifest.xml (#1502)(PR #1504)
- Save cache dir for reuse on project save/reopen
- Remap class names for store in disk cache (#1503)
- Check if directory exists before delete (#1493)
- Use variable length encoding instead short for offsets (can overflow) (#1489)
- Skip dex files with parsing errors (#1495)
Features
Full Changelog: v1.4.0...v1.4.1
Download files description:
- jadx-gui-1.4.1-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.4.1-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.4.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
Artifacts on maven central repository: list. How to use jadx as a library, read on wiki page.
1.4.0
Features
- [gui] Disk code cache and search rewrite (PR #1483)
- Allow to load custom input (#1457)
- Allow to include/exclude dependencies when saving with class filter (#1466)(PR #1467)
Bug Fixes
- [cli] Don't ignore critical errors (#1150)
- [gui] Resolve NPE on project save (#1463)(PR #1464)
- [gui] Confirm directory loading on file open (#1462)
- [gui] Fix IndexOutOfBoundsException when switching between tabs via mouse wheel (#1456)(PR #1469)
- [gui] Editor theme loading and error/fallback handling improved (#1476)(PR #1478)
- [gui] Ask for project file path on exit (#1474)
- [gui] Escape class, method and field names in Frida code snippet (PR #1480)
- [gui] Add missing
Use debug info
option - [gui] Use alias for types in tooltips (#1487)
- Better code styling for
if-else
blocks (#1455) - Workaround to prevent incorrect order after
move
inline (#1472) - Use alias for variable names (#1487)
Breaking changes in Jadx API
ICodeInfo
: lines and code annotations moved to new interfaceICodeMetadata
with helpful search methods- Changes for all code annotations methods to use
ICodeAnnotation
instead plainObject
.
Full Changelog: v1.3.5...v1.4.0
Download files description:
- jadx-gui-1.4.0-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.4.0-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.4.0.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
Artifacts on maven central repository: list. How to use jadx as a library, read on wiki page.