Package jadx.core.dex.nodes
Class RootNode
java.lang.Object
jadx.core.dex.nodes.RootNode
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate @Nullable Stringprivate @Nullable ClassNodeprivate final JadxArgsprivate final AttributeStorageprivate final CacheStorageprivate ClspGraphprivate final List<ICodeDataUpdateListener> private final ConstStorageprivate @Nullable JadxDecompilerOptional decompiler referenceprivate final ErrorsCounterprivate final GradleInfoStorageprivate final InfoStorageprivate static final org.slf4j.Loggerprivate @Nullable ManifestAttributesprivate final MethodUtilsprivate final List<PackageNode> private final Map<String, PackageNode> private List<IDexTreeVisitor> private ProcessClassprivate final StringUtilsprivate final TypeUpdateprivate final TypeUtils -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateRootNode(@Nullable JadxDecompiler decompiler, JadxArgs args) Deprecated.RootNode(JadxDecompiler decompiler) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddClassNode(ClassNode clsNode) private voidaddDummyClass(IClassData classData, Exception exc) voidaddPackage(PackageNode pkg) private @Nullable FieldNodedeepResolveField(@NotNull ClassNode cls, FieldInfo fieldInfo) private @Nullable MethodNodedeepResolveMethod(@NotNull ClassNode cls, String signature) voidprivate void@Nullable String@Nullable ClassNodegetArgs()getClasses(boolean includeInner) getClsp()@Nullable JadxDecompilerprivate @Nullable ResourceFilegetResourceFile(List<ResourceFile> resources) voidinit()voidprivate voidvoidvoidloadClasses(List<ICodeLoader> loadedInputs) voidloadResources(ResourcesLoader resLoader, List<ResourceFile> resources) voidmergePasses(Map<JadxPassType, List<JadxPass>> customPasses) voidvoidprocessResources(ResourceStorage resStorage) voidvoidremoveClsFromPackage(PackageNode pkg, ClassNode cls) voidremovePackage(PackageNode pkg) void@Nullable ClassNoderesolveClass(ClassInfo clsInfo) @Nullable ClassNoderesolveClass(ArgType clsType) @Nullable ClassNoderesolveClass(String fullName) @NotNull MethodNoderesolveDirectMethod(String rawClsName, String mthShortId) @Nullable FieldNoderesolveField(FieldInfo field) @Nullable MethodNoderesolveMethod(@NotNull MethodInfo mth) @Nullable PackageNoderesolvePackage(@Nullable PackageInfo pkgInfo) @Nullable PackageNoderesolvePackage(String fullPkg) @Nullable ClassNoderesolveParentClass(ClassInfo clsInfo) Find and correct the parent of an inner class.@Nullable ClassNoderesolveRawClass(String rawFullName) voidvoidUpdate sub packagesvoidvoid@Nullable ClassNodesearchClassByFullAlias(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).searchClassByShortName(String shortName) voidprivate voidupdateObfuscatedFiles(IResTableParser parser, List<ResourceFile> resources)
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
args
-
errorsCounter
-
stringUtils
-
constValues
-
infoStorage
-
cacheStorage
-
typeUpdate
-
methodUtils
-
typeUtils
-
attributes
-
codeDataUpdateListeners
-
gradleInfoStorage
-
clsMap
-
rawClsMap
-
classes
-
pkgMap
-
packages
-
preDecompilePasses
-
processClasses
-
clsp
-
appPackage
-
appResClass
-
decompiler
Optional decompiler reference -
manifestAttributes
-
-
Constructor Details
-
RootNode
-
RootNode
Deprecated.Deprecated. PreferRootNode(JadxDecompiler) -
RootNode
-
-
Method Details
-
init
public void init() -
loadClasses
-
finishClassLoad
public void finishClassLoad() -
addDummyClass
-
fixDuplicatedClasses
private void fixDuplicatedClasses() -
addClassNode
-
loadResources
-
getResourceFile
-
processResources
-
initClassPath
public void initClassPath() -
updateObfuscatedFiles
-
initInnerClasses
private void initInnerClasses() -
mergePasses
-
runPreDecompileStage
public void runPreDecompileStage() -
runPreDecompileStageForClass
-
resetPasses
public void resetPasses() -
restartVisitors
public void restartVisitors() -
getClasses
-
getClassesWithoutInner
-
getClasses
-
getPackages
-
resolvePackage
-
resolvePackage
-
addPackage
-
removePackage
-
sortPackages
public void sortPackages() -
removeClsFromPackage
-
runPackagesUpdate
public void runPackagesUpdate()Update sub packages -
resolveClass
-
resolveClass
-
resolveClass
-
resolveRawClass
-
resolveParentClass
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
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 considerbuildFullAliasClassCache()instead -
buildFullAliasClassCache
-
searchClassByShortName
-
resolveMethod
-
resolveDirectMethod
-
deepResolveMethod
@Nullable private @Nullable MethodNode deepResolveMethod(@NotNull @NotNull ClassNode cls, String signature) -
resolveField
-
deepResolveField
-
getProcessClasses
-
getPasses
-
getPreDecompilePasses
-
initPasses
public void initPasses() -
makeCodeWriter
-
registerCodeDataUpdateListener
-
notifyCodeDataListeners
public void notifyCodeDataListeners() -
getClsp
-
getErrorsCounter
-
getAppPackage
-
getAppResClass
-
getStringUtils
-
getConstValues
-
getInfoStorage
-
getCacheStorage
-
getArgs
-
getDecompiler
-
getTypeUpdate
-
getTypeCompare
-
getCodeCache
-
getMethodUtils
-
getTypeUtils
-
getAttributes
-
getGradleInfoStorage
-
initManifestAttributes
-