From 0c4d46ead53f39fff6fd699c420760289712e3ea Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 21 Aug 2022 20:55:31 +0100 Subject: [PATCH] refactor: move plugins-api module into jadx-core --- jadx-core/build.gradle | 2 -- .../main/java/jadx/api/JadxDecompiler.java | 3 +-- .../main/java/jadx/api/data}/IRenameNode.java | 2 +- .../api/impl/plugins/SimplePluginContext.java | 6 +++++ .../java/jadx/api/plugins/JadxPlugin.java | 0 .../jadx/api/plugins/JadxPluginContext.java | 7 ++++-- .../java/jadx/api/plugins/JadxPluginInfo.java | 0 .../jadx/api/plugins/JadxPluginManager.java | 0 .../jadx/api/plugins/gui/JadxGuiContext.java | 0 .../api/plugins/input/JadxInputPlugin.java | 0 .../api/plugins/input/data/AccessFlags.java | 0 .../plugins/input/data/AccessFlagsScope.java | 0 .../api/plugins/input/data/ICallSite.java | 0 .../jadx/api/plugins/input/data/ICatch.java | 0 .../api/plugins/input/data/IClassData.java | 0 .../api/plugins/input/data/ICodeReader.java | 0 .../api/plugins/input/data/IDebugInfo.java | 0 .../api/plugins/input/data/IFieldData.java | 0 .../api/plugins/input/data/IFieldRef.java | 0 .../api/plugins/input/data/ILoadResult.java | 0 .../api/plugins/input/data/ILocalVar.java | 0 .../api/plugins/input/data/IMethodData.java | 0 .../api/plugins/input/data/IMethodHandle.java | 0 .../api/plugins/input/data/IMethodProto.java | 0 .../api/plugins/input/data/IMethodRef.java | 0 .../api/plugins/input/data/IResourceData.java | 0 .../api/plugins/input/data/ISeqConsumer.java | 0 .../jadx/api/plugins/input/data/ITry.java | 0 .../plugins/input/data/MethodHandleType.java | 0 .../annotations/AnnotationVisibility.java | 0 .../input/data/annotations/EncodedType.java | 0 .../input/data/annotations/EncodedValue.java | 0 .../input/data/annotations/IAnnotation.java | 0 .../data/annotations/JadxAnnotation.java | 0 .../input/data/attributes/IJadxAttrType.java | 0 .../input/data/attributes/IJadxAttribute.java | 0 .../input/data/attributes/JadxAttrType.java | 0 .../data/attributes/PinnedAttribute.java | 0 .../types/AnnotationDefaultAttr.java | 0 .../types/AnnotationDefaultClassAttr.java | 0 .../types/AnnotationMethodParamsAttr.java | 0 .../attributes/types/AnnotationsAttr.java | 0 .../data/attributes/types/ExceptionsAttr.java | 0 .../attributes/types/InnerClassesAttr.java | 0 .../data/attributes/types/InnerClsInfo.java | 0 .../types/MethodParametersAttr.java | 0 .../data/attributes/types/SignatureAttr.java | 0 .../data/attributes/types/SourceFileAttr.java | 0 .../api/plugins/input/data/impl/CallSite.java | 0 .../plugins/input/data/impl/CatchData.java | 0 .../plugins/input/data/impl/DebugInfo.java | 0 .../input/data/impl/EmptyLoadResult.java | 0 .../input/data/impl/FieldRefHandle.java | 0 .../plugins/input/data/impl/JadxFieldRef.java | 0 .../plugins/input/data/impl/ListConsumer.java | 0 .../input/data/impl/MethodRefHandle.java | 0 .../api/plugins/input/data/impl/TryData.java | 0 .../api/plugins/input/insns/InsnData.java | 0 .../plugins/input/insns/InsnIndexType.java | 0 .../jadx/api/plugins/input/insns/Opcode.java | 0 .../input/insns/custom/IArrayPayload.java | 0 .../input/insns/custom/ICustomPayload.java | 0 .../input/insns/custom/ISwitchPayload.java | 0 .../insns/custom/impl/SwitchPayload.java | 0 .../plugins/options/JadxPluginOptions.java | 0 .../plugins/options/OptionDescription.java | 0 .../options/impl/BaseOptionsParser.java | 0 .../options/impl/JadxOptionDescription.java | 0 .../java/jadx/api/plugins/pass/JadxPass.java | 0 .../api/plugins/pass/JadxPassContext.java | 0 .../jadx/api/plugins/pass/JadxPassInfo.java | 0 .../pass/impl/OrderedJadxPassInfo.java | 0 .../plugins/pass/impl/SimpleJadxPassInfo.java | 0 .../plugins/pass/types/JadxAfterLoadPass.java | 4 ++-- .../plugins/pass/types/JadxDecompilePass.java | 12 +++++----- .../api/plugins/pass/types/JadxPassType.java | 0 .../plugins/pass/types/JadxPreparePass.java | 4 ++-- .../api/plugins/utils/CommonFileUtils.java | 0 .../api/plugins/utils/LimitedInputStream.java | 0 .../java/jadx/api/plugins/utils/Utils.java | 0 .../jadx/api/plugins/utils/ZipSecurity.java | 0 .../java/jadx/core/dex/nodes/ClassNode.java | 3 +-- .../java/jadx/core/dex/nodes/IDexNode.java | 2 +- .../java/jadx/core/dex/nodes/MethodNode.java | 4 +--- .../java/jadx/core/dex/nodes/RootNode.java | 3 +-- jadx-plugins/jadx-dex-input/build.gradle | 2 +- jadx-plugins/jadx-java-convert/build.gradle | 2 +- jadx-plugins/jadx-java-input/build.gradle | 2 +- jadx-plugins/jadx-plugins-api/build.gradle | 3 --- .../java/jadx/api/core/nodes/IClassNode.java | 4 ---- .../jadx/api/core/nodes/IJadxDecompiler.java | 4 ---- .../java/jadx/api/core/nodes/IMethodNode.java | 4 ---- .../java/jadx/api/core/nodes/IRootNode.java | 4 ---- jadx-plugins/jadx-raung-input/build.gradle | 2 +- .../mappings/load/CodeMappingsVisitor.java | 11 +++------- .../mappings/load/MappingsVisitor.java | 4 +--- .../jadx-script-plugin/build.gradle.kts | 2 ++ .../script/passes/JadxScriptAfterLoadPass.kt | 4 ++-- .../jadx-script-runtime/build.gradle.kts | 5 ++--- .../jadx/plugins/script/runtime/data/debug.kt | 9 ++++---- .../plugins/script/runtime/data/rename.kt | 8 +++---- .../plugins/script/runtime/data/stages.kt | 22 ++++++++----------- .../plugins/script/runtime/data/wrappers.kt | 22 +++++++++---------- jadx-plugins/jadx-smali-input/build.gradle | 2 +- settings.gradle.kts | 1 - 105 files changed, 69 insertions(+), 100 deletions(-) rename {jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes => jadx-core/src/main/java/jadx/api/data}/IRenameNode.java (69%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/JadxPlugin.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/JadxPluginContext.java (71%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/JadxPluginInfo.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/JadxPluginManager.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/gui/JadxGuiContext.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/JadxInputPlugin.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/AccessFlags.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/AccessFlagsScope.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/ICallSite.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/ICatch.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IClassData.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/ICodeReader.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IDebugInfo.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IFieldData.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IFieldRef.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/ILoadResult.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/ILocalVar.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IMethodData.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IMethodHandle.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IMethodProto.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IMethodRef.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/IResourceData.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/ISeqConsumer.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/ITry.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/MethodHandleType.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/annotations/AnnotationVisibility.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/annotations/EncodedType.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/annotations/EncodedValue.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/annotations/IAnnotation.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/annotations/JadxAnnotation.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttrType.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttribute.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/JadxAttrType.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/PinnedAttribute.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultClassAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationMethodParamsAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationsAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/ExceptionsAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClassesAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClsInfo.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/MethodParametersAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/SignatureAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/attributes/types/SourceFileAttr.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/CallSite.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/CatchData.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/DebugInfo.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/EmptyLoadResult.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/FieldRefHandle.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/JadxFieldRef.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/ListConsumer.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/MethodRefHandle.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/data/impl/TryData.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/insns/InsnData.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/insns/InsnIndexType.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/insns/Opcode.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/insns/custom/IArrayPayload.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/insns/custom/ICustomPayload.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/insns/custom/ISwitchPayload.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/input/insns/custom/impl/SwitchPayload.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/options/JadxPluginOptions.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/options/OptionDescription.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/options/impl/BaseOptionsParser.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/options/impl/JadxOptionDescription.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/JadxPass.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/JadxPassContext.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/JadxPassInfo.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/impl/OrderedJadxPassInfo.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/impl/SimpleJadxPassInfo.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java (76%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java (65%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/types/JadxPassType.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java (79%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/utils/CommonFileUtils.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/utils/LimitedInputStream.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/utils/Utils.java (100%) rename {jadx-plugins/jadx-plugins-api => jadx-core}/src/main/java/jadx/api/plugins/utils/ZipSecurity.java (100%) delete mode 100644 jadx-plugins/jadx-plugins-api/build.gradle delete mode 100644 jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IClassNode.java delete mode 100644 jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IJadxDecompiler.java delete mode 100644 jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IMethodNode.java delete mode 100644 jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRootNode.java diff --git a/jadx-core/build.gradle b/jadx-core/build.gradle index a05f7688b..167f090db 100644 --- a/jadx-core/build.gradle +++ b/jadx-core/build.gradle @@ -3,8 +3,6 @@ plugins { } dependencies { - api(project(':jadx-plugins:jadx-plugins-api')) - implementation 'com.google.code.gson:gson:2.10.1' // TODO: move resources decoding to separate plugin module diff --git a/jadx-core/src/main/java/jadx/api/JadxDecompiler.java b/jadx-core/src/main/java/jadx/api/JadxDecompiler.java index efd44b964..01ab230db 100644 --- a/jadx-core/src/main/java/jadx/api/JadxDecompiler.java +++ b/jadx-core/src/main/java/jadx/api/JadxDecompiler.java @@ -23,7 +23,6 @@ import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import jadx.api.core.nodes.IJadxDecompiler; import jadx.api.impl.plugins.SimplePluginContext; import jadx.api.metadata.ICodeAnnotation; import jadx.api.metadata.ICodeNodeRef; @@ -84,7 +83,7 @@ import jadx.core.xmlgen.ResourcesSaver; * * */ -public final class JadxDecompiler implements IJadxDecompiler, Closeable { +public final class JadxDecompiler implements Closeable { private static final Logger LOG = LoggerFactory.getLogger(JadxDecompiler.class); private final JadxArgs args; diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRenameNode.java b/jadx-core/src/main/java/jadx/api/data/IRenameNode.java similarity index 69% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRenameNode.java rename to jadx-core/src/main/java/jadx/api/data/IRenameNode.java index ee454928a..99bb54326 100644 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRenameNode.java +++ b/jadx-core/src/main/java/jadx/api/data/IRenameNode.java @@ -1,4 +1,4 @@ -package jadx.api.core.nodes; +package jadx.api.data; public interface IRenameNode { diff --git a/jadx-core/src/main/java/jadx/api/impl/plugins/SimplePluginContext.java b/jadx-core/src/main/java/jadx/api/impl/plugins/SimplePluginContext.java index a11c6645d..38940e1ed 100644 --- a/jadx-core/src/main/java/jadx/api/impl/plugins/SimplePluginContext.java +++ b/jadx-core/src/main/java/jadx/api/impl/plugins/SimplePluginContext.java @@ -2,6 +2,7 @@ package jadx.api.impl.plugins; import org.jetbrains.annotations.Nullable; +import jadx.api.JadxArgs; import jadx.api.JadxDecompiler; import jadx.api.plugins.JadxPluginContext; import jadx.api.plugins.gui.JadxGuiContext; @@ -18,6 +19,11 @@ public class SimplePluginContext implements JadxPluginContext { this.passContext = new SimplePassContext(decompiler); } + @Override + public JadxArgs getArgs() { + return decompiler.getArgs(); + } + @Override public JadxDecompiler getDecompiler() { return decompiler; diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPlugin.java b/jadx-core/src/main/java/jadx/api/plugins/JadxPlugin.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPlugin.java rename to jadx-core/src/main/java/jadx/api/plugins/JadxPlugin.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginContext.java b/jadx-core/src/main/java/jadx/api/plugins/JadxPluginContext.java similarity index 71% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginContext.java rename to jadx-core/src/main/java/jadx/api/plugins/JadxPluginContext.java index 835644282..ebbf48883 100644 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginContext.java +++ b/jadx-core/src/main/java/jadx/api/plugins/JadxPluginContext.java @@ -2,13 +2,16 @@ package jadx.api.plugins; import org.jetbrains.annotations.Nullable; -import jadx.api.core.nodes.IJadxDecompiler; +import jadx.api.JadxArgs; +import jadx.api.JadxDecompiler; import jadx.api.plugins.gui.JadxGuiContext; import jadx.api.plugins.pass.JadxPassContext; public interface JadxPluginContext { - IJadxDecompiler getDecompiler(); + JadxArgs getArgs(); + + JadxDecompiler getDecompiler(); JadxPassContext getPassContext(); diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginInfo.java b/jadx-core/src/main/java/jadx/api/plugins/JadxPluginInfo.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginInfo.java rename to jadx-core/src/main/java/jadx/api/plugins/JadxPluginInfo.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginManager.java b/jadx-core/src/main/java/jadx/api/plugins/JadxPluginManager.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginManager.java rename to jadx-core/src/main/java/jadx/api/plugins/JadxPluginManager.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/gui/JadxGuiContext.java b/jadx-core/src/main/java/jadx/api/plugins/gui/JadxGuiContext.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/gui/JadxGuiContext.java rename to jadx-core/src/main/java/jadx/api/plugins/gui/JadxGuiContext.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/JadxInputPlugin.java b/jadx-core/src/main/java/jadx/api/plugins/input/JadxInputPlugin.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/JadxInputPlugin.java rename to jadx-core/src/main/java/jadx/api/plugins/input/JadxInputPlugin.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/AccessFlags.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/AccessFlags.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/AccessFlags.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/AccessFlags.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/AccessFlagsScope.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/AccessFlagsScope.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/AccessFlagsScope.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/AccessFlagsScope.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICallSite.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/ICallSite.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICallSite.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/ICallSite.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICatch.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/ICatch.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICatch.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/ICatch.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IClassData.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IClassData.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IClassData.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IClassData.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICodeReader.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/ICodeReader.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICodeReader.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/ICodeReader.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IDebugInfo.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IDebugInfo.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IDebugInfo.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IDebugInfo.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IFieldData.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IFieldData.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IFieldData.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IFieldData.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IFieldRef.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IFieldRef.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IFieldRef.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IFieldRef.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ILoadResult.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/ILoadResult.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ILoadResult.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/ILoadResult.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ILocalVar.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/ILocalVar.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ILocalVar.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/ILocalVar.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodData.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodData.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodData.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodData.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodHandle.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodHandle.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodHandle.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodHandle.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodProto.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodProto.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodProto.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodProto.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodRef.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodRef.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodRef.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodRef.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IResourceData.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/IResourceData.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IResourceData.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/IResourceData.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ISeqConsumer.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/ISeqConsumer.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ISeqConsumer.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/ISeqConsumer.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ITry.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/ITry.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ITry.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/ITry.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/MethodHandleType.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/MethodHandleType.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/MethodHandleType.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/MethodHandleType.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/AnnotationVisibility.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/AnnotationVisibility.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/AnnotationVisibility.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/AnnotationVisibility.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/EncodedType.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/EncodedType.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/EncodedType.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/EncodedType.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/EncodedValue.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/EncodedValue.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/EncodedValue.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/EncodedValue.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/IAnnotation.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/IAnnotation.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/IAnnotation.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/IAnnotation.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/JadxAnnotation.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/JadxAnnotation.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/JadxAnnotation.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/JadxAnnotation.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttrType.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttrType.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttrType.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttrType.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttribute.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttribute.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttribute.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttribute.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/JadxAttrType.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/JadxAttrType.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/JadxAttrType.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/JadxAttrType.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/PinnedAttribute.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/PinnedAttribute.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/PinnedAttribute.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/PinnedAttribute.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultClassAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultClassAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultClassAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultClassAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationMethodParamsAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationMethodParamsAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationMethodParamsAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationMethodParamsAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationsAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationsAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationsAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationsAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/ExceptionsAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/ExceptionsAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/ExceptionsAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/ExceptionsAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClassesAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClassesAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClassesAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClassesAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClsInfo.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClsInfo.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClsInfo.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClsInfo.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/MethodParametersAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/MethodParametersAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/MethodParametersAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/MethodParametersAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/SignatureAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/SignatureAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/SignatureAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/SignatureAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/SourceFileAttr.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/SourceFileAttr.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/SourceFileAttr.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/SourceFileAttr.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/CallSite.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/CallSite.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/CallSite.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/CallSite.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/CatchData.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/CatchData.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/CatchData.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/CatchData.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/DebugInfo.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/DebugInfo.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/DebugInfo.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/DebugInfo.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/EmptyLoadResult.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/EmptyLoadResult.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/EmptyLoadResult.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/EmptyLoadResult.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/FieldRefHandle.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/FieldRefHandle.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/FieldRefHandle.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/FieldRefHandle.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/JadxFieldRef.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/JadxFieldRef.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/JadxFieldRef.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/JadxFieldRef.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/ListConsumer.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/ListConsumer.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/ListConsumer.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/ListConsumer.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/MethodRefHandle.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/MethodRefHandle.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/MethodRefHandle.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/MethodRefHandle.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/TryData.java b/jadx-core/src/main/java/jadx/api/plugins/input/data/impl/TryData.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/TryData.java rename to jadx-core/src/main/java/jadx/api/plugins/input/data/impl/TryData.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/InsnData.java b/jadx-core/src/main/java/jadx/api/plugins/input/insns/InsnData.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/InsnData.java rename to jadx-core/src/main/java/jadx/api/plugins/input/insns/InsnData.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/InsnIndexType.java b/jadx-core/src/main/java/jadx/api/plugins/input/insns/InsnIndexType.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/InsnIndexType.java rename to jadx-core/src/main/java/jadx/api/plugins/input/insns/InsnIndexType.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/Opcode.java b/jadx-core/src/main/java/jadx/api/plugins/input/insns/Opcode.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/Opcode.java rename to jadx-core/src/main/java/jadx/api/plugins/input/insns/Opcode.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/IArrayPayload.java b/jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/IArrayPayload.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/IArrayPayload.java rename to jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/IArrayPayload.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/ICustomPayload.java b/jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/ICustomPayload.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/ICustomPayload.java rename to jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/ICustomPayload.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/ISwitchPayload.java b/jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/ISwitchPayload.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/ISwitchPayload.java rename to jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/ISwitchPayload.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/impl/SwitchPayload.java b/jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/impl/SwitchPayload.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/impl/SwitchPayload.java rename to jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/impl/SwitchPayload.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/JadxPluginOptions.java b/jadx-core/src/main/java/jadx/api/plugins/options/JadxPluginOptions.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/JadxPluginOptions.java rename to jadx-core/src/main/java/jadx/api/plugins/options/JadxPluginOptions.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/OptionDescription.java b/jadx-core/src/main/java/jadx/api/plugins/options/OptionDescription.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/OptionDescription.java rename to jadx-core/src/main/java/jadx/api/plugins/options/OptionDescription.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/impl/BaseOptionsParser.java b/jadx-core/src/main/java/jadx/api/plugins/options/impl/BaseOptionsParser.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/impl/BaseOptionsParser.java rename to jadx-core/src/main/java/jadx/api/plugins/options/impl/BaseOptionsParser.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/impl/JadxOptionDescription.java b/jadx-core/src/main/java/jadx/api/plugins/options/impl/JadxOptionDescription.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/impl/JadxOptionDescription.java rename to jadx-core/src/main/java/jadx/api/plugins/options/impl/JadxOptionDescription.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPass.java b/jadx-core/src/main/java/jadx/api/plugins/pass/JadxPass.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPass.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/JadxPass.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPassContext.java b/jadx-core/src/main/java/jadx/api/plugins/pass/JadxPassContext.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPassContext.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/JadxPassContext.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPassInfo.java b/jadx-core/src/main/java/jadx/api/plugins/pass/JadxPassInfo.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPassInfo.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/JadxPassInfo.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/impl/OrderedJadxPassInfo.java b/jadx-core/src/main/java/jadx/api/plugins/pass/impl/OrderedJadxPassInfo.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/impl/OrderedJadxPassInfo.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/impl/OrderedJadxPassInfo.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/impl/SimpleJadxPassInfo.java b/jadx-core/src/main/java/jadx/api/plugins/pass/impl/SimpleJadxPassInfo.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/impl/SimpleJadxPassInfo.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/impl/SimpleJadxPassInfo.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java b/jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java similarity index 76% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java index fbeae4467..d1814d3c5 100644 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java +++ b/jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java @@ -1,12 +1,12 @@ package jadx.api.plugins.pass.types; -import jadx.api.core.nodes.IJadxDecompiler; +import jadx.api.JadxDecompiler; import jadx.api.plugins.pass.JadxPass; public interface JadxAfterLoadPass extends JadxPass { JadxPassType TYPE = new JadxPassType(JadxAfterLoadPass.class); - void init(IJadxDecompiler decompiler); + void init(JadxDecompiler decompiler); @Override default JadxPassType getPassType() { diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java b/jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java similarity index 65% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java index 4bf0fb264..7b74d7198 100644 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java +++ b/jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java @@ -1,26 +1,26 @@ package jadx.api.plugins.pass.types; -import jadx.api.core.nodes.IClassNode; -import jadx.api.core.nodes.IMethodNode; -import jadx.api.core.nodes.IRootNode; import jadx.api.plugins.pass.JadxPass; +import jadx.core.dex.nodes.ClassNode; +import jadx.core.dex.nodes.MethodNode; +import jadx.core.dex.nodes.RootNode; public interface JadxDecompilePass extends JadxPass { JadxPassType TYPE = new JadxPassType(JadxDecompilePass.class); - void init(IRootNode root); + void init(RootNode root); /** * Visit class * * @return false for disable child methods and inner classes traversal */ - boolean visit(IClassNode cls); + boolean visit(ClassNode cls); /** * Visit method */ - void visit(IMethodNode mth); + void visit(MethodNode mth); @Override default JadxPassType getPassType() { diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxPassType.java b/jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxPassType.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxPassType.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxPassType.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java b/jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java similarity index 79% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java rename to jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java index bc197fc36..6c338c2c8 100644 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java +++ b/jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java @@ -1,12 +1,12 @@ package jadx.api.plugins.pass.types; -import jadx.api.core.nodes.IRootNode; import jadx.api.plugins.pass.JadxPass; +import jadx.core.dex.nodes.RootNode; public interface JadxPreparePass extends JadxPass { JadxPassType TYPE = new JadxPassType(JadxPreparePass.class); - void init(IRootNode root); + void init(RootNode root); @Override default JadxPassType getPassType() { diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/CommonFileUtils.java b/jadx-core/src/main/java/jadx/api/plugins/utils/CommonFileUtils.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/CommonFileUtils.java rename to jadx-core/src/main/java/jadx/api/plugins/utils/CommonFileUtils.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/LimitedInputStream.java b/jadx-core/src/main/java/jadx/api/plugins/utils/LimitedInputStream.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/LimitedInputStream.java rename to jadx-core/src/main/java/jadx/api/plugins/utils/LimitedInputStream.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/Utils.java b/jadx-core/src/main/java/jadx/api/plugins/utils/Utils.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/Utils.java rename to jadx-core/src/main/java/jadx/api/plugins/utils/Utils.java diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/ZipSecurity.java b/jadx-core/src/main/java/jadx/api/plugins/utils/ZipSecurity.java similarity index 100% rename from jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/ZipSecurity.java rename to jadx-core/src/main/java/jadx/api/plugins/utils/ZipSecurity.java 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 c70096e6f..b536fb8e5 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 @@ -20,7 +20,6 @@ import jadx.api.ICodeInfo; import jadx.api.ICodeWriter; import jadx.api.JadxArgs; import jadx.api.JavaClass; -import jadx.api.core.nodes.IClassNode; import jadx.api.impl.SimpleCodeInfo; import jadx.api.plugins.input.data.IClassData; import jadx.api.plugins.input.data.IFieldData; @@ -55,7 +54,7 @@ import static jadx.core.dex.nodes.ProcessState.LOADED; import static jadx.core.dex.nodes.ProcessState.NOT_LOADED; public class ClassNode extends NotificationAttrNode - implements IClassNode, ILoadable, ICodeNode, IPackageUpdate, Comparable { + implements ILoadable, ICodeNode, IPackageUpdate, Comparable { private final RootNode root; private final IClassData clsData; diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/IDexNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/IDexNode.java index 1c372a970..28774aa88 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/IDexNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/IDexNode.java @@ -1,6 +1,6 @@ package jadx.core.dex.nodes; -import jadx.api.core.nodes.IRenameNode; +import jadx.api.data.IRenameNode; public interface IDexNode extends IRenameNode { 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 f87195036..07607d7f1 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 @@ -12,7 +12,6 @@ import org.slf4j.LoggerFactory; import jadx.api.ICodeInfo; import jadx.api.JavaMethod; -import jadx.api.core.nodes.IMethodNode; import jadx.api.metadata.ICodeNodeRef; import jadx.api.metadata.annotations.NodeDeclareRef; import jadx.api.metadata.annotations.VarNode; @@ -44,8 +43,7 @@ import jadx.core.utils.exceptions.JadxRuntimeException; import static jadx.core.utils.Utils.lockList; -public class MethodNode extends NotificationAttrNode implements IMethodNode, - IMethodDetails, ILoadable, ICodeNode, Comparable { +public class MethodNode extends NotificationAttrNode implements IMethodDetails, ILoadable, ICodeNode, Comparable { private static final Logger LOG = LoggerFactory.getLogger(MethodNode.class); private final MethodInfo mthInfo; diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/RootNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/RootNode.java index 48e8b0774..2ba6f7b71 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/RootNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/RootNode.java @@ -20,7 +20,6 @@ import jadx.api.JadxDecompiler; import jadx.api.ResourceFile; import jadx.api.ResourceType; import jadx.api.ResourcesLoader; -import jadx.api.core.nodes.IRootNode; import jadx.api.data.ICodeData; import jadx.api.impl.passes.DecompilePassWrapper; import jadx.api.impl.passes.PreparePassWrapper; @@ -60,7 +59,7 @@ import jadx.core.xmlgen.ResourceStorage; import jadx.core.xmlgen.entry.ResourceEntry; import jadx.core.xmlgen.entry.ValuesParser; -public class RootNode implements IRootNode { +public class RootNode { private static final Logger LOG = LoggerFactory.getLogger(RootNode.class); private final JadxArgs args; diff --git a/jadx-plugins/jadx-dex-input/build.gradle b/jadx-plugins/jadx-dex-input/build.gradle index 7fecd4dd4..35ac8b7d8 100644 --- a/jadx-plugins/jadx-dex-input/build.gradle +++ b/jadx-plugins/jadx-dex-input/build.gradle @@ -3,7 +3,7 @@ plugins { } dependencies { - api(project(":jadx-plugins:jadx-plugins-api")) + api(project(":jadx-core")) // TODO: finish own smali printer implementation 'org.smali:baksmali:2.5.2' diff --git a/jadx-plugins/jadx-java-convert/build.gradle b/jadx-plugins/jadx-java-convert/build.gradle index 6b0f883a3..1b51a30c9 100644 --- a/jadx-plugins/jadx-java-convert/build.gradle +++ b/jadx-plugins/jadx-java-convert/build.gradle @@ -3,7 +3,7 @@ plugins { } dependencies { - api(project(":jadx-plugins:jadx-plugins-api")) + api(project(":jadx-core")) implementation(project(":jadx-plugins:jadx-dex-input")) implementation('com.jakewharton.android.repackaged:dalvik-dx:11.0.0_r3') diff --git a/jadx-plugins/jadx-java-input/build.gradle b/jadx-plugins/jadx-java-input/build.gradle index 0ac2fef9e..d78552d85 100644 --- a/jadx-plugins/jadx-java-input/build.gradle +++ b/jadx-plugins/jadx-java-input/build.gradle @@ -3,7 +3,7 @@ plugins { } dependencies { - api(project(":jadx-plugins:jadx-plugins-api")) + api(project(":jadx-core")) // show bytecode disassemble implementation 'io.github.skylot:raung-disasm:0.0.3' diff --git a/jadx-plugins/jadx-plugins-api/build.gradle b/jadx-plugins/jadx-plugins-api/build.gradle deleted file mode 100644 index c4c8599f4..000000000 --- a/jadx-plugins/jadx-plugins-api/build.gradle +++ /dev/null @@ -1,3 +0,0 @@ -plugins { - id 'jadx-library' -} diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IClassNode.java b/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IClassNode.java deleted file mode 100644 index b89823074..000000000 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IClassNode.java +++ /dev/null @@ -1,4 +0,0 @@ -package jadx.api.core.nodes; - -public interface IClassNode { -} diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IJadxDecompiler.java b/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IJadxDecompiler.java deleted file mode 100644 index 3a7a865f8..000000000 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IJadxDecompiler.java +++ /dev/null @@ -1,4 +0,0 @@ -package jadx.api.core.nodes; - -public interface IJadxDecompiler { -} diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IMethodNode.java b/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IMethodNode.java deleted file mode 100644 index 8fd7141c8..000000000 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IMethodNode.java +++ /dev/null @@ -1,4 +0,0 @@ -package jadx.api.core.nodes; - -public interface IMethodNode { -} diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRootNode.java b/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRootNode.java deleted file mode 100644 index 1448bd359..000000000 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRootNode.java +++ /dev/null @@ -1,4 +0,0 @@ -package jadx.api.core.nodes; - -public interface IRootNode { -} diff --git a/jadx-plugins/jadx-raung-input/build.gradle b/jadx-plugins/jadx-raung-input/build.gradle index 7ede43358..ef5ec9a55 100644 --- a/jadx-plugins/jadx-raung-input/build.gradle +++ b/jadx-plugins/jadx-raung-input/build.gradle @@ -3,7 +3,7 @@ plugins { } dependencies { - api(project(":jadx-plugins:jadx-plugins-api")) + api(project(":jadx-core")) implementation(project(":jadx-plugins:jadx-java-input")) diff --git a/jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/CodeMappingsVisitor.java b/jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/CodeMappingsVisitor.java index 27d2677f0..397f03a62 100644 --- a/jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/CodeMappingsVisitor.java +++ b/jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/CodeMappingsVisitor.java @@ -9,9 +9,6 @@ import net.fabricmc.mappingio.tree.MappingTree.ClassMapping; import net.fabricmc.mappingio.tree.MappingTree.MethodArgMapping; import net.fabricmc.mappingio.tree.MappingTree.MethodMapping; -import jadx.api.core.nodes.IClassNode; -import jadx.api.core.nodes.IMethodNode; -import jadx.api.core.nodes.IRootNode; import jadx.api.plugins.pass.JadxPassInfo; import jadx.api.plugins.pass.impl.OrderedJadxPassInfo; import jadx.api.plugins.pass.types.JadxDecompilePass; @@ -38,15 +35,13 @@ public class CodeMappingsVisitor implements JadxDecompilePass { } @Override - public void init(IRootNode iroot) { - RootNode root = (RootNode) iroot; + public void init(RootNode root) { updateMappingsMap(); root.registerCodeDataUpdateListener(codeData -> updateMappingsMap()); } @Override - public boolean visit(IClassNode icls) { - ClassNode cls = (ClassNode) icls; + public boolean visit(ClassNode cls) { ClassMapping classMapping = getMapping(cls); if (classMapping != null) { applyRenames(cls, classMapping); @@ -56,7 +51,7 @@ public class CodeMappingsVisitor implements JadxDecompilePass { } @Override - public void visit(IMethodNode mth) { + public void visit(MethodNode mth) { } private static void applyRenames(ClassNode cls, ClassMapping classMapping) { diff --git a/jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/MappingsVisitor.java b/jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/MappingsVisitor.java index 26ea523bf..d0973d4b0 100644 --- a/jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/MappingsVisitor.java +++ b/jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/MappingsVisitor.java @@ -5,7 +5,6 @@ import net.fabricmc.mappingio.tree.MappingTree.ClassMapping; import net.fabricmc.mappingio.tree.MappingTree.FieldMapping; import net.fabricmc.mappingio.tree.MappingTree.MethodMapping; -import jadx.api.core.nodes.IRootNode; import jadx.api.plugins.pass.JadxPassInfo; import jadx.api.plugins.pass.impl.OrderedJadxPassInfo; import jadx.api.plugins.pass.types.JadxPreparePass; @@ -34,8 +33,7 @@ public class MappingsVisitor implements JadxPreparePass { } @Override - public void init(IRootNode iroot) { - RootNode root = (RootNode) iroot; + public void init(RootNode root) { process(root); root.registerCodeDataUpdateListener(codeData -> process(root)); } diff --git a/jadx-plugins/jadx-script/jadx-script-plugin/build.gradle.kts b/jadx-plugins/jadx-script/jadx-script-plugin/build.gradle.kts index 297802d45..b3e3f2907 100644 --- a/jadx-plugins/jadx-script/jadx-script-plugin/build.gradle.kts +++ b/jadx-plugins/jadx-script/jadx-script-plugin/build.gradle.kts @@ -5,6 +5,8 @@ plugins { } dependencies { + implementation(project(":jadx-plugins:jadx-script:jadx-script-runtime")) + implementation("org.jetbrains.kotlin:kotlin-scripting-common") implementation("org.jetbrains.kotlin:kotlin-scripting-jvm") implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host") diff --git a/jadx-plugins/jadx-script/jadx-script-plugin/src/main/kotlin/jadx/plugins/script/passes/JadxScriptAfterLoadPass.kt b/jadx-plugins/jadx-script/jadx-script-plugin/src/main/kotlin/jadx/plugins/script/passes/JadxScriptAfterLoadPass.kt index 4e43aa7c3..ffcdd3dd6 100644 --- a/jadx-plugins/jadx-script/jadx-script-plugin/src/main/kotlin/jadx/plugins/script/passes/JadxScriptAfterLoadPass.kt +++ b/jadx-plugins/jadx-script/jadx-script-plugin/src/main/kotlin/jadx/plugins/script/passes/JadxScriptAfterLoadPass.kt @@ -1,6 +1,6 @@ package jadx.plugins.script.passes -import jadx.api.core.nodes.IJadxDecompiler +import jadx.api.JadxDecompiler import jadx.api.plugins.pass.impl.SimpleJadxPassInfo import jadx.api.plugins.pass.types.JadxAfterLoadPass import jadx.plugins.script.runner.ScriptStates @@ -12,7 +12,7 @@ class JadxScriptAfterLoadPass(private val scriptStates: ScriptStates) : JadxAfte override fun getInfo() = SimpleJadxPassInfo("JadxScriptAfterLoad", "Execute scripts 'afterLoad' block") - override fun init(decompiler: IJadxDecompiler) { + override fun init(decompiler: JadxDecompiler) { for (script in scriptStates.getScripts()) { if (script.error) { continue diff --git a/jadx-plugins/jadx-script/jadx-script-runtime/build.gradle.kts b/jadx-plugins/jadx-script/jadx-script-runtime/build.gradle.kts index 7b3d2d12d..5b2e6b2b1 100644 --- a/jadx-plugins/jadx-script/jadx-script-runtime/build.gradle.kts +++ b/jadx-plugins/jadx-script/jadx-script-runtime/build.gradle.kts @@ -5,6 +5,8 @@ plugins { } dependencies { + api(project(":jadx-core")) + implementation("org.jetbrains.kotlin:kotlin-scripting-common") implementation("org.jetbrains.kotlin:kotlin-scripting-jvm") @@ -15,9 +17,6 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") implementation("io.github.microutils:kotlin-logging-jvm:3.0.2") - api(project(":jadx-plugins:jadx-plugins-api")) - api(project(":jadx-core")) // TODO: workaround - runtimeOnly(project(":jadx-plugins:jadx-dex-input")) runtimeOnly(project(":jadx-plugins:jadx-smali-input")) runtimeOnly(project(":jadx-plugins:jadx-java-convert")) diff --git a/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/debug.kt b/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/debug.kt index 5a0cce6e0..9b063153a 100644 --- a/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/debug.kt +++ b/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/debug.kt @@ -1,6 +1,5 @@ package jadx.plugins.script.runtime.data -import jadx.api.core.nodes.IMethodNode import jadx.core.dex.nodes.MethodNode import jadx.core.dex.visitors.DotGraphVisitor import jadx.core.utils.DebugUtils @@ -9,11 +8,11 @@ import java.io.File class Debug(private val jadx: JadxScriptInstance) { - fun printMethodRegions(mth: IMethodNode, printInsns: Boolean = false) { - DebugUtils.printRegions(mth as MethodNode, printInsns) + fun printMethodRegions(mth: MethodNode, printInsns: Boolean = false) { + DebugUtils.printRegions(mth, printInsns) } - fun saveCFG(mth: IMethodNode, file: File = File("dump-mth-raw")) { - DotGraphVisitor.dumpRaw().save(file, mth as MethodNode) + fun saveCFG(mth: MethodNode, file: File = File("dump-mth-raw")) { + DotGraphVisitor.dumpRaw().save(file, mth) } } diff --git a/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/rename.kt b/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/rename.kt index 636d1f2e1..fa489fa04 100644 --- a/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/rename.kt +++ b/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/rename.kt @@ -1,6 +1,5 @@ package jadx.plugins.script.runtime.data -import jadx.api.core.nodes.IRootNode import jadx.core.dex.attributes.AFlag import jadx.core.dex.attributes.IAttributeNode import jadx.core.dex.nodes.IDexNode @@ -19,12 +18,11 @@ class RenamePass(private val jadx: JadxScriptInstance) { "RenameAll", runBefore = listOf("RenameVisitor") ) { - override fun init(root: IRootNode) { - val rootNode = root as RootNode - for (pkgNode in rootNode.packages) { + override fun init(root: RootNode) { + for (pkgNode in root.packages) { rename(makeNewName, pkgNode, pkgNode.pkgInfo.name) } - for (cls in rootNode.classes) { + for (cls in root.classes) { rename(makeNewName, cls, cls.name) for (mth in cls.methods) { if (!mth.isConstructor) { diff --git a/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/stages.kt b/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/stages.kt index 850a75ecb..9c54187fc 100644 --- a/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/stages.kt +++ b/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/stages.kt @@ -1,6 +1,5 @@ package jadx.plugins.script.runtime.data -import jadx.api.core.nodes.IMethodNode import jadx.core.dex.nodes.BlockNode import jadx.core.dex.nodes.InsnNode import jadx.core.dex.nodes.MethodNode @@ -15,10 +14,9 @@ class Stages(private val jadx: JadxScriptInstance) { "StageRawInsns", runAfter = listOf("start") ) { - override fun visit(mth: IMethodNode) { - val mthNode = mth as MethodNode - mthNode.instructions?.let { - block.invoke(mthNode, it) + override fun visit(mth: MethodNode) { + mth.instructions?.let { + block.invoke(mth, it) } } }) @@ -37,10 +35,9 @@ class Stages(private val jadx: JadxScriptInstance) { "StageMthBlocks", runBefore = listOf(beforePass) ) { - override fun visit(mth: IMethodNode) { - val mthNode = mth as MethodNode - mthNode.basicBlocks?.let { - block.invoke(mthNode, it) + override fun visit(mth: MethodNode) { + mth.basicBlocks?.let { + block.invoke(mth, it) } } }) @@ -52,10 +49,9 @@ class Stages(private val jadx: JadxScriptInstance) { "StageMthRegions", runBefore = listOf("PrepareForCodeGen") ) { - override fun visit(mth: IMethodNode) { - val mthNode = mth as MethodNode - mthNode.region?.let { - block.invoke(mthNode, it) + override fun visit(mth: MethodNode) { + mth.region?.let { + block.invoke(mth, it) } } }) diff --git a/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/wrappers.kt b/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/wrappers.kt index 4f6b990d9..0b675039b 100644 --- a/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/wrappers.kt +++ b/jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/wrappers.kt @@ -1,13 +1,13 @@ package jadx.plugins.script.runtime.data -import jadx.api.core.nodes.IClassNode -import jadx.api.core.nodes.IMethodNode -import jadx.api.core.nodes.IRootNode +import jadx.api.plugins.pass.types.JadxDecompilePass import jadx.api.plugins.pass.JadxPass +import jadx.api.plugins.pass.types.JadxPreparePass import jadx.api.plugins.pass.impl.OrderedJadxPassInfo import jadx.api.plugins.pass.impl.SimpleJadxPassInfo -import jadx.api.plugins.pass.types.JadxDecompilePass -import jadx.api.plugins.pass.types.JadxPreparePass +import jadx.core.dex.nodes.ClassNode +import jadx.core.dex.nodes.MethodNode +import jadx.core.dex.nodes.RootNode import jadx.plugins.script.runtime.JadxScriptInstance private fun buildScriptName(jadx: JadxScriptInstance, name: String) = "JadxScript${name}(${jadx.scriptName})" @@ -26,14 +26,14 @@ abstract class ScriptDecompilePass( ) : JadxDecompilePass { override fun getInfo() = buildSimplePassInfo(jadx, name) - override fun init(root: IRootNode) { + override fun init(root: RootNode) { } - override fun visit(cls: IClassNode): Boolean { + override fun visit(cls: ClassNode): Boolean { return true } - override fun visit(mth: IMethodNode) { + override fun visit(mth: MethodNode) { } } @@ -57,13 +57,13 @@ abstract class ScriptOrderedDecompilePass( jadx: JadxScriptInstance, name: String, runAfter: List = listOf(), runBefore: List = listOf() ) : ScriptOrderedPass(jadx, name, runAfter, runBefore), JadxDecompilePass { - override fun init(root: IRootNode) { + override fun init(root: RootNode) { } - override fun visit(cls: IClassNode): Boolean { + override fun visit(cls: ClassNode): Boolean { return true } - override fun visit(mth: IMethodNode) { + override fun visit(mth: MethodNode) { } } diff --git a/jadx-plugins/jadx-smali-input/build.gradle b/jadx-plugins/jadx-smali-input/build.gradle index 81e63f552..25955b2fa 100644 --- a/jadx-plugins/jadx-smali-input/build.gradle +++ b/jadx-plugins/jadx-smali-input/build.gradle @@ -3,7 +3,7 @@ plugins { } dependencies { - api(project(":jadx-plugins:jadx-plugins-api")) + api(project(":jadx-core")) implementation(project(":jadx-plugins:jadx-dex-input")) diff --git a/settings.gradle.kts b/settings.gradle.kts index 51d2b43a0..1ebc01d0b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -5,7 +5,6 @@ include("jadx-cli") include("jadx-gui") include("jadx-plugins") -include("jadx-plugins:jadx-plugins-api") include("jadx-plugins:jadx-dex-input") include("jadx-plugins:jadx-java-input") include("jadx-plugins:jadx-raung-input")