Commit Graph

170 Commits

Author SHA1 Message Date
Skylot
4d87b447a6
chore: remove unused code in ClsSet class (#2020) 2023-09-22 20:31:56 +01:00
Skylot
f81a2c4ebb
chore: update dependencies 2023-08-11 17:36:14 +01:00
Skylot
752c61ae71
fix: disable zip file checks for new JVM versions (#1962) 2023-07-28 20:09:54 +01:00
Skylot
d076c4e73d
build: migrate to kotlin dsl in gradle scripts, update gradle and deps 2023-07-08 20:13:37 +01:00
Skylot
ba0e918fef
chore: update dependencies 2023-07-05 20:20:01 +01:00
nitram84
4467f9118f
fix: update class set to Android 34, add apache http client support for api level 28+ (PR #1927)
* fix(cli): fix jcst converter

* extend jcst format, update class set to Android 34, add optional android libs

* fix(gradle): add apache http client support for api level 28+

* don't require existing core.jcst file for convert cls set, improve performance

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-06-28 20:54:28 +01:00
Skylot
8a67c39279
feat(cli): install and manage plugins from command line 2023-05-23 17:53:48 +01:00
Skylot
ed4c5a3a17
fix: use shadow jar in app bundle to reduce jars count (#1868) 2023-05-18 20:40:39 +01:00
Krzysztof Iwaniuk
63ad7fb128
feat: add option for hexadecimal integer format globally (PR #1869)
* option for hexadecimal integer format globally

* fix i18n strings, update readme

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-05-15 13:58:13 +01:00
Krzysztof Iwaniuk
ccdbb1d62c
feat: parse and use Kotlin metadata for renames (#1861)(PR #1860)
* initial setup for data class and metadata parsing
* bug fix & comments
* better version using plugin system
* added tests
* ignore getters test fix
* logs & imports
* reverted accidental changes
* moved util classes to plugin, spotless apply
* move test and some other minor fixes

---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-05-14 21:34:40 +01:00
Skylot
f53dbbfebf
feat: option to disable inner classes move to parent (#1817) 2023-05-06 20:39:50 +03:00
Skylot
b7634024d6
chore: update gradle and dependencies 2023-04-20 17:22:16 +01:00
Skylot
75fbdd3ac4
chore(build): set required Java version to 11, update dependencies 2023-04-20 17:22:16 +01:00
Skylot
7a309ca367
fix: improve plugins data handling 2023-04-20 17:22:15 +01:00
Skylot
780b1a0d53
fix(gui): resolve ktlint deprecation warnings 2023-04-20 17:22:14 +01:00
Skylot
a89dbc1152
refactor: make input plugin api similar to pass plugins 2023-04-20 19:01:40 +03:00
Skylot
eae9bac938
refactor: move mappings feature to separate plugin module 2023-04-20 19:01:39 +03:00
Julian Burner
cb91c8c41c
feat: mapping-io import support (#1531)(PR #1532)
* Add new CLI args for mapping files and deprecate args regarding jobf files (will be moved to the cache dir in the future)

* Add support for importing method arg mappings

Also change `mapping-file` to `mappings-path`, since folders are supported, too

* Add GUI for importing mappings

* Also show save file dialog when exporting mappings

* Fix crash on startup when `--mappings-path` parameter is set

* Include imported renames when exporting mappings

* Add "close mappings" menu entry

* Don't instantiate MappingTree unless actually needed

* Terminology: `import` → `open`; `export` → `save`

* Save location of open mapping file into project data

* Correctly reset cache when loading new mappings

* Remove unused import

* Save opened mappings' last modified date to reset cache when changed

* Fix if statement

* Correctly handle absence of mappings path in project data

* Show overwrite warning for folders only if not empty

* Prevent crash when imported mappings don't have any namespaces

* Handle wrong mappings namespace count error

* Replace unneeded public with private

* Add option for saving open mappings directly to disk

* Correctly propagate and throw exceptions during decompiler init

* Respect opened mappings' existing namespaces; fix related crash

* Deduplicate code, add `DalvikToJavaBytecodeUtils` class

* Small cleanup; move more functionality to utility class

* Support for importing class, field and method mappings

* Handle mappings in RenameDialog

* Fix checkstyle

* Fix wrong naming order

* Use modified mapping-io JAR from 18070eb7a6

That commit got rid of redundant embedded libraries

* Add null checks

* Check if mapping tree is null before running MappingsVisitor

* Use working mapping-io build

* Handle cache invalidation directly in DiskCodeCache class

* Don't reset UserRenamesMappingsMode if project is just reloaded

* Fix checkstyle

Co-authored-by: Skylot <skylot@gmail.com>
2023-04-20 19:01:38 +03:00
Skylot
278d7fa3f9
feat(script): add options support 2023-04-20 19:01:35 +03:00
Skylot
e5e64365fc
feat: add base scripting support 2023-04-20 19:01:29 +03:00
Skylot
157e702ffd
feat: inline lambdas by instance field (#1800) 2023-03-24 15:34:45 +00:00
Skylot
fbdfd135da
fix(cli): use common enum args parser (#1787) 2023-02-27 19:35:49 +00:00
Jacob Davis-Hansson
dd51783d9e
fix(cli): make enum CLI arguments match documented format (PR #1787)
Currently if you do `jadx --help`, it says the `--deobf-cfg-file-mode` option accepts the value `read-or-save`. 

However, if you give it that option, it instead prints the following error message:

```
java.lang.IllegalArgumentException: 'read-or-save' is unknown, possible values are: read, read-or-save, overwrite, ignore
	at jadx.cli.JadxCLIArgs$DeobfuscationMapFileModeConverter.convert(JadxCLIArgs.java:524)
	at jadx.cli.JadxCLIArgs$DeobfuscationMapFileModeConverter.convert(JadxCLIArgs.java:516)
	at com.beust.jcommander.JCommander.convertValue(JCommander.java:1340)
	at com.beust.jcommander.ParameterDescription.addValue(ParameterDescription.java:249)
	at com.beust.jcommander.JCommander.processFixedArity(JCommander.java:920)
	at com.beust.jcommander.JCommander.processFixedArity(JCommander.java:901)
	at com.beust.jcommander.JCommander.parseValues(JCommander.java:731)
	at com.beust.jcommander.JCommander.parse(JCommander.java:363)
	at com.beust.jcommander.JCommander.parse(JCommander.java:342)
	at jadx.cli.JCommanderWrapper.parse(JCommanderWrapper.java:37)
	at jadx.cli.JadxCLIArgs.processArgs(JadxCLIArgs.java:211)
	at jadx.cli.JadxCLI.execute(JadxCLI.java:35)
	at jadx.cli.JadxCLI.main(JadxCLI.java:20)
```

This commit changes all the enum parsers to do the inverse string of `enumValuesString`, so the documented behavior works.
2023-02-27 19:08:07 +00:00
Skylot
12ef29bebc
chore: update gradle and dependencies 2022-12-09 17:13:01 +00:00
Skylot
e9e45707da
chore: update dependencies 2022-10-20 14:54:31 +01:00
Skylot
603f3057eb
chore: update dependencies 2022-10-03 00:11:01 +03:00
Skylot
258987b0ff
chore: update dependencies 2022-09-05 20:07:01 +01:00
Skylot
d3f6160e62
feat: add option to disable finally block extraction (#1592) 2022-07-30 14:07:43 +01:00
Skylot
ab4b6f9e54
feat: select better resource name (#1581) 2022-07-25 19:53:03 +01:00
Christian Jones
4edb512121
fix(cli): allow decoding resource-only APKs (#1517)(PR #1530)
* Process resource-only inputs
* Fix error, add testing
2022-06-11 15:40:39 +01:00
Skylot
20657e8bb5
doc(cli): improve plugins section formatting 2022-06-06 19:55:58 +01:00
Skylot
39331d9120
fix: remove deprecated --deobf-rewrite-cfg (#1513) 2022-06-06 19:53:47 +01:00
Skylot
5099e02c9b
fix(gui): correct merge for plugin options from command line (#1490) 2022-05-23 19:44:49 +01:00
Skylot
49137c9751
fix(cli): don't ignore critical errors (#1150)
Thrown java.lang.Error was ignored and not logged.
2022-05-19 23:12:19 +01:00
Skylot
f0a8ef81d3
fix: replace fixed memory limit with -XX:MaxRAMPercentage=70.0 (#1437) 2022-04-05 20:08:39 +01:00
Bruno Oberle
9a9ac4308e
fix(cli): use correct converter for "--decompilation-mode" option (#1434)(PR #1435) 2022-04-04 13:47:30 +01:00
Skylot
d8306cb1c0
feat: add 'simple' decompilation mode 2022-03-23 18:16:54 +03:00
Skylot
95c75bed1e
chore: update gradle and dependencies 2022-03-11 11:34:51 +00:00
Skylot
7030daeccd
fix(cli): resolve regression in applying '-v' and '-q' options 2022-02-24 19:52:58 +00:00
Skylot
54683e3198
feat: plugin options, add verify checksum option for dex input (#1385) 2022-02-21 19:44:00 +00:00
Skylot
09335395f5
doc: update option description 2022-02-20 16:51:36 +00:00
Skylot
57e3dd8f15
feat(cli): improve single file mode (#1344)(#1384) 2022-02-20 15:04:59 +00:00
Skylot
a9bbadd602
feat: add option for deobfuscation map file handle mode (#1351) 2022-02-19 21:20:11 +03:00
Yotam
47caa91e85
fix(cli): fix and add debug log messages in initialization phase (PR #1362)
* Fix log level settings in the CLI
* Add log messages in initialization phase
2022-02-02 19:04:19 +00:00
Skylot
86582de521
feat: use kotlin intrinsic methods for variables rename (#1207) 2022-01-19 17:30:04 +00:00
Skylot
6a065c46f4
chore: update dependencies 2022-01-13 12:12:15 +00:00
Skylot
5de46b7e40
chore: update gradle and dependencies 2021-12-24 12:53:30 +00:00
Skylot
addaffcd1d
chore: update dependencies 2021-12-15 11:56:01 +00:00
Skylot
947b621733
feat: add option to use dx/d8 for convert java bytecode (#1299) 2021-12-03 15:05:28 +00:00
Skylot
49b4079cd8
chore: update dependencies 2021-11-20 16:35:23 +03:00