Class RootNode

java.lang.Object
jadx.core.dex.nodes.RootNode

public class RootNode extends Object
  • Field Details

  • Constructor Details

  • Method Details

    • init

      public void init()
    • loadClasses

      public void loadClasses(List<ICodeLoader> loadedInputs)
    • finishClassLoad

      public void finishClassLoad()
    • addDummyClass

      private void addDummyClass(IClassData classData, Exception exc)
    • fixDuplicatedClasses

      private void fixDuplicatedClasses()
    • addClassNode

      public void addClassNode(ClassNode clsNode)
    • loadResources

      public void loadResources(ResourcesLoader resLoader, List<ResourceFile> resources)
    • getResourceFile

      @Nullable private @Nullable ResourceFile getResourceFile(List<ResourceFile> resources)
    • processResources

      public void processResources(ResourceStorage resStorage)
    • initClassPath

      public void initClassPath()
    • updateObfuscatedFiles

      private void updateObfuscatedFiles(IResTableParser parser, List<ResourceFile> resources)
    • initInnerClasses

      private void initInnerClasses()
    • mergePasses

      public void mergePasses(Map<JadxPassType,List<JadxPass>> customPasses)
    • runPreDecompileStage

      public void runPreDecompileStage()
    • runPreDecompileStageForClass

      public void runPreDecompileStageForClass(ClassNode cls)
    • resetPasses

      public void resetPasses()
    • restartVisitors

      public void restartVisitors()
    • getClasses

      public List<ClassNode> getClasses()
    • getClassesWithoutInner

      public List<ClassNode> getClassesWithoutInner()
    • getClasses

      public List<ClassNode> getClasses(boolean includeInner)
    • getPackages

      public List<PackageNode> getPackages()
    • resolvePackage

      @Nullable public @Nullable PackageNode resolvePackage(String fullPkg)
    • resolvePackage

      @Nullable public @Nullable PackageNode resolvePackage(@Nullable @Nullable PackageInfo pkgInfo)
    • addPackage

      public void addPackage(PackageNode pkg)
    • removePackage

      public void removePackage(PackageNode pkg)
    • sortPackages

      public void sortPackages()
    • removeClsFromPackage

      public void removeClsFromPackage(PackageNode pkg, ClassNode cls)
    • runPackagesUpdate

      public void runPackagesUpdate()
      Update sub packages
    • resolveClass

      @Nullable public @Nullable ClassNode resolveClass(ClassInfo clsInfo)
    • resolveClass

      @Nullable public @Nullable ClassNode resolveClass(ArgType clsType)
    • resolveClass

      @Nullable public @Nullable ClassNode resolveClass(String fullName)
    • resolveRawClass

      @Nullable public @Nullable ClassNode resolveRawClass(String rawFullName)
    • resolveParentClass

      @Nullable public @Nullable ClassNode resolveParentClass(ClassInfo clsInfo)
      Find and correct the parent of an inner class.
      Sometimes inner ClassInfo generated wrong parent info. e.g. inner is `Cls$mth$1`, current parent = `Cls$mth`, real parent = `Cls`
    • searchClassByFullAlias

      @Nullable public @Nullable ClassNode searchClassByFullAlias(String fullName)
      Searches for ClassNode by its full name (original or alias name)
      Warning: This method has a runtime of O(n) (n = number of classes). If you need to call it more than once consider buildFullAliasClassCache() instead
    • buildFullAliasClassCache

      public Map<String,ClassNode> buildFullAliasClassCache()
    • searchClassByShortName

      public List<ClassNode> searchClassByShortName(String shortName)
    • resolveMethod

      @Nullable public @Nullable MethodNode resolveMethod(@NotNull @NotNull MethodInfo mth)
    • resolveDirectMethod

      @NotNull public @NotNull MethodNode resolveDirectMethod(String rawClsName, String mthShortId)
    • deepResolveMethod

      @Nullable private @Nullable MethodNode deepResolveMethod(@NotNull @NotNull ClassNode cls, String signature)
    • resolveField

      @Nullable public @Nullable FieldNode resolveField(FieldInfo field)
    • deepResolveField

      @Nullable private @Nullable FieldNode deepResolveField(@NotNull @NotNull ClassNode cls, FieldInfo fieldInfo)
    • getProcessClasses

      public ProcessClass getProcessClasses()
    • getPasses

      public List<IDexTreeVisitor> getPasses()
    • getPreDecompilePasses

      public List<IDexTreeVisitor> getPreDecompilePasses()
    • initPasses

      public void initPasses()
    • makeCodeWriter

      public ICodeWriter makeCodeWriter()
    • registerCodeDataUpdateListener

      public void registerCodeDataUpdateListener(ICodeDataUpdateListener listener)
    • notifyCodeDataListeners

      public void notifyCodeDataListeners()
    • getClsp

      public ClspGraph getClsp()
    • getErrorsCounter

      public ErrorsCounter getErrorsCounter()
    • getAppPackage

      @Nullable public @Nullable String getAppPackage()
    • getAppResClass

      @Nullable public @Nullable ClassNode getAppResClass()
    • getStringUtils

      public StringUtils getStringUtils()
    • getConstValues

      public ConstStorage getConstValues()
    • getInfoStorage

      public InfoStorage getInfoStorage()
    • getCacheStorage

      public CacheStorage getCacheStorage()
    • getArgs

      public JadxArgs getArgs()
    • getDecompiler

      @Nullable public @Nullable JadxDecompiler getDecompiler()
    • getTypeUpdate

      public TypeUpdate getTypeUpdate()
    • getTypeCompare

      public TypeCompare getTypeCompare()
    • getCodeCache

      public ICodeCache getCodeCache()
    • getMethodUtils

      public MethodUtils getMethodUtils()
    • getTypeUtils

      public TypeUtils getTypeUtils()
    • getAttributes

      public AttributeStorage getAttributes()
    • getGradleInfoStorage

      public GradleInfoStorage getGradleInfoStorage()
    • initManifestAttributes

      public ManifestAttributes initManifestAttributes()