Releases: skylot/jadx
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.
1.3.5
Features
- Add 'simple' decompilation mode
- [gui] Add split view for different decompilation modes
Bug Fixes
-
Handle inlined classes while collecting override related methods (#1422)
-
Use correct reference for replaced bridge constructor (#1441)
-
Handle wildcard in invoke type resolver (#1238)
-
Update class set to Android 32
-
Replace fixed memory limit with
-XX:MaxRAMPercentage=70.0
(#1437) -
Various minor improvements (PR #1418)
-
[cli] Use correct converter for "--decompilation-mode" option (#1434)(PR #1435)
-
[debugger] Resolve IO read problems, proper socket closing (PR #1414)
-
[deobf] Fix writing method mappings as fields entries (#1432)(PR #1433)
-
[gui] Rename class while rename constructor (#1441)
-
[gui] Restore open tabs on project load (regression fix)
-
[gui] Don't highlight whitespaces and special symbols (#1429)
-
[gui] Check free memory after GC attempt
-
[gui] Update Traditional Chinese translation (PR #1452)
-
[res] Ignore resource chunk entries that are located after the resource chunk end (#751)(PR #1436)
Full Changelog: v1.3.4...v1.3.5
Download files description:
- jadx-gui-1.3.5-with-jre-win.zip - jadx-gui with bundled JRE
- jadx-gui-1.3.5-no-jre-win.exe - jadx-gui single exe (system JRE must be installed)
- jadx-1.3.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
Artifacts on maven central repository: list. How to use jadx as a library, read on wiki page.