Navigation Menu

Skip to content

Releases: skylot/jadx

1.5.0

20 Apr 18:47
f2ea641
Compare
Choose a tag to compare

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:

For system JRE the latest version is always preferred, Java 11+ is required, download at oracle.com

1.4.7

20 Apr 15:45
fdf1705
Compare
Choose a tag to compare

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:

For system JRE the latest version is always preferred, download at oracle.com

1.4.6

20 Feb 11:33
158fc2f
Compare
Choose a tag to compare

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

Full Changelog: v1.4.5...v1.4.6

Download files:

For system JRE the latest version is always preferred, download at oracle.com

1.4.5

20 Oct 15:53
6844a46
Compare
Choose a tag to compare

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

20 Aug 16:20
63a5713
Compare
Choose a tag to compare

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

20 Jul 15:50
87e0e5b
Compare
Choose a tag to compare

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

20 Jun 14:38
18070eb
Compare
Choose a tag to compare

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

31 May 14:47
fcd58ae
Compare
Choose a tag to compare

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

  • [gui] Add parameters logging in Frida code snippet (#1497)(PR #1498)

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

21 May 17:06
21e94d8
Compare
Choose a tag to compare

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 interface ICodeMetadata with helpful search methods
  • Changes for all code annotations methods to use ICodeAnnotation instead plain Object.

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

20 Apr 12:07
1ec127c
Compare
Choose a tag to compare

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.