Commit Graph

574 Commits

Author SHA1 Message Date
Skylot 1bb53329b5 fix: use alias as a base for class rename if file system is case sensitive (#474) 2019-03-26 19:13:40 +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 3492ec3517 fix: change exception to soft warning for getType in RegisterArg 2019-03-26 15:44:32 +03:00
Ahmed Ashour eb2a1734d3 fix: xor with boolean (#409) (PR #516) 2019-03-26 15:29:39 +03:00
skylot aa8a7c03c3 style: enforce strict style rules with editorconfig (PR #510) 2019-03-26 14:21:47 +03:00
Skylot 29d3ce15a8 fix: rename parameters in annotations (#504) 2019-03-24 16:59:55 +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 a848eab407 Merge branch 'master'' 2019-03-24 12:24:57 +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
Skylot ca21ca5d81 test: rewrite Spock tests to JUnit 5 2019-03-24 11:23:24 +03:00
Ahmed Ashour 11cee083ba style: use character instead of string, for better performance (PR #503) 2019-03-24 10:05:26 +03:00
Skylot 6e66dc25c8 fix: additional checks for loop exit edges and 'for' conversion (#483) 2019-03-23 23:58:05 +03:00
Skylot 999793c944 fix: skip trailing bytes in resource table decoding (#487) 2019-03-23 13:25:06 +03:00
Ahmed Ashour d111fd0680 feat: add a flag to disable debug info (#276) (PR #502) 2019-03-23 10:35:00 +03:00
Skylot 5169dc52dd fix: remove invalid chars from class names (#488) 2019-03-22 19:54:45 +03:00
Skylot 2c0725390e fix: check variable usage before convert indexed loop to for-each variant (#483) 2019-03-22 19:30:20 +03:00
tRuNKator 5f0dbf856b fix: don't rename R class fields alias (PR #492)
* fix: R class fields alias
* implemented with clearer approach
2019-03-22 14:54:22 +03:00
tRuNKator 650cf31562 fix: resource qualifiers (PR #487) 2019-03-22 11:05:08 +03:00
tRuNKator 42b7843761 fix: use quantity attribute for plurals (PR #486) 2019-03-22 11:04:30 +03:00
Ahmed Ashour d5f4266283 fix: rename class with reserved java keywords (#485) (PR #488) 2019-03-22 10:55:44 +03:00
Ahmed Ashour 988ada3ce9 style: remove unneeded casts (PR #481)
As detected by Eclipse, and the test case doesn't depend on the explicit casting.
2019-03-21 17:16:33 +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 365c1faf25 Merge branch 'master' into type-inference-wip 2019-03-20 14:36:20 +03:00
Skylot 03ae3bcefa fix: process field init code in dependency collector (#467) 2019-03-19 16:45:40 +03:00
Skylot 52deb48aac fix: move instruction out of try/catch (#468) 2019-03-19 16:45:40 +03:00
Skylot 7654661b77 fix: inline desugared lambda classes (#467) 2019-03-15 22:19:43 +03:00
tRuNKator a4a8b05ef0 fix: replace dot character with underscore in style resource name (PR #466) 2019-03-14 15:46:37 +03:00
Skylot 6116a75022 fix: rename R fields using resource names (#465) 2019-03-12 20:27:25 +03:00
Skylot 7243ab5cb6 fix: don't replace resources names with field names (#465) 2019-03-12 19:35:05 +03:00
Jan S 43538902a3 fix: restore support for AAR files (issue #95) (PR #464) 2019-03-09 17:20:34 +03:00
Skylot cf79a519d3 refactor: move code shrink visitor to separate package and extract inner classes 2019-03-03 21:03:03 +03:00
Skylot d069928613 fix: check if synthetic class not yet processed but must be removed (#450) 2019-03-02 19:09:31 +03:00
Skylot dd13edf262 fix: don't remove empty default constructor if other constructors exists (#460) 2019-03-02 17:31:12 +03:00
Skylot 653bb2ac10 fix: hide first argument instead remove for constructor in inner class 2019-03-02 16:02:17 +03:00
Skylot cbdc2496fc fix: check block before insert additional move instruction for type inference 2019-03-01 23:36:26 +03:00
Skylot 3de04cb638 refactor: use flags to mark registers with immutable type 2019-02-28 16:32:11 +03:00
Skylot 68d074aecf fix: change type update collection to produce deterministic results 2019-02-27 19:03:05 +03:00
Skylot 28bcad202a refactor: resolve deprecation warning for TypeGen.literalToString method 2019-02-26 20:09:05 +03:00
Skylot 16d8d41baf Merge branch 'master' into type-inference-wip
# Conflicts:
#	jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockSplitter.java
#	jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java
2019-02-26 20:04:35 +03:00
Skylot 7bd175220e fix: add correct type propagation for check-cast and move instructions (#401) 2019-02-26 19:56:09 +03:00
Skylot 28d348b364 fix: additional checks for synthetic methods remove, rename and inline (#452) 2019-02-22 17:50:31 +03:00
Jan S 91691fbd6a fix: allow APK files without code (no contained dex files) (PR #455) 2019-02-22 17:45:21 +03:00
Skylot 9856b6d3c5 fix: remove invalid chars from class names (#453) 2019-02-21 19:14:55 +03:00
Skylot e1ca290424 fix: avoid ConcurrentModificationException in EliminatePhiNodes pass 2019-02-21 15:29:38 +03:00
Skylot 0fa19fb0ac fix: remove unreachable blocks (#451) 2019-02-21 15:24:18 +03:00
Skylot ab7b6fc29f refactor: don't use additional class for jadx warnings 2019-02-20 14:43:59 +03:00
Skylot f8acc31b0b fix(gui): remove output directories from persistent settings (#447) 2019-02-20 10:40:39 +03:00
Skylot 4197365131 fix: improve fallback mode dump (add types, remove label after if) 2019-02-19 21:11:15 +03:00
Skylot 389caf1825 fix: improve filled array detection 2019-02-18 23:57:53 +03:00
Skylot 5cee498e1d Merge branch 'master' into type-inference-wip 2019-02-17 16:10:09 +03:00