Commit Graph

94 Commits

Author SHA1 Message Date
Nico Mexis f681c8963d fix: use maven-publish for JitPack and other fixes (PR #1242)
* Update dependencies
* Fix spaces in file paths
* Update Gradle for LGTM
* Update spotless
* Fix Jitpack

Co-authored-by: Skylot <skylot@gmail.com>
2021-08-27 19:05:52 +03:00
Skylot dd29d37154 feat(gui): use FlatLaf for themes support 2021-08-02 18:32:35 +03:00
Skylot 21da3c8602 fix: reword rename flags in cli and gui (#1178) 2021-05-25 10:10:16 +01:00
Skylot 8785c33d06 feat: add option to disable methods inline (#1170) 2021-05-18 10:39:30 +01:00
Skylot c95d64909a feat(cli): add decompilation progress 2021-03-29 14:56:40 +03:00
bagipro 9ef99a2b92 feat: implement Android App Bundle support (#1129) (PR #1131)
* Implement proto parse
* fix code formatting
* fix tests with empty input
* revert not needed code style changes
* Implement parse of resources.pb for AAB

Co-authored-by: bagipro <bugi@MacBook-Pro-2.local>
Co-authored-by: Skylot <skylot@gmail.com>
2021-03-08 21:34:52 +03:00
Skylot b873c6ae4d refactor: use interface for CodeWriter
Details:
- add simple and annotated code writers to allow
   skip code annotations processing in jadx-cli and other places
- add annotated code info to use only than needed
- allow to set provider for codewriter in JadxArgs
- add JadxArgs argument to constructor to allow change output
- add cli option to insert debug line numbers as code comments
   (example for previous change)
2021-02-21 17:34:33 +03:00
Skylot 67def6319e feat(cli): add option to change deobfuscation map file (#1117)
Signed-off-by: Skylot <skylot@gmail.com>
2021-02-13 14:22:22 +00:00
Skylot 2ca3c65300 fix(deobf): don't rename unresolved or classpath overridden methods
Change details:
- use common code for process override methods in deobfuscator (move OverrideMethodVisitor to pre-decompile stage)
- add all public methods to jadx class set to allow search of override base method
- add don't rename flag if override hierarchy have unresolved methods
2020-12-19 18:07:51 +03:00
Jan S 3a6d645ea3 fix(res): do not rename resources names for building res-map.txt (PR #1035)
fix: do not rename resources names for building res-map.txt
allow loading of resources.arsc from android.jar files
res-map.txt bases on resources.arsc from API 3, 4, 7-30 (taken from https://github.com/Sable/android-platforms)
2020-11-30 14:00:58 +03:00
Skylot fdc87fe296 fix: update class set data to Android API 30 2020-11-22 18:43:49 +00:00
Skylot d3f5154c19 fix: use text file for store android resource mapping (#1020)
Signed-off-by: Skylot <skylot@gmail.com>
2020-11-19 10:23:53 +00:00
Skylot 2a2b83a695 fix: do not copy input files as resources to output folder 2020-11-03 18:08:57 +00:00
Skylot acdaa95854 test(cli): add multiple input test (#936) 2020-11-03 17:27:15 +00:00
Skylot e09e8e5823 chore: resolve some issues reported by sonar and lgtm 2020-10-28 14:16:50 +00:00
Skylot 444ea9ec7e fix: load .class files 2020-08-10 12:20:42 +01:00
Skylot 558a86739f fix: bring back smali files support (#961) 2020-08-05 19:58:43 +01:00
Skylot 459f12d61f fix: several improvements for generics and type inference
- support 'extends' for generic type variables
- insert cast instructions to help type inference (#956)
- correct move instructions insertion (to resolve types in PHI)

Signed-off-by: Skylot <skylot@gmail.com>
2020-07-31 18:47:32 +01:00
Skylot 0d69e0ac97 refactor: use own dex parser instead deprecated dx lib 2020-05-21 22:02:20 +01:00
Skylot c05368d92e style: prefer use Stream.of method 2020-05-10 15:46:06 +01:00
Yaroslav Yadrov 492a3f6928 feat(deobf): add classname parsing for Kotlin metadata (PR #842, #758) 2020-02-02 17:08:29 +03:00
Skylot 531650c9f2 refactor: allow to change temp dir using system property JADX_TMP_DIR 2020-01-13 15:32:32 +03:00
Skylot bc7a748420 feat(cli): add options for change log level (#735) 2019-08-08 13:14:36 +03:00
Skylot a17f9136dd refactor: enable class unloading after code generation 2019-08-01 23:29:30 +03:00
skylot ed385e8cf1 feat: output decompilation results in json format (#676) 2019-06-18 16:06:56 +03:00
Jan S 8e0df4c423 fix(gui): printUsage for jadx-gui now shows the new gui only parameter(s) (PR #660) 2019-05-10 22:42:32 +03:00
Skylot 19c57258fe fix: improve rename checks and show rename reason (#584) 2019-05-10 21:10:04 +03:00
Jan S fef3e55c55 feat(gui): select a class to open via command-line (PR #658) 2019-05-10 21:06:54 +03:00
Jan S 6f973ca2af feat(cli): decompile only a single class (PR #657) 2019-05-08 19:06:49 +03:00
Skylot 699f7f6716 fix: treat filesystem as case insensitive by default, option added for change 2019-05-05 22:34:34 +03:00
skylot c7890f2468 style: enforce code style using checkstyle and spotless with eclipse formatter (PR #650) 2019-04-30 00:04:16 +03:00
Skylot e7e7b664dd feat: add option to disable anonymous class inline (#633) 2019-04-25 12:37:52 +03:00
Ahmed Ashour 74a72a5ce0 feat: add options to configure "renaming" (#570) (PR #582) 2019-04-12 18:08:50 +03:00
Ahmed Ashour b09c7ba6b8 feat(gui): support project (#526) (PR #543) 2019-03-31 20:20:27 +03:00
Skylot b446bf275c refactor: move filesystem case sensitivity value to JadxArgs 2019-03-26 23:12:17 +03:00
Skylot e026345a45 feat: new implementation for type inference approach and variable declaration
BREAKING CHANGE: some parts of jadx was rewritten from scratch
  - type inference
  - variable declaration
  - `finish` block extraction
2019-03-26 16:16:54 +03:00
skylot aa8a7c03c3 style: enforce strict style rules with editorconfig (PR #510) 2019-03-26 14:21:47 +03:00
Skylot 84cb6b9569 Merge branch 'master' into type-inference-wip
# Conflicts:
#	jadx-core/src/main/java/jadx/core/codegen/NameGen.java
#	jadx-core/src/main/java/jadx/core/dex/attributes/AttributeStorage.java
#	jadx-core/src/main/java/jadx/core/dex/attributes/nodes/PhiListAttr.java
#	jadx-core/src/main/java/jadx/core/dex/instructions/IndexInsnNode.java
#	jadx-core/src/main/java/jadx/core/dex/instructions/InsnDecoder.java
#	jadx-core/src/main/java/jadx/core/dex/instructions/args/ArgType.java
#	jadx-core/src/main/java/jadx/core/dex/instructions/args/RegisterArg.java
#	jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java
#	jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfRegion.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/helpers/BlocksPair.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/helpers/BlocksRemoveInfo.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/debuginfo/LocalVar.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/shrink/CodeShrinkVisitor.java
#	jadx-core/src/main/java/jadx/core/xmlgen/entry/EntryConfig.java
2019-03-24 12:38:20 +03:00
Skylot e1f4955286 Merge branch 'master' into type-inference-wip
# Conflicts:
#	jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java
#	jadx-core/src/main/java/jadx/core/Jadx.java
#	jadx-core/src/main/java/jadx/core/dex/attributes/AFlag.java
#	jadx-core/src/main/java/jadx/core/dex/attributes/AType.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java
#	jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java
#	jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java
#	jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java
#	jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination2.java
#	jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java
#	jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java
#	jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java
#	jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java
#	jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java
#	jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java
#	jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java
#	jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java
#	jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java
#	jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java
#	jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java
#	jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java
#	jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java
#	jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java
#	jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally8.java
2019-03-24 12:19:19 +03:00
Ahmed Ashour 11cee083ba style: use character instead of string, for better performance (PR #503) 2019-03-24 10:05:26 +03:00
Ahmed Ashour d111fd0680 feat: add a flag to disable debug info (#276) (PR #502) 2019-03-23 10:35:00 +03:00
Ahmed Ashour b65c386b6a test: migrate all assertions to JUnit5 (PR #496) 2019-03-22 20:37:20 +03:00
Ahmed Ashour 16b6345c7f test: migrate to JUnit 5 (PR #493) 2019-03-22 17:36:13 +03:00
Ahmed Ashour dd2e7e879b fix: add missing import for class generics map (PR #480)
* Fix missing import for class Generics map.
* Add import only when needed (in non-inner class declaration)
* Remove unneeded import
2019-03-21 17:11:56 +03:00
Skylot 0df5aa80fe refactor(cli): add missing generic for JCommanderWrapper 2019-02-26 20:12:40 +03:00
skylot 8c7140d6b8 fix: change not allowed access modifiers for methods (#387) (PR #439)
Fix visibility access modifies for methods (see discussions in #370 and #387):
    * all virtual methods become public
    * direct methods become private (instead constructors and static methods for now)
    * such modifications perform by default and can be disabled by the option in preferences (`--respect-bytecode-access-modifiers` in jadx-cli)
    * if changed to method added comment (`Access modifiers changed, original: private`)
2019-02-11 14:56:03 +03:00
Skylot 6b3e8f083c fix(gui): override settings by cmd options 2018-10-29 18:42:17 +03:00
Skylot 0c041120f6 core: show all decompilation errors in code comments (#313) 2018-08-23 23:16:36 +03:00
Skylot 9a4e8bdb48 set default deobfuscation min length to 3 (#332) 2018-08-15 15:29:43 +03:00
Skylot 6d984c0407 gui: update default settings 2018-05-26 20:41:54 +03:00