Commit Graph

1288 Commits

Author SHA1 Message Date
Skylot 8a67c39279 feat(cli): install and manage plugins from command line 2023-05-23 17:53:48 +01:00
Skylot 67054bda3d fix: add rename reason for method merged with bridge (#1876) 2023-05-20 14:06:31 +01:00
Skylot ae1b1ce99e fix(build): use Kotlin with explicit project dependency 2023-05-17 21:26:55 +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 3474f0da04 fix: split loop exit at loop end (#1866)
Loop exit (like condition) in loop end block can confuse loop restructure.
To resolve this try to split back edge and make loop end a simple path.
2023-05-13 22:10:21 +01:00
Skylot 0fd9a9df29 fix: check for annotations before remove empty default constructor (#1863) 2023-05-11 18:11:02 +01:00
bagipro e29011eb95 fix(res): update Android resources to API 34 (PR #1864)
* update android resources to API 34
* fix format issues

---------

Co-authored-by: bagipro <bugi@bugi>
Co-authored-by: Skylot <skylot@gmail.com>
2023-05-11 17:26:02 +01:00
Skylot 5aaceee978 fix: cache finally extract checks on multiple paths (#1853) 2023-05-06 18:41:29 +01:00
Skylot f53dbbfebf feat: option to disable inner classes move to parent (#1817) 2023-05-06 20:39:50 +03:00
nitram84 d29263ef57 fix(res): fix escaping for string arrays 2023-05-06 20:38:13 +03:00
nitram84 d8c8fb4e18 test(res): add unit tests for ResXmlGen 2023-05-06 20:38:13 +03:00
Skylot 5e8f9b900f fix: remove class filtering on export (#1847) 2023-04-25 17:12:42 +01:00
Skylot 54f83cee1c fix: run code schrink after insn args simplify (#1838) 2023-04-24 22:25:09 +01:00
Skylot 7f3bd8c668 fix: additional checks for primitive deboxing (#1838) 2023-04-24 22:25:09 +01:00
George Hopkins bac2386a1a fix: add parentheses around multiple lambda arguments (PR #1840)
* fix: add parentheses around multiple lambda arguments
* add simple test case
---------

Co-authored-by: Skylot <skylot@gmail.com>
2023-04-24 19:59:59 +01:00
Skylot 9417671606 refactor: extract input-api into library (#1821) 2023-04-20 17:22:16 +01:00
Skylot 2e652b4219 fix(plugins): use loaded mapping tree on export (#1732) 2023-04-20 17:22:16 +01:00
Skylot 7a309ca367 fix: improve plugins data handling 2023-04-20 17:22:15 +01:00
Skylot a992c93198 fix(plugins): improve custom passes merge ordering 2023-04-20 17:22:15 +01:00
Skylot ee3a653c1b fix(gui): show options from all plugins 2023-04-20 17:22:15 +01:00
Skylot e8e7028792 perf: improve usage data apply 2023-04-20 17:22:15 +01:00
Skylot 1891f6fd7e fix: ignore source name if current alias is better (#1795) 2023-04-20 17:22:14 +01:00
Skylot 9f7432134c feat(gui): show loaded mapping file in input nodes 2023-04-20 17:22:14 +01:00
Skylot ea37f3e9f7 fix: don't inline constants into lambdas 2023-04-20 17:22:14 +01:00
Skylot c6ed117df6 fix: improve internal state checks 2023-04-20 17:22:14 +01:00
Skylot d5219e7f0c feat: allow to move class to another package 2023-04-20 17:22:13 +01:00
Skylot acbe94df27 feat(script): add code area popup menu action 2023-04-20 17:22:13 +01:00
Skylot a2f018a00b feat(gui): add run, check and format script actions 2023-04-20 17:22:12 +01:00
Skylot 98cc1b1022 script: add sample deobf by code script (#1706) 2023-04-20 17:22:06 +01:00
Skylot 745f46f81f build: configure spotless for kotlin, apply code style fixes 2023-04-20 19:01:41 +03:00
Skylot 6912ed40b4 feat(gui): save usage data into disk cache 2023-04-20 19:01:41 +03:00
Skylot a89dbc1152 refactor: make input plugin api similar to pass plugins 2023-04-20 19:01:40 +03:00
Skylot 0c4d46ead5 refactor: move plugins-api module into jadx-core 2023-04-20 19:01:39 +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 https://github.com/skylot/jadx/commit/18070eb7a649db0b0daef38d456316d5b4650072

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 cb1f3e9843 refactor: use package nodes in api and ui 2023-04-20 19:01:38 +03:00
Skylot d4927db52b refactor: split and simplify deobfuscator 2023-04-20 19:01:37 +03:00
Skylot bc7300bd01 feat: add package node, allow to rename packages 2023-04-20 19:01:36 +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 fdf170529f fix: use strict patterns for synthetic methods inline (#1829) 2023-04-19 17:52:37 +01:00
Skylot 50283ab543 fix: additional checks to forbid inline of null consts (#1828) 2023-04-19 15:49:06 +01:00
Skylot 3fa3e5acec fix: correct args shift for instance invoke-custom (#1816) 2023-04-16 20:10:57 +01:00
nitram84 1ad6527de5 fix(xml): use parent attibute only for styles (PR #1815) 2023-04-10 18:34:17 +01:00
nitram84 0421ad80c1 fix: filter invalid chars in app name for gradle export (PR #1813) 2023-04-08 18:16:14 +01:00
nitram84 35e0201f06 fix(gradle): fix gradle build with version 7.4.2 - 7.6 2023-04-08 19:49:15 +03:00
nitram84 118eea5e77 fix(res): set empty parent for styles without a parent, remove duplicated code 2023-04-08 19:49:15 +03:00
nitram84 7f317be325 fix(res): resolve declare-styleable atrributes 2023-04-08 19:49:15 +03:00
nitram84 e1aa9f6de4 fix(res): resolve custom attributes 2023-04-08 19:49:15 +03:00