Projects STRLCPY jadx Commits 4cc30482
🤬
  • refactor: move plugins-api module into jadx-core

  • Loading...
  • Skylot committed 1 year ago
    4cc30482
    1 parent 89d032aa
  • ■ ■ ■ ■ ■ ■
    jadx-core/build.gradle
    skipped 2 lines
    3 3  }
    4 4   
    5 5  dependencies {
    6  - api(project(':jadx-plugins:jadx-plugins-api'))
    7  - 
    8 6   implementation 'com.google.code.gson:gson:2.9.1'
    9 7   
    10 8   // TODO: move resources decoding to separate plugin module
    skipped 20 lines
  • ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/api/JadxDecompiler.java
    skipped 23 lines
    24 24  import org.slf4j.Logger;
    25 25  import org.slf4j.LoggerFactory;
    26 26   
    27  -import jadx.api.core.nodes.IJadxDecompiler;
    28 27  import jadx.api.impl.plugins.SimplePluginContext;
    29 28  import jadx.api.metadata.ICodeAnnotation;
    30 29  import jadx.api.metadata.ICodeNodeRef;
    skipped 54 lines
    85 84   * </code>
    86 85   * </pre>
    87 86   */
    88  -public final class JadxDecompiler implements IJadxDecompiler, Closeable {
     87 +public final class JadxDecompiler implements Closeable {
    89 88   private static final Logger LOG = LoggerFactory.getLogger(JadxDecompiler.class);
    90 89   
    91 90   private final JadxArgs args;
    skipped 618 lines
  • ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRenameNode.java jadx-core/src/main/java/jadx/api/data/IRenameNode.java
    1  -package jadx.api.core.nodes;
     1 +package jadx.api.data;
    2 2   
    3 3  public interface IRenameNode {
    4 4   
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/api/impl/plugins/SimplePluginContext.java
    skipped 1 lines
    2 2   
    3 3  import org.jetbrains.annotations.Nullable;
    4 4   
     5 +import jadx.api.JadxArgs;
    5 6  import jadx.api.JadxDecompiler;
    6 7  import jadx.api.plugins.JadxPluginContext;
    7 8  import jadx.api.plugins.gui.JadxGuiContext;
    skipped 8 lines
    16 17   public SimplePluginContext(JadxDecompiler decompiler) {
    17 18   this.decompiler = decompiler;
    18 19   this.passContext = new SimplePassContext(decompiler);
     20 + }
     21 + 
     22 + @Override
     23 + public JadxArgs getArgs() {
     24 + return decompiler.getArgs();
    19 25   }
    20 26   
    21 27   @Override
    skipped 19 lines
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPlugin.java jadx-core/src/main/java/jadx/api/plugins/JadxPlugin.java
    Content is identical
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginContext.java jadx-core/src/main/java/jadx/api/plugins/JadxPluginContext.java
    skipped 1 lines
    2 2   
    3 3  import org.jetbrains.annotations.Nullable;
    4 4   
    5  -import jadx.api.core.nodes.IJadxDecompiler;
     5 +import jadx.api.JadxArgs;
     6 +import jadx.api.JadxDecompiler;
    6 7  import jadx.api.plugins.gui.JadxGuiContext;
    7 8  import jadx.api.plugins.pass.JadxPassContext;
    8 9   
    9 10  public interface JadxPluginContext {
    10 11   
    11  - IJadxDecompiler getDecompiler();
     12 + JadxArgs getArgs();
     13 + 
     14 + JadxDecompiler getDecompiler();
    12 15   
    13 16   JadxPassContext getPassContext();
    14 17   
    skipped 4 lines
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginInfo.java jadx-core/src/main/java/jadx/api/plugins/JadxPluginInfo.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginManager.java jadx-core/src/main/java/jadx/api/plugins/JadxPluginManager.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/gui/JadxGuiContext.java jadx-core/src/main/java/jadx/api/plugins/gui/JadxGuiContext.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/JadxInputPlugin.java jadx-core/src/main/java/jadx/api/plugins/input/JadxInputPlugin.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/AccessFlags.java jadx-core/src/main/java/jadx/api/plugins/input/data/AccessFlags.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/AccessFlagsScope.java jadx-core/src/main/java/jadx/api/plugins/input/data/AccessFlagsScope.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICallSite.java jadx-core/src/main/java/jadx/api/plugins/input/data/ICallSite.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICatch.java jadx-core/src/main/java/jadx/api/plugins/input/data/ICatch.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IClassData.java jadx-core/src/main/java/jadx/api/plugins/input/data/IClassData.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ICodeReader.java jadx-core/src/main/java/jadx/api/plugins/input/data/ICodeReader.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IDebugInfo.java jadx-core/src/main/java/jadx/api/plugins/input/data/IDebugInfo.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IFieldData.java jadx-core/src/main/java/jadx/api/plugins/input/data/IFieldData.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IFieldRef.java jadx-core/src/main/java/jadx/api/plugins/input/data/IFieldRef.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ILoadResult.java jadx-core/src/main/java/jadx/api/plugins/input/data/ILoadResult.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ILocalVar.java jadx-core/src/main/java/jadx/api/plugins/input/data/ILocalVar.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodData.java jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodData.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodHandle.java jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodHandle.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodProto.java jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodProto.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IMethodRef.java jadx-core/src/main/java/jadx/api/plugins/input/data/IMethodRef.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/IResourceData.java jadx-core/src/main/java/jadx/api/plugins/input/data/IResourceData.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ISeqConsumer.java jadx-core/src/main/java/jadx/api/plugins/input/data/ISeqConsumer.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/ITry.java jadx-core/src/main/java/jadx/api/plugins/input/data/ITry.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/MethodHandleType.java jadx-core/src/main/java/jadx/api/plugins/input/data/MethodHandleType.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/AnnotationVisibility.java jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/AnnotationVisibility.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/EncodedType.java jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/EncodedType.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/EncodedValue.java jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/EncodedValue.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/IAnnotation.java jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/IAnnotation.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/annotations/JadxAnnotation.java jadx-core/src/main/java/jadx/api/plugins/input/data/annotations/JadxAnnotation.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttrType.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttrType.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttribute.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/IJadxAttribute.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/JadxAttrType.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/JadxAttrType.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/PinnedAttribute.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/PinnedAttribute.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultClassAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationDefaultClassAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationMethodParamsAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationMethodParamsAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationsAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/AnnotationsAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/ExceptionsAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/ExceptionsAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClassesAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClassesAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClsInfo.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/InnerClsInfo.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/MethodParametersAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/MethodParametersAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/SignatureAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/SignatureAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/attributes/types/SourceFileAttr.java jadx-core/src/main/java/jadx/api/plugins/input/data/attributes/types/SourceFileAttr.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/CallSite.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/CallSite.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/CatchData.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/CatchData.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/DebugInfo.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/DebugInfo.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/EmptyLoadResult.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/EmptyLoadResult.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/FieldRefHandle.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/FieldRefHandle.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/JadxFieldRef.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/JadxFieldRef.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/ListConsumer.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/ListConsumer.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/MethodRefHandle.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/MethodRefHandle.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/data/impl/TryData.java jadx-core/src/main/java/jadx/api/plugins/input/data/impl/TryData.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/InsnData.java jadx-core/src/main/java/jadx/api/plugins/input/insns/InsnData.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/InsnIndexType.java jadx-core/src/main/java/jadx/api/plugins/input/insns/InsnIndexType.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/Opcode.java jadx-core/src/main/java/jadx/api/plugins/input/insns/Opcode.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/IArrayPayload.java jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/IArrayPayload.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/ICustomPayload.java jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/ICustomPayload.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/ISwitchPayload.java jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/ISwitchPayload.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/input/insns/custom/impl/SwitchPayload.java jadx-core/src/main/java/jadx/api/plugins/input/insns/custom/impl/SwitchPayload.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/JadxPluginOptions.java jadx-core/src/main/java/jadx/api/plugins/options/JadxPluginOptions.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/OptionDescription.java jadx-core/src/main/java/jadx/api/plugins/options/OptionDescription.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/impl/BaseOptionsParser.java jadx-core/src/main/java/jadx/api/plugins/options/impl/BaseOptionsParser.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/options/impl/JadxOptionDescription.java jadx-core/src/main/java/jadx/api/plugins/options/impl/JadxOptionDescription.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPass.java jadx-core/src/main/java/jadx/api/plugins/pass/JadxPass.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPassContext.java jadx-core/src/main/java/jadx/api/plugins/pass/JadxPassContext.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/JadxPassInfo.java jadx-core/src/main/java/jadx/api/plugins/pass/JadxPassInfo.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/impl/OrderedJadxPassInfo.java jadx-core/src/main/java/jadx/api/plugins/pass/impl/OrderedJadxPassInfo.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/impl/SimpleJadxPassInfo.java jadx-core/src/main/java/jadx/api/plugins/pass/impl/SimpleJadxPassInfo.java
    Content is identical
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxAfterLoadPass.java
    1 1  package jadx.api.plugins.pass.types;
    2 2   
    3  -import jadx.api.core.nodes.IJadxDecompiler;
     3 +import jadx.api.JadxDecompiler;
    4 4  import jadx.api.plugins.pass.JadxPass;
    5 5   
    6 6  public interface JadxAfterLoadPass extends JadxPass {
    7 7   JadxPassType TYPE = new JadxPassType(JadxAfterLoadPass.class);
    8 8   
    9  - void init(IJadxDecompiler decompiler);
     9 + void init(JadxDecompiler decompiler);
    10 10   
    11 11   @Override
    12 12   default JadxPassType getPassType() {
    skipped 4 lines
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxDecompilePass.java
    1 1  package jadx.api.plugins.pass.types;
    2 2   
    3  -import jadx.api.core.nodes.IClassNode;
    4  -import jadx.api.core.nodes.IMethodNode;
    5  -import jadx.api.core.nodes.IRootNode;
    6 3  import jadx.api.plugins.pass.JadxPass;
     4 +import jadx.core.dex.nodes.ClassNode;
     5 +import jadx.core.dex.nodes.MethodNode;
     6 +import jadx.core.dex.nodes.RootNode;
    7 7   
    8 8  public interface JadxDecompilePass extends JadxPass {
    9 9   JadxPassType TYPE = new JadxPassType(JadxDecompilePass.class);
    10 10   
    11  - void init(IRootNode root);
     11 + void init(RootNode root);
    12 12   
    13 13   /**
    14 14   * Visit class
    15 15   *
    16 16   * @return false for disable child methods and inner classes traversal
    17 17   */
    18  - boolean visit(IClassNode cls);
     18 + boolean visit(ClassNode cls);
    19 19   
    20 20   /**
    21 21   * Visit method
    22 22   */
    23  - void visit(IMethodNode mth);
     23 + void visit(MethodNode mth);
    24 24   
    25 25   @Override
    26 26   default JadxPassType getPassType() {
    skipped 4 lines
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxPassType.java jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxPassType.java
    Content is identical
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java jadx-core/src/main/java/jadx/api/plugins/pass/types/JadxPreparePass.java
    1 1  package jadx.api.plugins.pass.types;
    2 2   
    3  -import jadx.api.core.nodes.IRootNode;
    4 3  import jadx.api.plugins.pass.JadxPass;
     4 +import jadx.core.dex.nodes.RootNode;
    5 5   
    6 6  public interface JadxPreparePass extends JadxPass {
    7 7   JadxPassType TYPE = new JadxPassType(JadxPreparePass.class);
    8 8   
    9  - void init(IRootNode root);
     9 + void init(RootNode root);
    10 10   
    11 11   @Override
    12 12   default JadxPassType getPassType() {
    skipped 4 lines
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/CommonFileUtils.java jadx-core/src/main/java/jadx/api/plugins/utils/CommonFileUtils.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/LimitedInputStream.java jadx-core/src/main/java/jadx/api/plugins/utils/LimitedInputStream.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/Utils.java jadx-core/src/main/java/jadx/api/plugins/utils/Utils.java
    Content is identical
  • jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/utils/ZipSecurity.java jadx-core/src/main/java/jadx/api/plugins/utils/ZipSecurity.java
    Content is identical
  • ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java
    skipped 20 lines
    21 21  import jadx.api.ICodeInfo;
    22 22  import jadx.api.ICodeWriter;
    23 23  import jadx.api.JadxArgs;
    24  -import jadx.api.core.nodes.IClassNode;
    25 24  import jadx.api.impl.SimpleCodeInfo;
    26 25  import jadx.api.plugins.input.data.IClassData;
    27 26  import jadx.api.plugins.input.data.IFieldData;
    skipped 28 lines
    56 55  import static jadx.core.dex.nodes.ProcessState.NOT_LOADED;
    57 56   
    58 57  public class ClassNode extends NotificationAttrNode
    59  - implements IClassNode, ILoadable, ICodeNode, IPackageUpdate, Comparable<ClassNode> {
     58 + implements ILoadable, ICodeNode, IPackageUpdate, Comparable<ClassNode> {
    60 59   private static final Logger LOG = LoggerFactory.getLogger(ClassNode.class);
    61 60   
    62 61   private final RootNode root;
    skipped 839 lines
  • ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/nodes/IDexNode.java
    1 1  package jadx.core.dex.nodes;
    2 2   
    3  -import jadx.api.core.nodes.IRenameNode;
     3 +import jadx.api.data.IRenameNode;
    4 4   
    5 5  public interface IDexNode extends IRenameNode {
    6 6   
    skipped 7 lines
  • ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java
    skipped 10 lines
    11 11  import org.slf4j.LoggerFactory;
    12 12   
    13 13  import jadx.api.ICodeInfo;
    14  -import jadx.api.core.nodes.IMethodNode;
    15 14  import jadx.api.metadata.ICodeNodeRef;
    16 15  import jadx.api.metadata.annotations.NodeDeclareRef;
    17 16  import jadx.api.metadata.annotations.VarNode;
    skipped 25 lines
    43 42   
    44 43  import static jadx.core.utils.Utils.lockList;
    45 44   
    46  -public class MethodNode extends NotificationAttrNode implements IMethodNode,
    47  - IMethodDetails, ILoadable, ICodeNode, Comparable<MethodNode> {
     45 +public class MethodNode extends NotificationAttrNode implements IMethodDetails, ILoadable, ICodeNode, Comparable<MethodNode> {
    48 46   private static final Logger LOG = LoggerFactory.getLogger(MethodNode.class);
    49 47   
    50 48   private final MethodInfo mthInfo;
    skipped 649 lines
  • ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/nodes/RootNode.java
    skipped 19 lines
    20 20  import jadx.api.ResourceFile;
    21 21  import jadx.api.ResourceType;
    22 22  import jadx.api.ResourcesLoader;
    23  -import jadx.api.core.nodes.IRootNode;
    24 23  import jadx.api.data.ICodeData;
    25 24  import jadx.api.impl.passes.DecompilePassWrapper;
    26 25  import jadx.api.impl.passes.PreparePassWrapper;
    skipped 32 lines
    59 58  import jadx.core.xmlgen.entry.ResourceEntry;
    60 59  import jadx.core.xmlgen.entry.ValuesParser;
    61 60   
    62  -public class RootNode implements IRootNode {
     61 +public class RootNode {
    63 62   private static final Logger LOG = LoggerFactory.getLogger(RootNode.class);
    64 63   
    65 64   private final JadxArgs args;
    skipped 571 lines
  • ■ ■ ■ ■
    jadx-plugins/jadx-dex-input/build.gradle
    skipped 2 lines
    3 3  }
    4 4   
    5 5  dependencies {
    6  - api(project(":jadx-plugins:jadx-plugins-api"))
     6 + api(project(":jadx-core"))
    7 7   
    8 8   // TODO: finish own smali printer
    9 9   implementation 'org.smali:baksmali:2.5.2'
    skipped 12 lines
  • ■ ■ ■ ■
    jadx-plugins/jadx-java-convert/build.gradle
    skipped 2 lines
    3 3  }
    4 4   
    5 5  dependencies {
    6  - api(project(":jadx-plugins:jadx-plugins-api"))
     6 + api(project(":jadx-core"))
    7 7   
    8 8   implementation(project(":jadx-plugins:jadx-dex-input"))
    9 9   implementation('com.jakewharton.android.repackaged:dalvik-dx:11.0.0_r3')
    skipped 5 lines
  • ■ ■ ■ ■
    jadx-plugins/jadx-java-input/build.gradle
    skipped 2 lines
    3 3  }
    4 4   
    5 5  dependencies {
    6  - api(project(":jadx-plugins:jadx-plugins-api"))
     6 + api(project(":jadx-core"))
    7 7   
    8 8   // show bytecode disassemble
    9 9   implementation 'io.github.skylot:raung-disasm:0.0.2'
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/build.gradle
    1  -plugins {
    2  - id 'jadx-library'
    3  -}
    4  - 
  • ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IClassNode.java
    1  -package jadx.api.core.nodes;
    2  - 
    3  -public interface IClassNode {
    4  -}
    5  - 
  • ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IJadxDecompiler.java
    1  -package jadx.api.core.nodes;
    2  - 
    3  -public interface IJadxDecompiler {
    4  -}
    5  - 
  • ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IMethodNode.java
    1  -package jadx.api.core.nodes;
    2  - 
    3  -public interface IMethodNode {
    4  -}
    5  - 
  • ■ ■ ■ ■ ■
    jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/core/nodes/IRootNode.java
    1  -package jadx.api.core.nodes;
    2  - 
    3  -public interface IRootNode {
    4  -}
    5  - 
  • ■ ■ ■ ■
    jadx-plugins/jadx-raung-input/build.gradle
    skipped 2 lines
    3 3  }
    4 4   
    5 5  dependencies {
    6  - api(project(":jadx-plugins:jadx-plugins-api"))
     6 + api(project(":jadx-core"))
    7 7   
    8 8   implementation(project(":jadx-plugins:jadx-java-input"))
    9 9   
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/CodeMappingsVisitor.java
    skipped 8 lines
    9 9  import net.fabricmc.mappingio.tree.MappingTree.MethodArgMapping;
    10 10  import net.fabricmc.mappingio.tree.MappingTree.MethodMapping;
    11 11   
    12  -import jadx.api.core.nodes.IClassNode;
    13  -import jadx.api.core.nodes.IMethodNode;
    14  -import jadx.api.core.nodes.IRootNode;
    15 12  import jadx.api.plugins.pass.JadxPassInfo;
    16 13  import jadx.api.plugins.pass.impl.OrderedJadxPassInfo;
    17 14  import jadx.api.plugins.pass.types.JadxDecompilePass;
    skipped 20 lines
    38 35   }
    39 36   
    40 37   @Override
    41  - public void init(IRootNode iroot) {
    42  - RootNode root = (RootNode) iroot;
     38 + public void init(RootNode root) {
    43 39   updateMappingsMap();
    44 40   root.registerCodeDataUpdateListener(codeData -> updateMappingsMap());
    45 41   }
    46 42   
    47 43   @Override
    48  - public boolean visit(IClassNode icls) {
    49  - ClassNode cls = (ClassNode) icls;
     44 + public boolean visit(ClassNode cls) {
    50 45   ClassMapping classMapping = getMapping(cls);
    51 46   if (classMapping != null) {
    52 47   applyRenames(cls, classMapping);
    skipped 3 lines
    56 51   }
    57 52   
    58 53   @Override
    59  - public void visit(IMethodNode mth) {
     54 + public void visit(MethodNode mth) {
    60 55   }
    61 56   
    62 57   private static void applyRenames(ClassNode cls, ClassMapping classMapping) {
    skipped 47 lines
  • ■ ■ ■ ■ ■
    jadx-plugins/jadx-rename-mappings/src/main/java/jadx/plugins/mappings/load/MappingsVisitor.java
    skipped 4 lines
    5 5  import net.fabricmc.mappingio.tree.MappingTree.FieldMapping;
    6 6  import net.fabricmc.mappingio.tree.MappingTree.MethodMapping;
    7 7   
    8  -import jadx.api.core.nodes.IRootNode;
    9 8  import jadx.api.plugins.pass.JadxPassInfo;
    10 9  import jadx.api.plugins.pass.impl.OrderedJadxPassInfo;
    11 10  import jadx.api.plugins.pass.types.JadxPreparePass;
    skipped 22 lines
    34 33   }
    35 34   
    36 35   @Override
    37  - public void init(IRootNode iroot) {
    38  - RootNode root = (RootNode) iroot;
     36 + public void init(RootNode root) {
    39 37   process(root);
    40 38   root.registerCodeDataUpdateListener(codeData -> process(root));
    41 39   }
    skipped 62 lines
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-script/jadx-script-plugin/build.gradle.kts
    skipped 4 lines
    5 5  }
    6 6   
    7 7  dependencies {
     8 + implementation(project(":jadx-plugins:jadx-script:jadx-script-runtime"))
     9 + 
    8 10   implementation("org.jetbrains.kotlin:kotlin-scripting-common")
    9 11   implementation("org.jetbrains.kotlin:kotlin-scripting-jvm")
    10 12   implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host")
    skipped 6 lines
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-script/jadx-script-plugin/src/main/kotlin/jadx/plugins/script/passes/JadxScriptAfterLoadPass.kt
    1 1  package jadx.plugins.script.passes
    2 2   
    3  -import jadx.api.core.nodes.IJadxDecompiler
     3 +import jadx.api.JadxDecompiler
    4 4  import jadx.api.plugins.pass.impl.SimpleJadxPassInfo
    5 5  import jadx.api.plugins.pass.types.JadxAfterLoadPass
    6 6  import jadx.plugins.script.runner.ScriptStates
    skipped 5 lines
    12 12   
    13 13   override fun getInfo() = SimpleJadxPassInfo("JadxScriptAfterLoad", "Execute scripts 'afterLoad' block")
    14 14   
    15  - override fun init(decompiler: IJadxDecompiler) {
     15 + override fun init(decompiler: JadxDecompiler) {
    16 16   for (script in scriptStates.getScripts()) {
    17 17   if (script.error) {
    18 18   continue
    skipped 13 lines
  • ■ ■ ■ ■ ■
    jadx-plugins/jadx-script/jadx-script-runtime/build.gradle.kts
    skipped 4 lines
    5 5  }
    6 6   
    7 7  dependencies {
     8 + api(project(":jadx-core"))
     9 + 
    8 10   implementation("org.jetbrains.kotlin:kotlin-scripting-common")
    9 11   implementation("org.jetbrains.kotlin:kotlin-scripting-jvm")
    10 12   
    skipped 3 lines
    14 16   
    15 17   implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
    16 18   implementation("io.github.microutils:kotlin-logging-jvm:3.0.2")
    17  - 
    18  - api(project(":jadx-plugins:jadx-plugins-api"))
    19  - api(project(":jadx-core")) // TODO: workaround
    20 19   
    21 20   runtimeOnly(project(":jadx-plugins:jadx-dex-input"))
    22 21   runtimeOnly(project(":jadx-plugins:jadx-smali-input"))
    skipped 6 lines
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/debug.kt
    1 1  package jadx.plugins.script.runtime.data
    2 2   
    3  -import jadx.api.core.nodes.IMethodNode
    4 3  import jadx.core.dex.nodes.MethodNode
    5 4  import jadx.core.dex.visitors.DotGraphVisitor
    6 5  import jadx.core.utils.DebugUtils
    skipped 2 lines
    9 8   
    10 9  class Debug(private val jadx: JadxScriptInstance) {
    11 10   
    12  - fun printMethodRegions(mth: IMethodNode, printInsns: Boolean = false) {
    13  - DebugUtils.printRegions(mth as MethodNode, printInsns)
     11 + fun printMethodRegions(mth: MethodNode, printInsns: Boolean = false) {
     12 + DebugUtils.printRegions(mth, printInsns)
    14 13   }
    15 14   
    16  - fun saveCFG(mth: IMethodNode, file: File = File("dump-mth-raw")) {
    17  - DotGraphVisitor.dumpRaw().save(file, mth as MethodNode)
     15 + fun saveCFG(mth: MethodNode, file: File = File("dump-mth-raw")) {
     16 + DotGraphVisitor.dumpRaw().save(file, mth)
    18 17   }
    19 18  }
    20 19   
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/rename.kt
    1 1  package jadx.plugins.script.runtime.data
    2 2   
    3  -import jadx.api.core.nodes.IRootNode
    4 3  import jadx.core.dex.attributes.AFlag
    5 4  import jadx.core.dex.attributes.IAttributeNode
    6 5  import jadx.core.dex.nodes.IDexNode
    skipped 12 lines
    19 18   "RenameAll",
    20 19   runBefore = listOf("RenameVisitor")
    21 20   ) {
    22  - override fun init(root: IRootNode) {
    23  - val rootNode = root as RootNode
    24  - for (pkgNode in rootNode.packages) {
     21 + override fun init(root: RootNode) {
     22 + for (pkgNode in root.packages) {
    25 23   rename(makeNewName, pkgNode, pkgNode.pkgInfo.name)
    26 24   }
    27  - for (cls in rootNode.classes) {
     25 + for (cls in root.classes) {
    28 26   rename(makeNewName, cls, cls.name)
    29 27   for (mth in cls.methods) {
    30 28   if (!mth.isConstructor) {
    skipped 25 lines
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/stages.kt
    1 1  package jadx.plugins.script.runtime.data
    2 2   
    3  -import jadx.api.core.nodes.IMethodNode
    4 3  import jadx.core.dex.nodes.BlockNode
    5 4  import jadx.core.dex.nodes.InsnNode
    6 5  import jadx.core.dex.nodes.MethodNode
    skipped 8 lines
    15 14   "StageRawInsns",
    16 15   runAfter = listOf("start")
    17 16   ) {
    18  - override fun visit(mth: IMethodNode) {
    19  - val mthNode = mth as MethodNode
    20  - mthNode.instructions?.let {
    21  - block.invoke(mthNode, it)
     17 + override fun visit(mth: MethodNode) {
     18 + mth.instructions?.let {
     19 + block.invoke(mth, it)
    22 20   }
    23 21   }
    24 22   })
    skipped 12 lines
    37 35   "StageMthBlocks",
    38 36   runBefore = listOf(beforePass)
    39 37   ) {
    40  - override fun visit(mth: IMethodNode) {
    41  - val mthNode = mth as MethodNode
    42  - mthNode.basicBlocks?.let {
    43  - block.invoke(mthNode, it)
     38 + override fun visit(mth: MethodNode) {
     39 + mth.basicBlocks?.let {
     40 + block.invoke(mth, it)
    44 41   }
    45 42   }
    46 43   })
    skipped 5 lines
    52 49   "StageMthRegions",
    53 50   runBefore = listOf("PrepareForCodeGen")
    54 51   ) {
    55  - override fun visit(mth: IMethodNode) {
    56  - val mthNode = mth as MethodNode
    57  - mthNode.region?.let {
    58  - block.invoke(mthNode, it)
     52 + override fun visit(mth: MethodNode) {
     53 + mth.region?.let {
     54 + block.invoke(mth, it)
    59 55   }
    60 56   }
    61 57   })
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    jadx-plugins/jadx-script/jadx-script-runtime/src/main/kotlin/jadx/plugins/script/runtime/data/wrappers.kt
    1 1  package jadx.plugins.script.runtime.data
    2 2   
    3  -import jadx.api.core.nodes.IClassNode
    4  -import jadx.api.core.nodes.IMethodNode
    5  -import jadx.api.core.nodes.IRootNode
     3 +import jadx.api.plugins.pass.types.JadxDecompilePass
    6 4  import jadx.api.plugins.pass.JadxPass
     5 +import jadx.api.plugins.pass.types.JadxPreparePass
    7 6  import jadx.api.plugins.pass.impl.OrderedJadxPassInfo
    8 7  import jadx.api.plugins.pass.impl.SimpleJadxPassInfo
    9  -import jadx.api.plugins.pass.types.JadxDecompilePass
    10  -import jadx.api.plugins.pass.types.JadxPreparePass
     8 +import jadx.core.dex.nodes.ClassNode
     9 +import jadx.core.dex.nodes.MethodNode
     10 +import jadx.core.dex.nodes.RootNode
    11 11  import jadx.plugins.script.runtime.JadxScriptInstance
    12 12   
    13 13  private fun buildScriptName(jadx: JadxScriptInstance, name: String) = "JadxScript${name}(${jadx.scriptName})"
    skipped 12 lines
    26 26  ) : JadxDecompilePass {
    27 27   override fun getInfo() = buildSimplePassInfo(jadx, name)
    28 28   
    29  - override fun init(root: IRootNode) {
     29 + override fun init(root: RootNode) {
    30 30   }
    31 31   
    32  - override fun visit(cls: IClassNode): Boolean {
     32 + override fun visit(cls: ClassNode): Boolean {
    33 33   return true
    34 34   }
    35 35   
    36  - override fun visit(mth: IMethodNode) {
     36 + override fun visit(mth: MethodNode) {
    37 37   }
    38 38  }
    39 39   
    skipped 17 lines
    57 57   jadx: JadxScriptInstance, name: String, runAfter: List<String> = listOf(), runBefore: List<String> = listOf()
    58 58  ) : ScriptOrderedPass(jadx, name, runAfter, runBefore), JadxDecompilePass {
    59 59   
    60  - override fun init(root: IRootNode) {
     60 + override fun init(root: RootNode) {
    61 61   }
    62 62   
    63  - override fun visit(cls: IClassNode): Boolean {
     63 + override fun visit(cls: ClassNode): Boolean {
    64 64   return true
    65 65   }
    66 66   
    67  - override fun visit(mth: IMethodNode) {
     67 + override fun visit(mth: MethodNode) {
    68 68   }
    69 69  }
    70 70   
  • ■ ■ ■ ■
    jadx-plugins/jadx-smali-input/build.gradle
    skipped 2 lines
    3 3  }
    4 4   
    5 5  dependencies {
    6  - api(project(":jadx-plugins:jadx-plugins-api"))
     6 + api(project(":jadx-core"))
    7 7   
    8 8   implementation(project(":jadx-plugins:jadx-dex-input"))
    9 9   
    skipped 10 lines
  • ■ ■ ■ ■ ■
    settings.gradle.kts
    skipped 4 lines
    5 5  include("jadx-gui")
    6 6   
    7 7  include("jadx-plugins")
    8  -include("jadx-plugins:jadx-plugins-api")
    9 8  include("jadx-plugins:jadx-dex-input")
    10 9  include("jadx-plugins:jadx-java-input")
    11 10  include("jadx-plugins:jadx-raung-input")
    skipped 9 lines
Please wait...
Page is in error, reload to recover