From 2c904c56f45182f93f48471750b171066ae34dd2 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 22 Apr 2018 21:55:18 +0300 Subject: [PATCH] core: reformat imports, fix some sonar issues --- .../src/main/java/jadx/api/JavaClass.java | 16 ++--- .../src/main/java/jadx/api/JavaMethod.java | 4 +- .../src/main/java/jadx/api/ResourceFile.java | 4 +- .../src/main/java/jadx/core/clsp/ClsSet.java | 16 ++--- .../main/java/jadx/core/clsp/ClspGraph.java | 8 +-- .../java/jadx/core/clsp/ConvertToClsSet.java | 10 ++-- .../java/jadx/core/codegen/AnnotationGen.java | 10 ++-- .../java/jadx/core/codegen/CodeWriter.java | 10 ++-- .../java/jadx/core/codegen/ConditionGen.java | 4 -- .../main/java/jadx/core/codegen/InsnGen.java | 22 +++---- .../java/jadx/core/codegen/MethodGen.java | 15 +++-- .../main/java/jadx/core/codegen/NameGen.java | 11 ++-- .../java/jadx/core/codegen/RegionGen.java | 12 ++-- .../main/java/jadx/core/codegen/TypeGen.java | 6 +- .../java/jadx/core/deobf/DeobfPresets.java | 8 +-- .../jadx/core/deobf/OverridedMethodsNode.java | 4 +- .../jadx/core/dex/attributes/AttrList.java | 4 +- .../jadx/core/dex/attributes/AttrNode.java | 4 +- .../core/dex/attributes/AttributeStorage.java | 8 +-- .../core/dex/attributes/EmptyAttrStorage.java | 4 +- .../core/dex/attributes/IAttributeNode.java | 4 +- .../attributes/annotations/Annotation.java | 4 +- .../annotations/AnnotationsList.java | 8 +-- .../annotations/MethodParameters.java | 6 +- .../nodes/DeclareVariablesAttr.java | 6 +- .../dex/attributes/nodes/EnumClassAttr.java | 6 +- .../dex/attributes/nodes/IgnoreEdgeAttr.java | 6 +- .../core/dex/attributes/nodes/LoopInfo.java | 10 ++-- .../dex/attributes/nodes/PhiListAttr.java | 6 +- .../java/jadx/core/dex/info/AccessInfo.java | 10 ++-- .../java/jadx/core/dex/info/FieldInfo.java | 4 +- .../java/jadx/core/dex/info/InfoStorage.java | 6 +- .../java/jadx/core/dex/info/MethodInfo.java | 10 ++-- .../jadx/core/dex/instructions/ArithNode.java | 4 +- .../core/dex/instructions/FillArrayNode.java | 10 ++-- .../dex/instructions/FilledNewArrayNode.java | 4 +- .../jadx/core/dex/instructions/IfNode.java | 4 +- .../core/dex/instructions/InvokeNode.java | 4 +- .../core/dex/instructions/NewArrayNode.java | 4 +- .../jadx/core/dex/instructions/PhiInsn.java | 11 ++-- .../core/dex/instructions/SwitchNode.java | 4 +- .../core/dex/instructions/args/ArgType.java | 10 ++-- .../core/dex/instructions/args/FieldArg.java | 4 +- .../core/dex/instructions/args/InsnArg.java | 9 ++- .../dex/instructions/args/InsnWrapArg.java | 4 +- .../dex/instructions/args/RegisterArg.java | 8 +-- .../core/dex/instructions/args/SSAVar.java | 6 +- .../dex/instructions/mods/TernaryInsn.java | 4 +- .../java/jadx/core/dex/nodes/BlockNode.java | 12 ++-- .../java/jadx/core/dex/nodes/ClassNode.java | 39 ++++++------ .../java/jadx/core/dex/nodes/FieldNode.java | 4 +- .../jadx/core/dex/nodes/InsnContainer.java | 4 +- .../java/jadx/core/dex/nodes/InsnNode.java | 16 ++--- .../java/jadx/core/dex/nodes/MethodNode.java | 33 +++++------ .../java/jadx/core/dex/nodes/ResRefField.java | 4 +- .../dex/nodes/parser/AnnotationsParser.java | 14 ++--- .../jadx/core/dex/nodes/parser/LocalVar.java | 6 +- .../dex/nodes/parser/SignatureParser.java | 12 ++-- .../dex/nodes/parser/StaticValuesParser.java | 8 +-- .../jadx/core/dex/regions/AbstractRegion.java | 6 +- .../java/jadx/core/dex/regions/Region.java | 6 +- .../jadx/core/dex/regions/SwitchRegion.java | 8 +-- .../core/dex/regions/SynchronizedRegion.java | 6 +- .../jadx/core/dex/regions/TryCatchRegion.java | 12 ++-- .../dex/regions/conditions/IfCondition.java | 14 ++--- .../core/dex/regions/conditions/IfInfo.java | 4 +- .../core/dex/regions/conditions/IfRegion.java | 8 +-- .../core/dex/regions/loops/LoopRegion.java | 3 +- .../core/dex/trycatch/ExceptionHandler.java | 6 +- .../jadx/core/dex/trycatch/TryCatchBlock.java | 10 ++-- .../jadx/core/dex/visitors/ClassModifier.java | 4 +- .../jadx/core/dex/visitors/CodeShrinker.java | 14 ++--- .../core/dex/visitors/ConstInlineVisitor.java | 45 +++++++------- .../core/dex/visitors/DebugInfoVisitor.java | 6 +- .../dex/visitors/DependencyCollector.java | 4 +- .../core/dex/visitors/DotGraphVisitor.java | 10 ++-- .../jadx/core/dex/visitors/EnumVisitor.java | 14 ++--- .../core/dex/visitors/ExtractFieldInit.java | 12 ++-- .../dex/visitors/MethodInlineVisitor.java | 4 +- .../jadx/core/dex/visitors/ModVisitor.java | 18 +++--- .../core/dex/visitors/PrepareForCodeGen.java | 9 ++- .../jadx/core/dex/visitors/RenameVisitor.java | 3 - .../core/dex/visitors/SimplifyVisitor.java | 14 ++--- .../dex/visitors/blocksmaker/BlockFinish.java | 14 ++--- .../visitors/blocksmaker/BlockProcessor.java | 16 ++--- .../blocksmaker/helpers/BlocksRemoveInfo.java | 6 +- .../dex/visitors/regions/CheckRegions.java | 12 ++-- .../dex/visitors/regions/CleanRegions.java | 10 ++-- .../dex/visitors/regions/IfMakerHelper.java | 14 ++--- .../dex/visitors/regions/IfRegionVisitor.java | 4 +- .../visitors/regions/LoopRegionVisitor.java | 12 ++-- .../regions/ProcessTryCatchRegions.java | 20 +++---- .../visitors/regions/ProcessVariables.java | 59 +++++++++---------- .../dex/visitors/regions/RegionMaker.java | 28 ++++----- .../visitors/regions/RegionMakerVisitor.java | 18 +++--- .../dex/visitors/regions/RegionStack.java | 10 ++-- .../dex/visitors/regions/ReturnVisitor.java | 6 +- .../core/dex/visitors/regions/TernaryMod.java | 6 +- .../visitors/regions/TracedRegionVisitor.java | 6 +- .../dex/visitors/ssa/EliminatePhiNodes.java | 12 ++-- .../dex/visitors/ssa/LiveVarAnalysis.java | 12 ++-- .../core/dex/visitors/ssa/SSATransform.java | 17 +++--- .../typeinference/PostTypeInference.java | 4 +- .../jadx/core/export/ExportGradleProject.java | 14 ++--- .../java/jadx/core/export/TemplateFile.java | 4 +- .../main/java/jadx/core/utils/BlockUtils.java | 22 +++---- .../main/java/jadx/core/utils/DebugUtils.java | 18 +++--- .../main/java/jadx/core/utils/InsnList.java | 6 +- .../main/java/jadx/core/utils/InsnUtils.java | 11 ++-- .../jadx/core/utils/InstructionRemover.java | 14 ++--- .../java/jadx/core/utils/RegionUtils.java | 10 ++-- .../java/jadx/core/utils/files/FileUtils.java | 2 - .../jadx/core/xmlgen/ManifestAttributes.java | 4 +- .../java/jadx/core/xmlgen/ResTableParser.java | 14 ++--- .../main/java/jadx/core/xmlgen/ResXmlGen.java | 15 +++-- .../java/jadx/core/xmlgen/ResourcesSaver.java | 8 +-- 116 files changed, 577 insertions(+), 599 deletions(-) diff --git a/jadx-core/src/main/java/jadx/api/JavaClass.java b/jadx-core/src/main/java/jadx/api/JavaClass.java index e4ef762b0..bfc94ea3a 100644 --- a/jadx-core/src/main/java/jadx/api/JavaClass.java +++ b/jadx-core/src/main/java/jadx/api/JavaClass.java @@ -1,13 +1,5 @@ package jadx.api; -import jadx.core.codegen.CodeWriter; -import jadx.core.dex.attributes.AFlag; -import jadx.core.dex.attributes.nodes.LineAttrNode; -import jadx.core.dex.info.AccessInfo; -import jadx.core.dex.nodes.ClassNode; -import jadx.core.dex.nodes.FieldNode; -import jadx.core.dex.nodes.MethodNode; - import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -17,6 +9,14 @@ import java.util.Map; import org.jetbrains.annotations.Nullable; +import jadx.core.codegen.CodeWriter; +import jadx.core.dex.attributes.AFlag; +import jadx.core.dex.attributes.nodes.LineAttrNode; +import jadx.core.dex.info.AccessInfo; +import jadx.core.dex.nodes.ClassNode; +import jadx.core.dex.nodes.FieldNode; +import jadx.core.dex.nodes.MethodNode; + public final class JavaClass implements JavaNode { private final JadxDecompiler decompiler; diff --git a/jadx-core/src/main/java/jadx/api/JavaMethod.java b/jadx-core/src/main/java/jadx/api/JavaMethod.java index dfd9d09d5..0d0a7dc47 100644 --- a/jadx-core/src/main/java/jadx/api/JavaMethod.java +++ b/jadx-core/src/main/java/jadx/api/JavaMethod.java @@ -1,11 +1,11 @@ package jadx.api; +import java.util.List; + import jadx.core.dex.info.AccessInfo; import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.nodes.MethodNode; -import java.util.List; - public final class JavaMethod implements JavaNode { private final MethodNode mth; private final JavaClass parent; diff --git a/jadx-core/src/main/java/jadx/api/ResourceFile.java b/jadx-core/src/main/java/jadx/api/ResourceFile.java index 269c2c4f5..15bd8ee86 100644 --- a/jadx-core/src/main/java/jadx/api/ResourceFile.java +++ b/jadx-core/src/main/java/jadx/api/ResourceFile.java @@ -1,10 +1,10 @@ package jadx.api; +import java.io.File; + import jadx.core.utils.files.ZipSecurity; import jadx.core.xmlgen.ResContainer; -import java.io.File; - public class ResourceFile { public static final class ZipRef { diff --git a/jadx-core/src/main/java/jadx/core/clsp/ClsSet.java b/jadx-core/src/main/java/jadx/core/clsp/ClsSet.java index e0fe1da11..b78cd06fa 100644 --- a/jadx-core/src/main/java/jadx/core/clsp/ClsSet.java +++ b/jadx-core/src/main/java/jadx/core/clsp/ClsSet.java @@ -1,13 +1,5 @@ package jadx.core.clsp; -import jadx.core.dex.instructions.args.ArgType; -import jadx.core.dex.nodes.ClassNode; -import jadx.core.dex.nodes.RootNode; -import jadx.core.utils.exceptions.DecodeException; -import jadx.core.utils.exceptions.JadxRuntimeException; -import jadx.core.utils.files.FileUtils; -import jadx.core.utils.files.ZipSecurity; - import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -28,6 +20,14 @@ import java.util.zip.ZipOutputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.core.dex.instructions.args.ArgType; +import jadx.core.dex.nodes.ClassNode; +import jadx.core.dex.nodes.RootNode; +import jadx.core.utils.exceptions.DecodeException; +import jadx.core.utils.exceptions.JadxRuntimeException; +import jadx.core.utils.files.FileUtils; +import jadx.core.utils.files.ZipSecurity; + import static jadx.core.utils.files.FileUtils.close; /** diff --git a/jadx-core/src/main/java/jadx/core/clsp/ClspGraph.java b/jadx-core/src/main/java/jadx/core/clsp/ClspGraph.java index 168cc74d5..6f54639a9 100644 --- a/jadx-core/src/main/java/jadx/core/clsp/ClspGraph.java +++ b/jadx-core/src/main/java/jadx/core/clsp/ClspGraph.java @@ -1,9 +1,5 @@ package jadx.core.clsp; -import jadx.core.dex.nodes.ClassNode; -import jadx.core.utils.exceptions.DecodeException; -import jadx.core.utils.exceptions.JadxRuntimeException; - import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -17,6 +13,10 @@ import java.util.WeakHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.core.dex.nodes.ClassNode; +import jadx.core.utils.exceptions.DecodeException; +import jadx.core.utils.exceptions.JadxRuntimeException; + /** * Classes hierarchy graph */ diff --git a/jadx-core/src/main/java/jadx/core/clsp/ConvertToClsSet.java b/jadx-core/src/main/java/jadx/core/clsp/ConvertToClsSet.java index 0b257a250..2399a2526 100644 --- a/jadx-core/src/main/java/jadx/core/clsp/ConvertToClsSet.java +++ b/jadx-core/src/main/java/jadx/core/clsp/ConvertToClsSet.java @@ -1,10 +1,5 @@ package jadx.core.clsp; -import jadx.api.JadxArgs; -import jadx.core.dex.nodes.RootNode; -import jadx.core.utils.exceptions.DecodeException; -import jadx.core.utils.files.InputFile; - import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -13,6 +8,11 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.api.JadxArgs; +import jadx.core.dex.nodes.RootNode; +import jadx.core.utils.exceptions.DecodeException; +import jadx.core.utils.files.InputFile; + /** * Utility class for convert dex or jar to jadx classes set (.jcst) */ diff --git a/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java b/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java index 4d0180d18..4539b926a 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java @@ -1,5 +1,10 @@ package jadx.core.codegen; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + import jadx.core.Consts; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.IAttributeNode; @@ -14,11 +19,6 @@ import jadx.core.dex.nodes.MethodNode; import jadx.core.utils.StringUtils; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - public class AnnotationGen { private final ClassNode cls; diff --git a/jadx-core/src/main/java/jadx/core/codegen/CodeWriter.java b/jadx-core/src/main/java/jadx/core/codegen/CodeWriter.java index 6d6778c92..592d34ff1 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/CodeWriter.java +++ b/jadx-core/src/main/java/jadx/core/codegen/CodeWriter.java @@ -1,10 +1,5 @@ package jadx.core.codegen; -import jadx.api.CodePosition; -import jadx.core.dex.attributes.nodes.LineAttrNode; -import jadx.core.utils.files.FileUtils; -import jadx.core.utils.files.ZipSecurity; - import java.io.File; import java.io.PrintWriter; import java.util.Collections; @@ -17,6 +12,11 @@ import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.api.CodePosition; +import jadx.core.dex.attributes.nodes.LineAttrNode; +import jadx.core.utils.files.FileUtils; +import jadx.core.utils.files.ZipSecurity; + public class CodeWriter { private static final Logger LOG = LoggerFactory.getLogger(CodeWriter.class); diff --git a/jadx-core/src/main/java/jadx/core/codegen/ConditionGen.java b/jadx-core/src/main/java/jadx/core/codegen/ConditionGen.java index 4c460746b..db3527f28 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/ConditionGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/ConditionGen.java @@ -4,9 +4,6 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.Queue; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import jadx.core.dex.instructions.ArithNode; import jadx.core.dex.instructions.IfOp; import jadx.core.dex.instructions.InsnType; @@ -23,7 +20,6 @@ import jadx.core.utils.exceptions.CodegenException; import jadx.core.utils.exceptions.JadxRuntimeException; public class ConditionGen extends InsnGen { - private static final Logger LOG = LoggerFactory.getLogger(ConditionGen.class); private static class CondStack { private final Queue stack = new LinkedList<>(); diff --git a/jadx-core/src/main/java/jadx/core/codegen/InsnGen.java b/jadx-core/src/main/java/jadx/core/codegen/InsnGen.java index 289c1ebd3..d81906d09 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/InsnGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/InsnGen.java @@ -1,5 +1,16 @@ package jadx.core.codegen; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.FieldReplaceAttr; @@ -41,17 +52,6 @@ import jadx.core.utils.RegionUtils; import jadx.core.utils.exceptions.CodegenException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.EnumSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import static jadx.core.utils.android.AndroidResourcesUtils.handleAppResField; public class InsnGen { diff --git a/jadx-core/src/main/java/jadx/core/codegen/MethodGen.java b/jadx-core/src/main/java/jadx/core/codegen/MethodGen.java index 9083a668e..f36d03ddb 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/MethodGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/MethodGen.java @@ -1,5 +1,12 @@ package jadx.core.codegen; +import java.util.Iterator; +import java.util.List; + +import com.android.dx.rop.code.AccessFlags; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.annotations.MethodParameters; @@ -20,14 +27,6 @@ import jadx.core.utils.Utils; import jadx.core.utils.exceptions.CodegenException; import jadx.core.utils.exceptions.DecodeException; -import java.util.Iterator; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.android.dx.rop.code.AccessFlags; - public class MethodGen { private static final Logger LOG = LoggerFactory.getLogger(MethodGen.class); diff --git a/jadx-core/src/main/java/jadx/core/codegen/NameGen.java b/jadx-core/src/main/java/jadx/core/codegen/NameGen.java index c6ae71da2..fefb8d8cf 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/NameGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/NameGen.java @@ -1,5 +1,10 @@ package jadx.core.codegen; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; + import jadx.core.Consts; import jadx.core.deobf.NameMapper; import jadx.core.dex.attributes.nodes.LoopLabelAttr; @@ -17,12 +22,6 @@ import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; import jadx.core.utils.StringUtils; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Set; - public class NameGen { private static final Map OBJ_ALIAS; diff --git a/jadx-core/src/main/java/jadx/core/codegen/RegionGen.java b/jadx-core/src/main/java/jadx/core/codegen/RegionGen.java index df353b22e..6f8c84973 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/RegionGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/RegionGen.java @@ -1,5 +1,11 @@ package jadx.core.codegen; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.DeclareVariablesAttr; @@ -32,12 +38,6 @@ import jadx.core.utils.RegionUtils; import jadx.core.utils.exceptions.CodegenException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.List; -import java.util.Map; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class RegionGen extends InsnGen { private static final Logger LOG = LoggerFactory.getLogger(RegionGen.class); diff --git a/jadx-core/src/main/java/jadx/core/codegen/TypeGen.java b/jadx-core/src/main/java/jadx/core/codegen/TypeGen.java index 7ed158b57..b14877102 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/TypeGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/TypeGen.java @@ -1,5 +1,8 @@ package jadx.core.codegen; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.api.JadxArgs; import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.PrimitiveType; @@ -8,9 +11,6 @@ import jadx.core.utils.StringUtils; import jadx.core.utils.Utils; import jadx.core.utils.exceptions.JadxRuntimeException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class TypeGen { private static final Logger LOG = LoggerFactory.getLogger(TypeGen.class); diff --git a/jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java b/jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java index 81af0224b..c478baf23 100644 --- a/jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java +++ b/jadx-core/src/main/java/jadx/core/deobf/DeobfPresets.java @@ -1,9 +1,5 @@ package jadx.core.deobf; -import jadx.core.dex.info.ClassInfo; -import jadx.core.dex.info.FieldInfo; -import jadx.core.dex.info.MethodInfo; - import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -16,6 +12,10 @@ import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.core.dex.info.ClassInfo; +import jadx.core.dex.info.FieldInfo; +import jadx.core.dex.info.MethodInfo; + class DeobfPresets { private static final Logger LOG = LoggerFactory.getLogger(DeobfPresets.class); diff --git a/jadx-core/src/main/java/jadx/core/deobf/OverridedMethodsNode.java b/jadx-core/src/main/java/jadx/core/deobf/OverridedMethodsNode.java index 90062cf9d..d9fe687e6 100644 --- a/jadx-core/src/main/java/jadx/core/deobf/OverridedMethodsNode.java +++ b/jadx-core/src/main/java/jadx/core/deobf/OverridedMethodsNode.java @@ -1,9 +1,9 @@ package jadx.core.deobf; -import jadx.core.dex.info.MethodInfo; - import java.util.Set; +import jadx.core.dex.info.MethodInfo; + /* package */ class OverridedMethodsNode { private Set methods; diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/AttrList.java b/jadx-core/src/main/java/jadx/core/dex/attributes/AttrList.java index 30fa1e4f6..3c49c22cd 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/AttrList.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/AttrList.java @@ -1,10 +1,10 @@ package jadx.core.dex.attributes; -import jadx.core.utils.Utils; - import java.util.LinkedList; import java.util.List; +import jadx.core.utils.Utils; + public class AttrList implements IAttribute { private final AType> type; diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/AttrNode.java b/jadx-core/src/main/java/jadx/core/dex/attributes/AttrNode.java index 2cf100908..ccd65b647 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/AttrNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/AttrNode.java @@ -1,9 +1,9 @@ package jadx.core.dex.attributes; -import jadx.core.dex.attributes.annotations.Annotation; - import java.util.List; +import jadx.core.dex.attributes.annotations.Annotation; + public abstract class AttrNode implements IAttributeNode { private static final AttributeStorage EMPTY_ATTR_STORAGE = new EmptyAttrStorage(); diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/AttributeStorage.java b/jadx-core/src/main/java/jadx/core/dex/attributes/AttributeStorage.java index 4184c4d7a..39d10db28 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/AttributeStorage.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/AttributeStorage.java @@ -1,9 +1,5 @@ package jadx.core.dex.attributes; -import jadx.core.dex.attributes.annotations.Annotation; -import jadx.core.dex.attributes.annotations.AnnotationsList; -import jadx.core.utils.Utils; - import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; @@ -12,6 +8,10 @@ import java.util.List; import java.util.Map; import java.util.Set; +import jadx.core.dex.attributes.annotations.Annotation; +import jadx.core.dex.attributes.annotations.AnnotationsList; +import jadx.core.utils.Utils; + /** * Storage for different attribute types: * 1. flags - boolean attribute (set or not) diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/EmptyAttrStorage.java b/jadx-core/src/main/java/jadx/core/dex/attributes/EmptyAttrStorage.java index 2e1125fe3..56111b7c5 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/EmptyAttrStorage.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/EmptyAttrStorage.java @@ -1,10 +1,10 @@ package jadx.core.dex.attributes; -import jadx.core.dex.attributes.annotations.Annotation; - import java.util.Collections; import java.util.List; +import jadx.core.dex.attributes.annotations.Annotation; + public final class EmptyAttrStorage extends AttributeStorage { @Override diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/IAttributeNode.java b/jadx-core/src/main/java/jadx/core/dex/attributes/IAttributeNode.java index c963938a6..50d70577f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/IAttributeNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/IAttributeNode.java @@ -1,9 +1,9 @@ package jadx.core.dex.attributes; -import jadx.core.dex.attributes.annotations.Annotation; - import java.util.List; +import jadx.core.dex.attributes.annotations.Annotation; + public interface IAttributeNode { void add(AFlag flag); diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/Annotation.java b/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/Annotation.java index 7d1e728df..12f244a99 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/Annotation.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/Annotation.java @@ -1,9 +1,9 @@ package jadx.core.dex.attributes.annotations; -import jadx.core.dex.instructions.args.ArgType; - import java.util.Map; +import jadx.core.dex.instructions.args.ArgType; + public class Annotation { public enum Visibility { diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/AnnotationsList.java b/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/AnnotationsList.java index 85c8e8f6b..b19aea579 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/AnnotationsList.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/AnnotationsList.java @@ -1,15 +1,15 @@ package jadx.core.dex.attributes.annotations; -import jadx.core.dex.attributes.AType; -import jadx.core.dex.attributes.IAttribute; -import jadx.core.utils.Utils; - import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import jadx.core.dex.attributes.AType; +import jadx.core.dex.attributes.IAttribute; +import jadx.core.utils.Utils; + public class AnnotationsList implements IAttribute { public static final AnnotationsList EMPTY = new AnnotationsList(Collections.emptyList()); diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/MethodParameters.java b/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/MethodParameters.java index acfb66c5f..d0830469c 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/MethodParameters.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/annotations/MethodParameters.java @@ -1,12 +1,12 @@ package jadx.core.dex.attributes.annotations; +import java.util.ArrayList; +import java.util.List; + import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.IAttribute; import jadx.core.utils.Utils; -import java.util.ArrayList; -import java.util.List; - public class MethodParameters implements IAttribute { private final List paramList; diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/DeclareVariablesAttr.java b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/DeclareVariablesAttr.java index 9780770c3..a552b60db 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/DeclareVariablesAttr.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/DeclareVariablesAttr.java @@ -1,13 +1,13 @@ package jadx.core.dex.attributes.nodes; +import java.util.LinkedList; +import java.util.List; + import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.IAttribute; import jadx.core.dex.instructions.args.RegisterArg; import jadx.core.utils.Utils; -import java.util.LinkedList; -import java.util.List; - /** * List of variables to be declared at region start. */ diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/EnumClassAttr.java b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/EnumClassAttr.java index a0530a4ef..9274c320a 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/EnumClassAttr.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/EnumClassAttr.java @@ -1,5 +1,8 @@ package jadx.core.dex.attributes.nodes; +import java.util.ArrayList; +import java.util.List; + import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.IAttribute; import jadx.core.dex.info.FieldInfo; @@ -7,9 +10,6 @@ import jadx.core.dex.instructions.mods.ConstructorInsn; import jadx.core.dex.nodes.ClassNode; import jadx.core.dex.nodes.MethodNode; -import java.util.ArrayList; -import java.util.List; - public class EnumClassAttr implements IAttribute { public static class EnumField { diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/IgnoreEdgeAttr.java b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/IgnoreEdgeAttr.java index 7f8b4ccc9..5d66bccca 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/IgnoreEdgeAttr.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/IgnoreEdgeAttr.java @@ -1,13 +1,13 @@ package jadx.core.dex.attributes.nodes; +import java.util.HashSet; +import java.util.Set; + import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.IAttribute; import jadx.core.dex.nodes.BlockNode; import jadx.core.utils.Utils; -import java.util.HashSet; -import java.util.Set; - public class IgnoreEdgeAttr implements IAttribute { private final Set blocks = new HashSet<>(3); diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/LoopInfo.java b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/LoopInfo.java index b11178f55..106b15c8b 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/LoopInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/LoopInfo.java @@ -1,16 +1,16 @@ package jadx.core.dex.attributes.nodes; -import jadx.core.dex.attributes.AType; -import jadx.core.dex.nodes.BlockNode; -import jadx.core.dex.nodes.Edge; -import jadx.core.utils.BlockUtils; - import java.util.Collections; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; +import jadx.core.dex.attributes.AType; +import jadx.core.dex.nodes.BlockNode; +import jadx.core.dex.nodes.Edge; +import jadx.core.utils.BlockUtils; + public class LoopInfo { private final BlockNode start; diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/PhiListAttr.java b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/PhiListAttr.java index f1f0e58ad..1e56cf2a7 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/PhiListAttr.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/PhiListAttr.java @@ -1,12 +1,12 @@ package jadx.core.dex.attributes.nodes; +import java.util.LinkedList; +import java.util.List; + import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.IAttribute; import jadx.core.dex.instructions.PhiInsn; -import java.util.LinkedList; -import java.util.List; - public class PhiListAttr implements IAttribute { private final List list = new LinkedList<>(); diff --git a/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java b/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java index 11a9e521a..11a13f49f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java @@ -1,9 +1,9 @@ package jadx.core.dex.info; -import jadx.core.Consts; - import com.android.dx.rop.code.AccessFlags; +import jadx.core.Consts; + public class AccessInfo { private final int accFlags; @@ -140,10 +140,8 @@ public class AccessInfo { if (isBridge()) { code.append("/* bridge */ "); } - if (Consts.DEBUG) { - if (isVarArgs()) { - code.append("/* varargs */ "); - } + if (Consts.DEBUG && isVarArgs()) { + code.append("/* varargs */ "); } break; diff --git a/jadx-core/src/main/java/jadx/core/dex/info/FieldInfo.java b/jadx-core/src/main/java/jadx/core/dex/info/FieldInfo.java index 000c3767c..6d4844f70 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/FieldInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/FieldInfo.java @@ -1,11 +1,11 @@ package jadx.core.dex.info; +import com.android.dex.FieldId; + import jadx.core.codegen.TypeGen; import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.nodes.DexNode; -import com.android.dex.FieldId; - public final class FieldInfo { private final ClassInfo declClass; diff --git a/jadx-core/src/main/java/jadx/core/dex/info/InfoStorage.java b/jadx-core/src/main/java/jadx/core/dex/info/InfoStorage.java index 32976fa76..80e4e8f36 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/InfoStorage.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/InfoStorage.java @@ -1,11 +1,11 @@ package jadx.core.dex.info; -import jadx.core.dex.instructions.args.ArgType; -import jadx.core.dex.nodes.DexNode; - import java.util.HashMap; import java.util.Map; +import jadx.core.dex.instructions.args.ArgType; +import jadx.core.dex.nodes.DexNode; + public class InfoStorage { private final Map classes = new HashMap<>(); diff --git a/jadx-core/src/main/java/jadx/core/dex/info/MethodInfo.java b/jadx-core/src/main/java/jadx/core/dex/info/MethodInfo.java index c63cc650e..76764334f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/MethodInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/MethodInfo.java @@ -1,15 +1,15 @@ package jadx.core.dex.info; -import jadx.core.codegen.TypeGen; -import jadx.core.dex.instructions.args.ArgType; -import jadx.core.dex.nodes.DexNode; -import jadx.core.utils.Utils; - import java.util.List; import com.android.dex.MethodId; import com.android.dex.ProtoId; +import jadx.core.codegen.TypeGen; +import jadx.core.dex.instructions.args.ArgType; +import jadx.core.dex.nodes.DexNode; +import jadx.core.utils.Utils; + public final class MethodInfo { private final String name; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/ArithNode.java b/jadx-core/src/main/java/jadx/core/dex/instructions/ArithNode.java index 92103d3bb..fd6ca4832 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/ArithNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/ArithNode.java @@ -1,5 +1,7 @@ package jadx.core.dex.instructions; +import com.android.dx.io.instructions.DecodedInstruction; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.InsnArg; @@ -7,8 +9,6 @@ import jadx.core.dex.instructions.args.RegisterArg; import jadx.core.dex.nodes.InsnNode; import jadx.core.utils.InsnUtils; -import com.android.dx.io.instructions.DecodedInstruction; - public class ArithNode extends InsnNode { private final ArithOp op; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/FillArrayNode.java b/jadx-core/src/main/java/jadx/core/dex/instructions/FillArrayNode.java index 3c60c52b2..4d30de8d1 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/FillArrayNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/FillArrayNode.java @@ -1,5 +1,10 @@ package jadx.core.dex.instructions; +import java.util.ArrayList; +import java.util.List; + +import com.android.dx.io.instructions.FillArrayDataPayloadDecodedInstruction; + import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.instructions.args.LiteralArg; @@ -8,11 +13,6 @@ import jadx.core.dex.nodes.DexNode; import jadx.core.dex.nodes.InsnNode; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.List; - -import com.android.dx.io.instructions.FillArrayDataPayloadDecodedInstruction; - public final class FillArrayNode extends InsnNode { private final Object data; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/FilledNewArrayNode.java b/jadx-core/src/main/java/jadx/core/dex/instructions/FilledNewArrayNode.java index c6cb7fcd6..95d0e4aec 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/FilledNewArrayNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/FilledNewArrayNode.java @@ -1,10 +1,10 @@ package jadx.core.dex.instructions; +import org.jetbrains.annotations.NotNull; + import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.nodes.InsnNode; -import org.jetbrains.annotations.NotNull; - public class FilledNewArrayNode extends InsnNode { private final ArgType elemType; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/IfNode.java b/jadx-core/src/main/java/jadx/core/dex/instructions/IfNode.java index 021623d00..248696520 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/IfNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/IfNode.java @@ -1,5 +1,7 @@ package jadx.core.dex.instructions; +import com.android.dx.io.instructions.DecodedInstruction; + import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.instructions.args.PrimitiveType; @@ -7,8 +9,6 @@ import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.InsnNode; import jadx.core.utils.InsnUtils; -import com.android.dx.io.instructions.DecodedInstruction; - import static jadx.core.utils.BlockUtils.getBlockByOffset; import static jadx.core.utils.BlockUtils.selectOther; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/InvokeNode.java b/jadx-core/src/main/java/jadx/core/dex/instructions/InvokeNode.java index 4d7ce136a..5baa632cd 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/InvokeNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/InvokeNode.java @@ -1,5 +1,7 @@ package jadx.core.dex.instructions; +import com.android.dx.io.instructions.DecodedInstruction; + import jadx.core.dex.info.MethodInfo; import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.InsnArg; @@ -7,8 +9,6 @@ import jadx.core.dex.nodes.InsnNode; import jadx.core.utils.InsnUtils; import jadx.core.utils.Utils; -import com.android.dx.io.instructions.DecodedInstruction; - public class InvokeNode extends InsnNode { private final InvokeType type; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/NewArrayNode.java b/jadx-core/src/main/java/jadx/core/dex/instructions/NewArrayNode.java index 24d34cb6e..80364976e 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/NewArrayNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/NewArrayNode.java @@ -1,12 +1,12 @@ package jadx.core.dex.instructions; +import org.jetbrains.annotations.NotNull; + import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.instructions.args.RegisterArg; import jadx.core.dex.nodes.InsnNode; -import org.jetbrains.annotations.NotNull; - public class NewArrayNode extends InsnNode { private final ArgType arrType; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/PhiInsn.java b/jadx-core/src/main/java/jadx/core/dex/instructions/PhiInsn.java index e476fad7e..02d8134c6 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/PhiInsn.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/PhiInsn.java @@ -1,5 +1,10 @@ package jadx.core.dex.instructions; +import java.util.LinkedHashMap; +import java.util.Map; + +import org.jetbrains.annotations.NotNull; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.InsnArg; @@ -10,12 +15,6 @@ import jadx.core.utils.InstructionRemover; import jadx.core.utils.Utils; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.IdentityHashMap; -import java.util.LinkedHashMap; -import java.util.Map; - -import org.jetbrains.annotations.NotNull; - public final class PhiInsn extends InsnNode { private final Map blockBinds; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/SwitchNode.java b/jadx-core/src/main/java/jadx/core/dex/instructions/SwitchNode.java index f1ae4092f..adb858ab9 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/SwitchNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/SwitchNode.java @@ -1,11 +1,11 @@ package jadx.core.dex.instructions; +import java.util.Arrays; + import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.nodes.InsnNode; import jadx.core.utils.InsnUtils; -import java.util.Arrays; - public class SwitchNode extends InsnNode { private final Object[] keys; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/ArgType.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/ArgType.java index 942874ec3..701c18444 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/ArgType.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/ArgType.java @@ -1,16 +1,16 @@ package jadx.core.dex.instructions.args; -import jadx.core.Consts; -import jadx.core.dex.nodes.DexNode; -import jadx.core.dex.nodes.parser.SignatureParser; -import jadx.core.utils.Utils; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.jetbrains.annotations.Nullable; +import jadx.core.Consts; +import jadx.core.dex.nodes.DexNode; +import jadx.core.dex.nodes.parser.SignatureParser; +import jadx.core.utils.Utils; + public abstract class ArgType { public static final ArgType INT = primitive(PrimitiveType.INT); diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/FieldArg.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/FieldArg.java index 63dcf5d84..121c806f3 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/FieldArg.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/FieldArg.java @@ -1,9 +1,9 @@ package jadx.core.dex.instructions.args; -import jadx.core.dex.info.FieldInfo; - import org.jetbrains.annotations.Nullable; +import jadx.core.dex.info.FieldInfo; + // TODO: don't extend RegisterArg (now used as a result of instruction) public final class FieldArg extends RegisterArg { diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnArg.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnArg.java index c290bc366..d03a67298 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnArg.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnArg.java @@ -1,17 +1,16 @@ package jadx.core.dex.instructions.args; -import jadx.core.dex.attributes.AFlag; -import jadx.core.dex.nodes.InsnNode; -import jadx.core.utils.InsnUtils; - import java.util.ArrayList; import java.util.List; +import com.android.dx.io.instructions.DecodedInstruction; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.android.dx.io.instructions.DecodedInstruction; +import jadx.core.dex.attributes.AFlag; +import jadx.core.dex.nodes.InsnNode; +import jadx.core.utils.InsnUtils; /** * Instruction argument, diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnWrapArg.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnWrapArg.java index 5c61f0fdb..cc28a59a7 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnWrapArg.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnWrapArg.java @@ -1,10 +1,10 @@ package jadx.core.dex.instructions.args; +import org.jetbrains.annotations.NotNull; + import jadx.core.dex.nodes.InsnNode; import jadx.core.utils.exceptions.JadxRuntimeException; -import org.jetbrains.annotations.NotNull; - public final class InsnWrapArg extends InsnArg { private final InsnNode wrappedInsn; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/RegisterArg.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/RegisterArg.java index fb66ab3c4..2d98ccebc 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/RegisterArg.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/RegisterArg.java @@ -1,15 +1,15 @@ package jadx.core.dex.instructions.args; +import java.util.Objects; + +import org.jetbrains.annotations.NotNull; + import jadx.core.dex.instructions.InsnType; import jadx.core.dex.instructions.PhiInsn; import jadx.core.dex.nodes.DexNode; import jadx.core.dex.nodes.InsnNode; import jadx.core.utils.InsnUtils; -import java.util.Objects; - -import org.jetbrains.annotations.NotNull; - public class RegisterArg extends InsnArg implements Named { protected final int regNum; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java index edb066d34..66cb6eeca 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/SSAVar.java @@ -1,14 +1,14 @@ package jadx.core.dex.instructions.args; -import jadx.core.dex.attributes.AttrNode; -import jadx.core.dex.instructions.PhiInsn; - import java.util.ArrayList; import java.util.List; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import jadx.core.dex.attributes.AttrNode; +import jadx.core.dex.instructions.PhiInsn; + public class SSAVar extends AttrNode { private final int regNum; diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/mods/TernaryInsn.java b/jadx-core/src/main/java/jadx/core/dex/instructions/mods/TernaryInsn.java index c104e7b30..bbc69443f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/mods/TernaryInsn.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/mods/TernaryInsn.java @@ -1,5 +1,7 @@ package jadx.core.dex.instructions.mods; +import java.util.Collection; + import jadx.core.dex.instructions.InsnType; import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.instructions.args.LiteralArg; @@ -9,8 +11,6 @@ import jadx.core.dex.regions.conditions.IfCondition; import jadx.core.utils.InsnUtils; import jadx.core.utils.Utils; -import java.util.Collection; - public final class TernaryInsn extends InsnNode { private IfCondition condition; diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/BlockNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/BlockNode.java index 55804eb39..235d77c0e 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/BlockNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/BlockNode.java @@ -1,5 +1,11 @@ package jadx.core.dex.nodes; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.AttrNode; @@ -9,12 +15,6 @@ import jadx.core.utils.BlockUtils; import jadx.core.utils.EmptyBitSet; import jadx.core.utils.InsnUtils; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - public class BlockNode extends AttrNode implements IBlock { private int id; diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java index 21c18cd29..e4adfe0c2 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java @@ -1,5 +1,24 @@ package jadx.core.dex.nodes; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.android.dex.ClassData; +import com.android.dex.ClassData.Field; +import com.android.dex.ClassData.Method; +import com.android.dex.ClassDef; +import com.android.dex.Dex; +import com.android.dx.rop.code.AccessFlags; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.TestOnly; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.Consts; import jadx.core.codegen.CodeWriter; import jadx.core.dex.attributes.annotations.Annotation; @@ -20,26 +39,6 @@ import jadx.core.dex.nodes.parser.StaticValuesParser; import jadx.core.utils.exceptions.DecodeException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.TestOnly; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.android.dex.ClassData; -import com.android.dex.ClassData.Field; -import com.android.dex.ClassData.Method; -import com.android.dex.ClassDef; -import com.android.dex.Dex; -import com.android.dx.rop.code.AccessFlags; - public class ClassNode extends LineAttrNode implements ILoadable, IDexNode { private static final Logger LOG = LoggerFactory.getLogger(ClassNode.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/FieldNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/FieldNode.java index 486f0eac8..4d3a49bd3 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/FieldNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/FieldNode.java @@ -1,13 +1,13 @@ package jadx.core.dex.nodes; +import com.android.dex.ClassData.Field; + import jadx.core.dex.attributes.nodes.LineAttrNode; import jadx.core.dex.info.AccessInfo; import jadx.core.dex.info.AccessInfo.AFType; import jadx.core.dex.info.FieldInfo; import jadx.core.dex.instructions.args.ArgType; -import com.android.dex.ClassData.Field; - public class FieldNode extends LineAttrNode { private final ClassNode parent; diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/InsnContainer.java b/jadx-core/src/main/java/jadx/core/dex/nodes/InsnContainer.java index f48b9cca4..10e401935 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/InsnContainer.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/InsnContainer.java @@ -1,9 +1,9 @@ package jadx.core.dex.nodes; -import jadx.core.dex.attributes.AttrNode; - import java.util.List; +import jadx.core.dex.attributes.AttrNode; + public class InsnContainer extends AttrNode implements IBlock { private final List insns; diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/InsnNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/InsnNode.java index db9c8af17..02eb503b3 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/InsnNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/InsnNode.java @@ -1,5 +1,13 @@ package jadx.core.dex.nodes; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import com.android.dx.io.instructions.DecodedInstruction; +import com.rits.cloning.Cloner; + import jadx.core.dex.attributes.nodes.LineAttrNode; import jadx.core.dex.instructions.InsnType; import jadx.core.dex.instructions.args.ArgType; @@ -12,14 +20,6 @@ import jadx.core.dex.instructions.args.SSAVar; import jadx.core.utils.InsnUtils; import jadx.core.utils.Utils; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import com.android.dx.io.instructions.DecodedInstruction; -import com.rits.cloning.Cloner; - public class InsnNode extends LineAttrNode { private static final Cloner INSN_CLONER = new Cloner(); diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java index 07c7499a8..9a4318cd3 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java @@ -1,5 +1,21 @@ package jadx.core.dex.nodes; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.android.dex.ClassData.Method; +import com.android.dex.Code; +import com.android.dex.Code.CatchHandler; +import com.android.dex.Code.Try; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.JumpInfo; @@ -27,23 +43,6 @@ import jadx.core.utils.Utils; import jadx.core.utils.exceptions.DecodeException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.android.dex.ClassData.Method; -import com.android.dex.Code; -import com.android.dex.Code.CatchHandler; -import com.android.dex.Code.Try; - public class MethodNode extends LineAttrNode implements ILoadable, IDexNode { private static final Logger LOG = LoggerFactory.getLogger(MethodNode.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/ResRefField.java b/jadx-core/src/main/java/jadx/core/dex/nodes/ResRefField.java index d77ef0a89..4d410cbaa 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/ResRefField.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/ResRefField.java @@ -1,10 +1,10 @@ package jadx.core.dex.nodes; +import com.android.dx.rop.code.AccessFlags; + import jadx.core.dex.info.FieldInfo; import jadx.core.dex.instructions.args.ArgType; -import com.android.dx.rop.code.AccessFlags; - public class ResRefField extends FieldNode { public ResRefField(DexNode dex, String str) { diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/AnnotationsParser.java b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/AnnotationsParser.java index 78a2df6be..e2b34e8bc 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/AnnotationsParser.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/AnnotationsParser.java @@ -1,5 +1,12 @@ package jadx.core.dex.nodes.parser; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import com.android.dex.Dex.Section; + import jadx.core.dex.attributes.annotations.Annotation; import jadx.core.dex.attributes.annotations.Annotation.Visibility; import jadx.core.dex.attributes.annotations.AnnotationsList; @@ -11,13 +18,6 @@ import jadx.core.dex.nodes.FieldNode; import jadx.core.dex.nodes.MethodNode; import jadx.core.utils.exceptions.DecodeException; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import com.android.dex.Dex.Section; - public class AnnotationsParser { private static final Visibility[] VISIBILITIES = { diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/LocalVar.java b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/LocalVar.java index 370287c5b..fe066e50b 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/LocalVar.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/LocalVar.java @@ -1,13 +1,13 @@ package jadx.core.dex.nodes.parser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.RegisterArg; import jadx.core.dex.nodes.DexNode; import jadx.core.utils.InsnUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - final class LocalVar { private static final Logger LOG = LoggerFactory.getLogger(LocalVar.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/SignatureParser.java b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/SignatureParser.java index ed2da00eb..ebce9cc9e 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/SignatureParser.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/SignatureParser.java @@ -1,11 +1,5 @@ package jadx.core.dex.nodes.parser; -import jadx.core.Consts; -import jadx.core.dex.attributes.IAttributeNode; -import jadx.core.dex.attributes.annotations.Annotation; -import jadx.core.dex.instructions.args.ArgType; -import jadx.core.utils.exceptions.JadxRuntimeException; - import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedList; @@ -15,6 +9,12 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.core.Consts; +import jadx.core.dex.attributes.IAttributeNode; +import jadx.core.dex.attributes.annotations.Annotation; +import jadx.core.dex.instructions.args.ArgType; +import jadx.core.utils.exceptions.JadxRuntimeException; + public class SignatureParser { private static final Logger LOG = LoggerFactory.getLogger(SignatureParser.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/StaticValuesParser.java b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/StaticValuesParser.java index 121163e1a..5f10bdd29 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/StaticValuesParser.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/StaticValuesParser.java @@ -1,14 +1,14 @@ package jadx.core.dex.nodes.parser; -import jadx.core.dex.nodes.DexNode; -import jadx.core.dex.nodes.FieldNode; -import jadx.core.utils.exceptions.DecodeException; - import java.util.List; import com.android.dex.Dex.Section; import com.android.dex.Leb128; +import jadx.core.dex.nodes.DexNode; +import jadx.core.dex.nodes.FieldNode; +import jadx.core.utils.exceptions.DecodeException; + public class StaticValuesParser extends EncValueParser { public StaticValuesParser(DexNode dex, Section in) { diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/AbstractRegion.java b/jadx-core/src/main/java/jadx/core/dex/regions/AbstractRegion.java index c1af10fe2..f74a4ec62 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/AbstractRegion.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/AbstractRegion.java @@ -1,12 +1,12 @@ package jadx.core.dex.regions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AttrNode; import jadx.core.dex.nodes.IContainer; import jadx.core.dex.nodes.IRegion; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public abstract class AbstractRegion extends AttrNode implements IRegion { private static final Logger LOG = LoggerFactory.getLogger(AbstractRegion.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/Region.java b/jadx-core/src/main/java/jadx/core/dex/regions/Region.java index e5c497106..a8da4ed09 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/Region.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/Region.java @@ -1,11 +1,11 @@ package jadx.core.dex.regions; -import jadx.core.dex.nodes.IContainer; -import jadx.core.dex.nodes.IRegion; - import java.util.ArrayList; import java.util.List; +import jadx.core.dex.nodes.IContainer; +import jadx.core.dex.nodes.IRegion; + public final class Region extends AbstractRegion { private final List blocks; diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/SwitchRegion.java b/jadx-core/src/main/java/jadx/core/dex/regions/SwitchRegion.java index 60ac7abe0..4bfb532e6 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/SwitchRegion.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/SwitchRegion.java @@ -1,14 +1,14 @@ package jadx.core.dex.regions; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.IBranchRegion; import jadx.core.dex.nodes.IContainer; import jadx.core.dex.nodes.IRegion; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - public final class SwitchRegion extends AbstractRegion implements IBranchRegion { private final BlockNode header; diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/SynchronizedRegion.java b/jadx-core/src/main/java/jadx/core/dex/regions/SynchronizedRegion.java index 596748731..345704280 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/SynchronizedRegion.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/SynchronizedRegion.java @@ -1,12 +1,12 @@ package jadx.core.dex.regions; +import java.util.LinkedList; +import java.util.List; + import jadx.core.dex.nodes.IContainer; import jadx.core.dex.nodes.IRegion; import jadx.core.dex.nodes.InsnNode; -import java.util.LinkedList; -import java.util.List; - public final class SynchronizedRegion extends AbstractRegion { private final InsnNode enterInsn; diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/TryCatchRegion.java b/jadx-core/src/main/java/jadx/core/dex/regions/TryCatchRegion.java index d6e205094..4a597b40f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/TryCatchRegion.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/TryCatchRegion.java @@ -1,5 +1,11 @@ package jadx.core.dex.regions; +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + import jadx.core.dex.nodes.IBranchRegion; import jadx.core.dex.nodes.IContainer; import jadx.core.dex.nodes.IRegion; @@ -7,12 +13,6 @@ import jadx.core.dex.trycatch.ExceptionHandler; import jadx.core.dex.trycatch.TryCatchBlock; import jadx.core.utils.Utils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - public final class TryCatchRegion extends AbstractRegion implements IBranchRegion { private final IContainer tryRegion; diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfCondition.java b/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfCondition.java index 17f8a5697..3a2a01fb3 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfCondition.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfCondition.java @@ -1,5 +1,12 @@ package jadx.core.dex.regions.conditions; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + import jadx.core.dex.instructions.IfNode; import jadx.core.dex.instructions.IfOp; import jadx.core.dex.instructions.InsnType; @@ -10,13 +17,6 @@ import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.InsnNode; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - public final class IfCondition { public enum Mode { diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfInfo.java b/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfInfo.java index ed3f8d725..b7df8e494 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfInfo.java @@ -1,10 +1,10 @@ package jadx.core.dex.regions.conditions; -import jadx.core.dex.nodes.BlockNode; - import java.util.HashSet; import java.util.Set; +import jadx.core.dex.nodes.BlockNode; + public final class IfInfo { private final IfCondition condition; private final Set mergedBlocks; diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfRegion.java b/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfRegion.java index 1f03561bc..e1a9b83fc 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfRegion.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/conditions/IfRegion.java @@ -1,5 +1,9 @@ package jadx.core.dex.regions.conditions; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.IBranchRegion; import jadx.core.dex.nodes.IContainer; @@ -7,10 +11,6 @@ import jadx.core.dex.nodes.IRegion; import jadx.core.dex.regions.AbstractRegion; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - public final class IfRegion extends AbstractRegion implements IBranchRegion { private final BlockNode header; diff --git a/jadx-core/src/main/java/jadx/core/dex/regions/loops/LoopRegion.java b/jadx-core/src/main/java/jadx/core/dex/regions/loops/LoopRegion.java index 073561e67..a10483139 100644 --- a/jadx-core/src/main/java/jadx/core/dex/regions/loops/LoopRegion.java +++ b/jadx-core/src/main/java/jadx/core/dex/regions/loops/LoopRegion.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.jetbrains.annotations.Nullable; + import jadx.core.dex.attributes.nodes.LoopInfo; import jadx.core.dex.instructions.IfNode; import jadx.core.dex.instructions.args.RegisterArg; @@ -13,7 +15,6 @@ import jadx.core.dex.nodes.IRegion; import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.regions.AbstractRegion; import jadx.core.dex.regions.conditions.IfCondition; -import org.jetbrains.annotations.Nullable; public final class LoopRegion extends AbstractRegion { diff --git a/jadx-core/src/main/java/jadx/core/dex/trycatch/ExceptionHandler.java b/jadx-core/src/main/java/jadx/core/dex/trycatch/ExceptionHandler.java index 9662a2d98..e59ae11e0 100644 --- a/jadx-core/src/main/java/jadx/core/dex/trycatch/ExceptionHandler.java +++ b/jadx-core/src/main/java/jadx/core/dex/trycatch/ExceptionHandler.java @@ -1,5 +1,8 @@ package jadx.core.dex.trycatch; +import java.util.ArrayList; +import java.util.List; + import jadx.core.Consts; import jadx.core.dex.info.ClassInfo; import jadx.core.dex.instructions.args.InsnArg; @@ -7,9 +10,6 @@ import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.IContainer; import jadx.core.utils.InsnUtils; -import java.util.ArrayList; -import java.util.List; - public class ExceptionHandler { private final ClassInfo catchType; diff --git a/jadx-core/src/main/java/jadx/core/dex/trycatch/TryCatchBlock.java b/jadx-core/src/main/java/jadx/core/dex/trycatch/TryCatchBlock.java index 795abe9f1..78154adf2 100644 --- a/jadx-core/src/main/java/jadx/core/dex/trycatch/TryCatchBlock.java +++ b/jadx-core/src/main/java/jadx/core/dex/trycatch/TryCatchBlock.java @@ -1,5 +1,10 @@ package jadx.core.dex.trycatch; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.info.ClassInfo; @@ -9,11 +14,6 @@ import jadx.core.dex.nodes.MethodNode; import jadx.core.utils.BlockUtils; import jadx.core.utils.Utils; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - public class TryCatchBlock { private final List handlers; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ClassModifier.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ClassModifier.java index 8b9b5e014..25949c454 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ClassModifier.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ClassModifier.java @@ -1,5 +1,7 @@ package jadx.core.dex.visitors; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.FieldReplaceAttr; @@ -22,8 +24,6 @@ import jadx.core.utils.BlockUtils; import jadx.core.utils.InstructionRemover; import jadx.core.utils.exceptions.JadxException; -import java.util.List; - @JadxVisitor( name = "ClassModifier", desc = "Remove synthetic classes, methods and fields", diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/CodeShrinker.java b/jadx-core/src/main/java/jadx/core/dex/visitors/CodeShrinker.java index a8f3c9763..b04275b66 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/CodeShrinker.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/CodeShrinker.java @@ -1,5 +1,12 @@ package jadx.core.dex.visitors; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.LinkedList; +import java.util.List; +import java.util.ListIterator; +import java.util.Set; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.instructions.InsnType; import jadx.core.dex.instructions.args.InsnArg; @@ -16,13 +23,6 @@ import jadx.core.utils.EmptyBitSet; import jadx.core.utils.InsnList; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.LinkedList; -import java.util.List; -import java.util.ListIterator; -import java.util.Set; - public class CodeShrinker extends AbstractVisitor { @Override diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ConstInlineVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ConstInlineVisitor.java index fe7aa078b..a82ba3909 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ConstInlineVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ConstInlineVisitor.java @@ -1,5 +1,8 @@ package jadx.core.dex.visitors; +import java.util.ArrayList; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.info.FieldInfo; import jadx.core.dex.instructions.IndexInsnNode; @@ -21,9 +24,6 @@ import jadx.core.dex.visitors.typeinference.PostTypeInference; import jadx.core.utils.InstructionRemover; import jadx.core.utils.exceptions.JadxException; -import java.util.ArrayList; -import java.util.List; - public class ConstInlineVisitor extends AbstractVisitor { @Override @@ -79,18 +79,19 @@ public class ConstInlineVisitor extends AbstractVisitor { private static boolean checkObjectInline(SSAVar sVar) { for (RegisterArg useArg : sVar.getUseList()) { InsnNode insn = useArg.getParentInsn(); - if (insn != null) { - InsnType insnType = insn.getType(); - if (insnType == InsnType.INVOKE) { - InvokeNode inv = (InvokeNode) insn; - if (inv.getInvokeType() != InvokeType.STATIC - && inv.getArg(0) == useArg) { - return true; - } - } else if (insnType == InsnType.ARRAY_LENGTH) { - if (insn.getArg(0) == useArg) { - return true; - } + if (insn == null) { + continue; + } + InsnType insnType = insn.getType(); + if (insnType == InsnType.INVOKE) { + InvokeNode inv = (InvokeNode) insn; + if (inv.getInvokeType() != InvokeType.STATIC + && inv.getArg(0) == useArg) { + return true; + } + } else if (insnType == InsnType.ARRAY_LENGTH) { + if (insn.getArg(0) == useArg) { + return true; } } } @@ -170,16 +171,16 @@ public class ConstInlineVisitor extends AbstractVisitor { insn.getArg(0).merge(dex, ((FieldInfo) node.getIndex()).getType()); break; - case IF: { - InsnArg arg0 = insn.getArg(0); - InsnArg arg1 = insn.getArg(1); - if (arg0 == litArg) { - arg0.merge(dex, arg1); + case IF: + InsnArg firstArg = insn.getArg(0); + InsnArg secondArg = insn.getArg(1); + if (firstArg == litArg) { + firstArg.merge(dex, secondArg); } else { - arg1.merge(dex, arg0); + secondArg.merge(dex, firstArg); } break; - } + case CMP_G: case CMP_L: InsnArg arg0 = insn.getArg(0); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/DebugInfoVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/DebugInfoVisitor.java index e7c69ef36..39eeb1a9d 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/DebugInfoVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/DebugInfoVisitor.java @@ -1,5 +1,8 @@ package jadx.core.dex.visitors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.instructions.args.RegisterArg; import jadx.core.dex.nodes.BlockNode; @@ -11,9 +14,6 @@ import jadx.core.utils.ErrorsCounter; import jadx.core.utils.exceptions.DecodeException; import jadx.core.utils.exceptions.JadxException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class DebugInfoVisitor extends AbstractVisitor { private static final Logger LOG = LoggerFactory.getLogger(DebugInfoVisitor.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java b/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java index 9440acdf1..558ef3fb4 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java @@ -1,5 +1,7 @@ package jadx.core.dex.visitors; +import java.util.Set; + import jadx.core.dex.attributes.AType; import jadx.core.dex.info.ClassInfo; import jadx.core.dex.info.FieldInfo; @@ -17,8 +19,6 @@ import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; import jadx.core.utils.exceptions.JadxException; -import java.util.Set; - public class DependencyCollector extends AbstractVisitor { @Override diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java index b78ac7c93..066fef748 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java @@ -1,5 +1,10 @@ package jadx.core.dex.visitors; +import java.io.File; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import jadx.core.codegen.CodeWriter; import jadx.core.codegen.MethodGen; import jadx.core.dex.attributes.IAttributeNode; @@ -18,11 +23,6 @@ import jadx.core.utils.RegionUtils; import jadx.core.utils.StringUtils; import jadx.core.utils.Utils; -import java.io.File; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - public class DotGraphVisitor extends AbstractVisitor { private static final String NL = "\\l"; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/EnumVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/EnumVisitor.java index 43c376be0..962b5a73f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/EnumVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/EnumVisitor.java @@ -1,5 +1,8 @@ package jadx.core.dex.visitors; +import java.util.ArrayList; +import java.util.List; + import jadx.core.codegen.TypeGen; import jadx.core.deobf.NameMapper; import jadx.core.dex.attributes.AFlag; @@ -24,19 +27,12 @@ import jadx.core.utils.ErrorsCounter; import jadx.core.utils.InsnUtils; import jadx.core.utils.exceptions.JadxException; -import java.util.ArrayList; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - @JadxVisitor( name = "EnumVisitor", desc = "Restore enum classes", runAfter = {CodeShrinker.class, ModVisitor.class} ) public class EnumVisitor extends AbstractVisitor { - private static final Logger LOG = LoggerFactory.getLogger(EnumVisitor.class); @Override public boolean visit(ClassNode cls) throws JadxException { @@ -178,9 +174,7 @@ public class EnumVisitor extends AbstractVisitor { private boolean isEnumArrayField(ClassInfo classInfo, FieldNode fieldNode) { if (fieldNode.getAccessFlags().isSynthetic()) { ArgType fType = fieldNode.getType(); - if (fType.isArray() && fType.getArrayRootElement().equals(classInfo.getType())) { - return true; - } + return fType.isArray() && fType.getArrayRootElement().equals(classInfo.getType()); } return false; } diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ExtractFieldInit.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ExtractFieldInit.java index 14ea83198..90e7db730 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ExtractFieldInit.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ExtractFieldInit.java @@ -1,5 +1,11 @@ package jadx.core.dex.visitors; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.info.AccessInfo; @@ -19,12 +25,6 @@ import jadx.core.utils.BlockUtils; import jadx.core.utils.InstructionRemover; import jadx.core.utils.exceptions.JadxException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - @JadxVisitor( name = "ExtractFieldInit", desc = "Move duplicated field initialization from constructors", diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/MethodInlineVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/MethodInlineVisitor.java index 7015488f1..ac60d783f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/MethodInlineVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/MethodInlineVisitor.java @@ -1,5 +1,7 @@ package jadx.core.dex.visitors; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.nodes.MethodInlineAttr; import jadx.core.dex.info.AccessInfo; @@ -12,8 +14,6 @@ import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; import jadx.core.utils.exceptions.JadxException; -import java.util.List; - /** * Inline synthetic methods. */ diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java index a80f435f5..f1530ee5d 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java @@ -1,5 +1,14 @@ package jadx.core.dex.visitors; +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.codegen.TypeGen; import jadx.core.deobf.NameMapper; import jadx.core.dex.attributes.AFlag; @@ -37,15 +46,6 @@ import jadx.core.utils.InsnUtils; import jadx.core.utils.InstructionRemover; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * Visitor for modify method instructions * (remove, replace, process exception handlers) diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/PrepareForCodeGen.java b/jadx-core/src/main/java/jadx/core/dex/visitors/PrepareForCodeGen.java index ba0421670..668057b1f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/PrepareForCodeGen.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/PrepareForCodeGen.java @@ -1,5 +1,8 @@ package jadx.core.dex.visitors; +import java.util.Iterator; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.instructions.ArithNode; import jadx.core.dex.instructions.ArithOp; @@ -13,9 +16,6 @@ import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; import jadx.core.utils.exceptions.JadxException; -import java.util.Iterator; -import java.util.List; - /** * Prepare instructions for code generation pass, * most of this modification breaks register dependencies, @@ -70,6 +70,9 @@ public class PrepareForCodeGen extends AbstractVisitor { it.remove(); } break; + + default: + break; } } } diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java index 02d867bcc..61fe299ba 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java @@ -9,13 +9,10 @@ import org.apache.commons.io.FilenameUtils; import jadx.api.JadxArgs; import jadx.core.Consts; -import jadx.core.codegen.TypeGen; import jadx.core.deobf.Deobfuscator; import jadx.core.dex.attributes.AFlag; import jadx.core.dex.info.ClassInfo; import jadx.core.dex.info.FieldInfo; -import jadx.core.dex.info.MethodInfo; -import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.nodes.ClassNode; import jadx.core.dex.nodes.DexNode; import jadx.core.dex.nodes.FieldNode; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/SimplifyVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/SimplifyVisitor.java index 8f397a496..d8a9ae95e 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/SimplifyVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/SimplifyVisitor.java @@ -1,5 +1,12 @@ package jadx.core.dex.visitors; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.Consts; import jadx.core.dex.info.FieldInfo; import jadx.core.dex.info.MethodInfo; @@ -22,13 +29,6 @@ import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; import jadx.core.dex.regions.conditions.IfCondition; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class SimplifyVisitor extends AbstractVisitor { private static final Logger LOG = LoggerFactory.getLogger(SimplifyVisitor.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockFinish.java b/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockFinish.java index 4ba544f28..9fb8b7ae2 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockFinish.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockFinish.java @@ -1,5 +1,12 @@ package jadx.core.dex.visitors.blocksmaker; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AType; import jadx.core.dex.instructions.IfNode; import jadx.core.dex.instructions.InsnType; @@ -11,13 +18,6 @@ import jadx.core.dex.trycatch.SplitterBlockAttr; import jadx.core.dex.visitors.AbstractVisitor; import jadx.core.utils.BlockUtils; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class BlockFinish extends AbstractVisitor { private static final Logger LOG = LoggerFactory.getLogger(BlockFinish.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockProcessor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockProcessor.java index ca6472158..31be3f415 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockProcessor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/BlockProcessor.java @@ -1,5 +1,13 @@ package jadx.core.dex.visitors.blocksmaker; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Iterator; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.LoopInfo; @@ -15,14 +23,6 @@ import jadx.core.dex.visitors.AbstractVisitor; import jadx.core.utils.BlockUtils; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.Iterator; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import static jadx.core.dex.visitors.blocksmaker.BlockSplitter.connect; import static jadx.core.dex.visitors.blocksmaker.BlockSplitter.removeConnection; import static jadx.core.utils.EmptyBitSet.EMPTY; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/helpers/BlocksRemoveInfo.java b/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/helpers/BlocksRemoveInfo.java index 6493c4935..a1bcac243 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/helpers/BlocksRemoveInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/blocksmaker/helpers/BlocksRemoveInfo.java @@ -1,8 +1,5 @@ package jadx.core.dex.visitors.blocksmaker.helpers; -import jadx.core.dex.instructions.args.RegisterArg; -import jadx.core.dex.nodes.BlockNode; - import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -10,6 +7,9 @@ import java.util.Set; import org.jetbrains.annotations.Nullable; +import jadx.core.dex.instructions.args.RegisterArg; +import jadx.core.dex.nodes.BlockNode; + public final class BlocksRemoveInfo { private final Set processed = new HashSet<>(); private final Set outs = new HashSet<>(); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CheckRegions.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CheckRegions.java index 277e9296c..e06ba237c 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CheckRegions.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CheckRegions.java @@ -1,5 +1,11 @@ package jadx.core.dex.visitors.regions; +import java.util.HashSet; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.nodes.BlockNode; @@ -11,12 +17,6 @@ import jadx.core.dex.visitors.AbstractVisitor; import jadx.core.utils.ErrorsCounter; import jadx.core.utils.exceptions.JadxException; -import java.util.HashSet; -import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class CheckRegions extends AbstractVisitor { private static final Logger LOG = LoggerFactory.getLogger(CheckRegions.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CleanRegions.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CleanRegions.java index 3ab15eae2..5ac99b6f4 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CleanRegions.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CleanRegions.java @@ -1,16 +1,16 @@ package jadx.core.dex.visitors.regions; +import java.util.Iterator; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.IContainer; import jadx.core.dex.nodes.IRegion; import jadx.core.dex.nodes.MethodNode; import jadx.core.dex.regions.Region; -import java.util.Iterator; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class CleanRegions { private static final Logger LOG = LoggerFactory.getLogger(CleanRegions.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfMakerHelper.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfMakerHelper.java index bf0977bd2..4ef80c231 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfMakerHelper.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfMakerHelper.java @@ -1,5 +1,12 @@ package jadx.core.dex.visitors.regions; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.LoopInfo; @@ -16,13 +23,6 @@ import jadx.core.dex.regions.conditions.IfInfo; import jadx.core.utils.BlockUtils; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.Collection; -import java.util.List; -import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import static jadx.core.dex.visitors.regions.RegionMaker.isEqualPaths; import static jadx.core.dex.visitors.regions.RegionMaker.isEqualReturnBlocks; import static jadx.core.utils.BlockUtils.getNextBlock; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfRegionVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfRegionVisitor.java index 0816c89ed..05b6940e8 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfRegionVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfRegionVisitor.java @@ -1,5 +1,7 @@ package jadx.core.dex.visitors.regions; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.nodes.IBlock; @@ -13,8 +15,6 @@ import jadx.core.dex.regions.conditions.IfRegion; import jadx.core.dex.visitors.AbstractVisitor; import jadx.core.utils.RegionUtils; -import java.util.List; - import static jadx.core.utils.RegionUtils.insnsCount; public class IfRegionVisitor extends AbstractVisitor implements IRegionVisitor, IRegionIterativeVisitor { diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java index 6e0878d23..fb4c32146 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java @@ -1,5 +1,11 @@ package jadx.core.dex.visitors.regions; +import java.util.LinkedList; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.info.MethodInfo; import jadx.core.dex.instructions.ArithNode; @@ -32,12 +38,6 @@ import jadx.core.utils.BlockUtils; import jadx.core.utils.InstructionRemover; import jadx.core.utils.RegionUtils; -import java.util.LinkedList; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class LoopRegionVisitor extends AbstractVisitor implements IRegionVisitor { private static final Logger LOG = LoggerFactory.getLogger(LoopRegionVisitor.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessTryCatchRegions.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessTryCatchRegions.java index 456967ab4..7e3075931 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessTryCatchRegions.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessTryCatchRegions.java @@ -1,5 +1,15 @@ package jadx.core.dex.visitors.regions; +import java.util.BitSet; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AType; import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.IBranchRegion; @@ -19,16 +29,6 @@ import jadx.core.utils.ErrorsCounter; import jadx.core.utils.RegionUtils; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.BitSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * Extract blocks to separate try/catch region */ diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java index 1c1e0f35e..bf185eb69 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java @@ -1,5 +1,18 @@ package jadx.core.dex.visitors.regions; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.DeclareVariablesAttr; @@ -20,19 +33,6 @@ import jadx.core.dex.visitors.AbstractVisitor; import jadx.core.utils.RegionUtils; import jadx.core.utils.exceptions.JadxException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class ProcessVariables extends AbstractVisitor { private static final Logger LOG = LoggerFactory.getLogger(ProcessVariables.class); @@ -72,7 +72,7 @@ public class ProcessVariables extends AbstractVisitor { private RegisterArg arg; private VarName varName; private IRegion argRegion; - private final Set usage = new LinkedHashSet<>(2); + private final Set uses = new LinkedHashSet<>(2); private final Set assigns = new LinkedHashSet<>(2); public void setArg(RegisterArg arg) { @@ -104,12 +104,12 @@ public class ProcessVariables extends AbstractVisitor { } public Set getUseRegions() { - return usage; + return uses; } @Override public String toString() { - return arg + ", a:" + assigns + ", u:" + usage; + return arg + ", a:" + assigns + ", u:" + uses; } } @@ -124,7 +124,7 @@ public class ProcessVariables extends AbstractVisitor { @Override public void processBlockTraced(MethodNode mth, IBlock container, IRegion curRegion) { - regionProcess(mth, curRegion); + regionProcess(curRegion); int len = container.getInstructions().size(); for (int i = 0; i < len; i++) { InsnNode insn = container.getInstructions().get(i); @@ -136,7 +136,7 @@ public class ProcessVariables extends AbstractVisitor { } } - private void regionProcess(MethodNode mth, IRegion region) { + private void regionProcess(IRegion region) { if (region instanceof LoopRegion) { LoopRegion loopRegion = (LoopRegion) region; LoopType loopType = loopRegion.getType(); @@ -221,11 +221,10 @@ public class ProcessVariables extends AbstractVisitor { // check if variable can be declared at current assigns for (IRegion assignRegion : u.getAssigns()) { if (u.getArgRegion() == assignRegion - && canDeclareInRegion(u, assignRegion, regionsOrder)) { - if (declareAtAssign(u)) { - it.remove(); - break; - } + && canDeclareInRegion(u, assignRegion, regionsOrder) + && declareAtAssign(u)) { + it.remove(); + break; } } } @@ -274,11 +273,7 @@ public class ProcessVariables extends AbstractVisitor { private static Usage addToUsageMap(RegisterArg arg, Map usageMap) { Variable varId = new Variable(arg); - Usage usage = usageMap.get(varId); - if (usage == null) { - usage = new Usage(); - usageMap.put(varId, usage); - } + Usage usage = usageMap.computeIfAbsent(varId, v -> new Usage()); // merge variables names if (usage.getVarName() == null) { VarName argVN = arg.getSVar().getVarName(); @@ -296,6 +291,9 @@ public class ProcessVariables extends AbstractVisitor { private static boolean declareAtAssign(Usage u) { RegisterArg arg = u.getArg(); InsnNode parentInsn = arg.getParentInsn(); + if (parentInsn == null) { + return false; + } if (!arg.equals(parentInsn.getResult())) { return false; } @@ -312,8 +310,7 @@ public class ProcessVariables extends AbstractVisitor { dv.addVar(arg); } - private static int calculateOrder(IContainer container, Map regionsOrder, - int id, boolean inc) { + private static int calculateOrder(IContainer container, Map regionsOrder, int id, boolean inc) { if (!(container instanceof IRegion)) { return id; } @@ -358,7 +355,7 @@ public class ProcessVariables extends AbstractVisitor { } private static boolean isAllRegionsAfter(IRegion region, int pos, - Set regions, Map regionsOrder) { + Set regions, Map regionsOrder) { for (IRegion r : regions) { if (r == region) { continue; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMaker.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMaker.java index 5f7494afc..5c1effdec 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMaker.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMaker.java @@ -1,5 +1,19 @@ package jadx.core.dex.visitors.regions; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.Consts; import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; @@ -34,20 +48,6 @@ import jadx.core.utils.RegionUtils; import jadx.core.utils.exceptions.JadxOverflowException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import static jadx.core.dex.visitors.regions.IfMakerHelper.confirmMerge; import static jadx.core.dex.visitors.regions.IfMakerHelper.makeIfInfo; import static jadx.core.dex.visitors.regions.IfMakerHelper.mergeNestedIfNodes; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java index 6ebdde162..09f7987e9 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java @@ -1,5 +1,14 @@ package jadx.core.dex.visitors.regions; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.EdgeInsnAttr; @@ -20,15 +29,6 @@ import jadx.core.utils.InstructionRemover; import jadx.core.utils.RegionUtils; import jadx.core.utils.exceptions.JadxException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * Pack blocks into regions for code generation */ diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionStack.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionStack.java index 8f97cc1f1..eaad5ddf2 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionStack.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionStack.java @@ -1,10 +1,5 @@ package jadx.core.dex.visitors.regions; -import jadx.core.dex.nodes.BlockNode; -import jadx.core.dex.nodes.IRegion; -import jadx.core.dex.nodes.MethodNode; -import jadx.core.utils.exceptions.JadxOverflowException; - import java.util.ArrayDeque; import java.util.Collection; import java.util.Deque; @@ -14,6 +9,11 @@ import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.core.dex.nodes.BlockNode; +import jadx.core.dex.nodes.IRegion; +import jadx.core.dex.nodes.MethodNode; +import jadx.core.utils.exceptions.JadxOverflowException; + final class RegionStack { private static final Logger LOG = LoggerFactory.getLogger(RegionStack.class); private static final boolean DEBUG = false; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ReturnVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ReturnVisitor.java index 0be8e8633..5fad69e3e 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ReturnVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ReturnVisitor.java @@ -1,5 +1,8 @@ package jadx.core.dex.visitors.regions; +import java.util.List; +import java.util.ListIterator; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.instructions.args.ArgType; import jadx.core.dex.nodes.BlockNode; @@ -15,9 +18,6 @@ import jadx.core.dex.visitors.AbstractVisitor; import jadx.core.utils.exceptions.JadxException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.List; -import java.util.ListIterator; - /** * Remove unnecessary return instructions for void methods */ diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/TernaryMod.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/TernaryMod.java index 12d5f6ad8..cd176a877 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/TernaryMod.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/TernaryMod.java @@ -1,5 +1,8 @@ package jadx.core.dex.visitors.regions; +import java.util.HashMap; +import java.util.Map; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.instructions.InsnType; import jadx.core.dex.instructions.PhiInsn; @@ -17,9 +20,6 @@ import jadx.core.dex.regions.conditions.IfRegion; import jadx.core.dex.visitors.CodeShrinker; import jadx.core.utils.InsnList; -import java.util.HashMap; -import java.util.Map; - public class TernaryMod { private TernaryMod() { diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/TracedRegionVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/TracedRegionVisitor.java index 7578b2b25..9d66c84d1 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/TracedRegionVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/TracedRegionVisitor.java @@ -1,12 +1,12 @@ package jadx.core.dex.visitors.regions; +import java.util.ArrayDeque; +import java.util.Deque; + import jadx.core.dex.nodes.IBlock; import jadx.core.dex.nodes.IRegion; import jadx.core.dex.nodes.MethodNode; -import java.util.ArrayDeque; -import java.util.Deque; - public abstract class TracedRegionVisitor implements IRegionVisitor { protected final Deque regionStack = new ArrayDeque<>(); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java index 20fccb790..3145e6d0b 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/EliminatePhiNodes.java @@ -1,5 +1,11 @@ package jadx.core.dex.visitors.ssa; +import java.util.Iterator; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.PhiListAttr; import jadx.core.dex.instructions.InsnType; @@ -14,12 +20,6 @@ import jadx.core.utils.BlockUtils; import jadx.core.utils.exceptions.JadxException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.Iterator; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class EliminatePhiNodes extends AbstractVisitor { private static final Logger LOG = LoggerFactory.getLogger(EliminatePhiNodes.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/LiveVarAnalysis.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/LiveVarAnalysis.java index b1caee067..ef1637a95 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/LiveVarAnalysis.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/LiveVarAnalysis.java @@ -1,5 +1,11 @@ package jadx.core.dex.visitors.ssa; +import java.util.BitSet; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.instructions.args.RegisterArg; import jadx.core.dex.nodes.BlockNode; @@ -7,12 +13,6 @@ import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.BitSet; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class LiveVarAnalysis { private static final Logger LOG = LoggerFactory.getLogger(LiveVarAnalysis.class); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java index 5e9dd61f1..46207b77c 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java @@ -1,5 +1,13 @@ package jadx.core.dex.visitors.ssa; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.BitSet; +import java.util.Deque; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.PhiListAttr; @@ -8,7 +16,6 @@ import jadx.core.dex.instructions.PhiInsn; import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.instructions.args.RegisterArg; import jadx.core.dex.instructions.args.SSAVar; -import jadx.core.dex.instructions.args.VarName; import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; @@ -20,14 +27,6 @@ import jadx.core.utils.InstructionRemover; import jadx.core.utils.exceptions.JadxException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.BitSet; -import java.util.Deque; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - @JadxVisitor( name = "SSATransform", desc = "Calculate Single Side Assign (SSA) variables", diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/PostTypeInference.java b/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/PostTypeInference.java index 15a15b3a8..5b81ce8a3 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/PostTypeInference.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/PostTypeInference.java @@ -1,5 +1,7 @@ package jadx.core.dex.visitors.typeinference; +import java.util.List; + import jadx.core.dex.info.MethodInfo; import jadx.core.dex.instructions.IndexInsnNode; import jadx.core.dex.instructions.InvokeNode; @@ -11,8 +13,6 @@ import jadx.core.dex.nodes.DexNode; import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; -import java.util.List; - public class PostTypeInference { private PostTypeInference() { diff --git a/jadx-core/src/main/java/jadx/core/export/ExportGradleProject.java b/jadx-core/src/main/java/jadx/core/export/ExportGradleProject.java index e951b0ed5..522ecbc6b 100644 --- a/jadx-core/src/main/java/jadx/core/export/ExportGradleProject.java +++ b/jadx-core/src/main/java/jadx/core/export/ExportGradleProject.java @@ -1,12 +1,5 @@ package jadx.core.export; -import jadx.core.dex.attributes.AFlag; -import jadx.core.dex.nodes.ClassNode; -import jadx.core.dex.nodes.DexNode; -import jadx.core.dex.nodes.RootNode; -import jadx.core.utils.exceptions.JadxRuntimeException; -import jadx.core.utils.files.FileUtils; - import java.io.File; import java.io.IOException; import java.util.Arrays; @@ -17,6 +10,13 @@ import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.core.dex.attributes.AFlag; +import jadx.core.dex.nodes.ClassNode; +import jadx.core.dex.nodes.DexNode; +import jadx.core.dex.nodes.RootNode; +import jadx.core.utils.exceptions.JadxRuntimeException; +import jadx.core.utils.files.FileUtils; + public class ExportGradleProject { private static final Logger LOG = LoggerFactory.getLogger(ExportGradleProject.class); diff --git a/jadx-core/src/main/java/jadx/core/export/TemplateFile.java b/jadx-core/src/main/java/jadx/core/export/TemplateFile.java index 6ea05cb9f..e93a02a6c 100644 --- a/jadx-core/src/main/java/jadx/core/export/TemplateFile.java +++ b/jadx-core/src/main/java/jadx/core/export/TemplateFile.java @@ -1,7 +1,5 @@ package jadx.core.export; -import jadx.core.utils.exceptions.JadxRuntimeException; - import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -16,6 +14,8 @@ import java.util.Map; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import jadx.core.utils.exceptions.JadxRuntimeException; + import static jadx.core.utils.files.FileUtils.close; /** diff --git a/jadx-core/src/main/java/jadx/core/utils/BlockUtils.java b/jadx-core/src/main/java/jadx/core/utils/BlockUtils.java index 8ea0e8e8e..cc62293a8 100644 --- a/jadx-core/src/main/java/jadx/core/utils/BlockUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/BlockUtils.java @@ -1,5 +1,16 @@ package jadx.core.utils; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +import org.jetbrains.annotations.Nullable; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.nodes.IgnoreEdgeAttr; @@ -17,17 +28,6 @@ import jadx.core.dex.nodes.MethodNode; import jadx.core.dex.regions.conditions.IfCondition; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -import org.jetbrains.annotations.Nullable; - public class BlockUtils { private BlockUtils() { diff --git a/jadx-core/src/main/java/jadx/core/utils/DebugUtils.java b/jadx-core/src/main/java/jadx/core/utils/DebugUtils.java index 819957053..b7ae061b9 100644 --- a/jadx-core/src/main/java/jadx/core/utils/DebugUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/DebugUtils.java @@ -1,5 +1,14 @@ package jadx.core.utils; +import java.io.File; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.codegen.CodeWriter; import jadx.core.codegen.InsnGen; import jadx.core.codegen.MethodGen; @@ -22,15 +31,6 @@ import jadx.core.dex.visitors.regions.TracedRegionVisitor; import jadx.core.utils.exceptions.CodegenException; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.io.File; -import java.util.ArrayList; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - @Deprecated public class DebugUtils { private static final Logger LOG = LoggerFactory.getLogger(DebugUtils.class); diff --git a/jadx-core/src/main/java/jadx/core/utils/InsnList.java b/jadx-core/src/main/java/jadx/core/utils/InsnList.java index 5c8612f68..584d8d7e4 100644 --- a/jadx-core/src/main/java/jadx/core/utils/InsnList.java +++ b/jadx-core/src/main/java/jadx/core/utils/InsnList.java @@ -1,11 +1,11 @@ package jadx.core.utils; -import jadx.core.dex.nodes.BlockNode; -import jadx.core.dex.nodes.InsnNode; - import java.util.Iterator; import java.util.List; +import jadx.core.dex.nodes.BlockNode; +import jadx.core.dex.nodes.InsnNode; + public final class InsnList implements Iterable { private final List list; diff --git a/jadx-core/src/main/java/jadx/core/utils/InsnUtils.java b/jadx-core/src/main/java/jadx/core/utils/InsnUtils.java index d079f046c..4d9494964 100644 --- a/jadx-core/src/main/java/jadx/core/utils/InsnUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/InsnUtils.java @@ -1,5 +1,10 @@ package jadx.core.utils; +import com.android.dx.io.instructions.DecodedInstruction; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import jadx.core.dex.attributes.AType; import jadx.core.dex.info.FieldInfo; import jadx.core.dex.instructions.ConstClassNode; @@ -12,12 +17,6 @@ import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.parser.FieldInitAttr; import jadx.core.utils.exceptions.JadxRuntimeException; -import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.android.dx.io.instructions.DecodedInstruction; - public class InsnUtils { private static final Logger LOG = LoggerFactory.getLogger(InsnUtils.class); diff --git a/jadx-core/src/main/java/jadx/core/utils/InstructionRemover.java b/jadx-core/src/main/java/jadx/core/utils/InstructionRemover.java index 5db488ecc..7097bec7b 100644 --- a/jadx-core/src/main/java/jadx/core/utils/InstructionRemover.java +++ b/jadx-core/src/main/java/jadx/core/utils/InstructionRemover.java @@ -1,5 +1,9 @@ package jadx.core.utils; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + import jadx.core.dex.attributes.AFlag; import jadx.core.dex.instructions.InsnType; import jadx.core.dex.instructions.PhiInsn; @@ -11,21 +15,12 @@ import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * Helper class for correct instructions removing, * can be used while iterating over instructions list */ public class InstructionRemover { - private static final Logger LOG = LoggerFactory.getLogger(InstructionRemover.class); - private final MethodNode mth; private final List toRemove; private List instrList; @@ -159,5 +154,4 @@ public class InstructionRemover { unbindInsn(mth, instructions.get(index)); instructions.remove(index); } - } diff --git a/jadx-core/src/main/java/jadx/core/utils/RegionUtils.java b/jadx-core/src/main/java/jadx/core/utils/RegionUtils.java index beabc1685..f4a9b5d0a 100644 --- a/jadx-core/src/main/java/jadx/core/utils/RegionUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/RegionUtils.java @@ -1,5 +1,10 @@ package jadx.core.utils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + import jadx.core.dex.attributes.AType; import jadx.core.dex.instructions.InsnType; import jadx.core.dex.nodes.BlockNode; @@ -13,11 +18,6 @@ import jadx.core.dex.trycatch.ExceptionHandler; import jadx.core.dex.trycatch.TryCatchBlock; import jadx.core.utils.exceptions.JadxRuntimeException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; - public class RegionUtils { private RegionUtils() { diff --git a/jadx-core/src/main/java/jadx/core/utils/files/FileUtils.java b/jadx-core/src/main/java/jadx/core/utils/files/FileUtils.java index b78b5a8d9..d117bc88c 100644 --- a/jadx-core/src/main/java/jadx/core/utils/files/FileUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/files/FileUtils.java @@ -9,7 +9,6 @@ import java.io.InputStream; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.attribute.FileAttribute; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; @@ -233,5 +232,4 @@ public class FileUtils { } return new File(path); } - } diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ManifestAttributes.java b/jadx-core/src/main/java/jadx/core/xmlgen/ManifestAttributes.java index 1ad467a5b..09a2ddadb 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ManifestAttributes.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ManifestAttributes.java @@ -1,7 +1,5 @@ package jadx.core.xmlgen; -import jadx.core.utils.exceptions.JadxRuntimeException; - import javax.xml.parsers.DocumentBuilder; import java.io.InputStream; import java.util.HashMap; @@ -15,6 +13,8 @@ import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import jadx.core.utils.exceptions.JadxRuntimeException; + public class ManifestAttributes { private static final Logger LOG = LoggerFactory.getLogger(ManifestAttributes.class); diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java index 9b4f560cf..e3f94c0a5 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java @@ -1,12 +1,5 @@ package jadx.core.xmlgen; -import jadx.core.codegen.CodeWriter; -import jadx.core.xmlgen.entry.EntryConfig; -import jadx.core.xmlgen.entry.RawNamedValue; -import jadx.core.xmlgen.entry.RawValue; -import jadx.core.xmlgen.entry.ResourceEntry; -import jadx.core.xmlgen.entry.ValuesParser; - import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -15,6 +8,13 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.core.codegen.CodeWriter; +import jadx.core.xmlgen.entry.EntryConfig; +import jadx.core.xmlgen.entry.RawNamedValue; +import jadx.core.xmlgen.entry.RawValue; +import jadx.core.xmlgen.entry.ResourceEntry; +import jadx.core.xmlgen.entry.ValuesParser; + public class ResTableParser extends CommonBinaryParser { private static final Logger LOG = LoggerFactory.getLogger(ResTableParser.class); diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java index 50d4cde60..68a8773a4 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java @@ -1,13 +1,20 @@ package jadx.core.xmlgen; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + import jadx.core.codegen.CodeWriter; import jadx.core.utils.StringUtils; import jadx.core.xmlgen.entry.RawNamedValue; import jadx.core.xmlgen.entry.ResourceEntry; import jadx.core.xmlgen.entry.ValuesParser; -import java.util.*; - public class ResXmlGen { private static final Set SKIP_RES_TYPES = new HashSet<>(Arrays.asList( @@ -121,7 +128,6 @@ public class ResXmlGen { return s.substring(1); } - private void addItem(CodeWriter cw, String itemTag, String typeName, RawNamedValue value) { String nameStr = vp.decodeNameRef(value.getNameRef()); String valueStr = vp.decodeValue(value.getRawValue()); @@ -136,7 +142,8 @@ public class ResXmlGen { if (newVal != null) { valueStr = newVal; } - } catch (NumberFormatException ignored) { + } catch (NumberFormatException e) { + // ignore } } } diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResourcesSaver.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResourcesSaver.java index 57936d8fb..2675caf74 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResourcesSaver.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResourcesSaver.java @@ -1,9 +1,5 @@ package jadx.core.xmlgen; -import jadx.api.ResourceFile; -import jadx.api.ResourceType; -import jadx.core.codegen.CodeWriter; - import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; @@ -14,6 +10,10 @@ import org.apache.commons.io.FilenameUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jadx.api.ResourceFile; +import jadx.api.ResourceType; +import jadx.core.codegen.CodeWriter; + import static jadx.core.utils.files.FileUtils.prepareFile; public class ResourcesSaver implements Runnable {