Package jadx.api
Class JadxArgs
java.lang.Object
jadx.api.JadxArgs
- All Implemented Interfaces:
Closeable,AutoCloseable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic enumstatic enum -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate IAliasProviderNodes alias provider for deobfuscator and rename visitorprivate booleanprivate booleanPredicate that allows to filter the classes to be process based on their full nameprivate ICodeCacheprivate ICodeDataprivate Stringprivate Stringprivate Function<JadxArgs, ICodeWriter> private CommentsLevelprivate booleanprivate DecompilationModestatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final intprivate intprivate intprivate booleanList of classes and packages (ends with '.*') to exclude from deobfuscationPasses to exclude from processing.private booleanprivate @Nullable ExportGradleTypeprivate booleanprivate IJadxFilesGetterAdditional files structure info.private booleanprivate Fileprivate GeneratedRenamesMappingFileModeprivate booleanSave dependencies for classes accepted byclassFilterprivate booleanprivate booleanprivate booleanprivate IntegerFormatprivate booleanprivate static final org.slf4j.Loggerprivate booleanprivate Fileprivate Fileprivate Fileprivate JadxArgs.OutputFormatEnumprivate JadxPluginLoaderprivate booleanprivate IRenameConditionCondition to rename node in deobfuscatorprivate Set<JadxArgs.RenameEnum> private booleanprivate ResourceNameSourceprivate booleanprivate booleanprivate booleanRun additional expensive checks to verify internal invariants and info integrityprivate IJadxSecurityAdditional data validation and security checksprivate booleanprivate booleanDon't save files (can be using for performance testing)private booleanprivate booleanprivate booleanprivate intprivate intprivate intMaximum updates allowed total in method per one instruction.private IUsageInfoCacheUsage data cache.private booleanprivate booleanprivate booleanprivate UserRenamesMappingsModeprivate Pathprivate UseSourceNameAsClassNameAlias -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddInputFile(File inputFile) private static StringbuildPluginsHash(@Nullable JadxDecompiler decompiler) voidclose()intint@Nullable ExportGradleTypeintintintbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanDeprecated.makeCodeArgsHash(@Nullable JadxDecompiler decompiler) Hash of all options that can change result codevoidsetAliasProvider(IAliasProvider aliasProvider) voidsetAllowInlineKotlinLambda(boolean allowInlineKotlinLambda) voidsetCfgOutput(boolean cfgOutput) voidsetClassFilter(Predicate<String> classFilter) voidsetCodeCache(ICodeCache codeCache) voidsetCodeData(ICodeData codeData) voidsetCodeIndentStr(String codeIndentStr) voidsetCodeNewLineStr(String codeNewLineStr) voidsetCodeWriterProvider(Function<JadxArgs, ICodeWriter> codeWriterProvider) voidsetCommentsLevel(CommentsLevel commentsLevel) voidsetDebugInfo(boolean debugInfo) voidsetDecompilationMode(DecompilationMode decompilationMode) voidsetDeobfuscationForceSave(boolean deobfuscationForceSave) voidsetDeobfuscationMaxLength(int deobfuscationMaxLength) voidsetDeobfuscationMinLength(int deobfuscationMinLength) voidsetDeobfuscationOn(boolean deobfuscationOn) voidsetDeobfuscationWhitelist(List<String> deobfuscationWhitelist) voidsetDisabledPlugins(Set<String> disabledPlugins) voidsetEscapeUnicode(boolean escapeUnicode) voidsetExportAsGradleProject(boolean exportAsGradleProject) voidsetExportGradleType(@Nullable ExportGradleType exportGradleType) voidsetExtractFinally(boolean extractFinally) voidsetFallbackMode(boolean fallbackMode) Deprecated.voidsetFilesGetter(IJadxFilesGetter filesGetter) voidsetFsCaseSensitive(boolean fsCaseSensitive) voidvoidvoidsetIncludeDependencies(boolean includeDependencies) voidsetInlineAnonymousClasses(boolean inlineAnonymousClasses) voidsetInlineMethods(boolean inlineMethods) voidsetInputFile(File inputFile) voidsetInputFiles(List<File> inputFiles) voidsetInsertDebugLines(boolean insertDebugLines) voidsetIntegerFormat(IntegerFormat format) voidsetLoadJadxClsSetFile(boolean loadJadxClsSetFile) voidsetMoveInnerClasses(boolean moveInnerClasses) voidvoidsetOutDirRes(File outDirRes) voidsetOutDirSrc(File outDirSrc) voidsetOutputFormat(JadxArgs.OutputFormatEnum outputFormat) voidsetPluginLoader(JadxPluginLoader pluginLoader) voidsetPluginOptions(Map<String, String> pluginOptions) voidsetRawCFGOutput(boolean rawCFGOutput) voidsetRenameCaseSensitive(boolean renameCaseSensitive) voidsetRenameCondition(IRenameCondition renameCondition) voidsetRenameFlags(Set<JadxArgs.RenameEnum> renameFlags) voidsetRenamePrintable(boolean renamePrintable) voidsetRenameValid(boolean renameValid) voidsetReplaceConsts(boolean replaceConsts) voidsetResourceNameSource(ResourceNameSource resourceNameSource) voidsetRespectBytecodeAccModifiers(boolean respectBytecodeAccModifiers) voidsetRestoreSwitchOverString(boolean restoreSwitchOverString) voidsetRootDir(File rootDir) voidsetRunDebugChecks(boolean runDebugChecks) voidsetSecurity(IJadxSecurity security) voidsetShowInconsistentCode(boolean showInconsistentCode) voidsetSkipFilesSave(boolean skipFilesSave) voidsetSkipResources(boolean skipResources) voidsetSkipSources(boolean skipSources) voidsetSkipXmlPrettyPrint(boolean skipXmlPrettyPrint) voidsetSourceNameRepeatLimit(int sourceNameRepeatLimit) voidsetThreadsCount(int threadsCount) voidsetTypeUpdatesLimitCount(int typeUpdatesLimitCount) voidsetUsageInfoCache(IUsageInfoCache usageInfoCache) voidsetUseDxInput(boolean useDxInput) voidsetUseHeadersForDetectResourceExtensions(boolean useHeadersForDetectResourceExtensions) voidsetUseImports(boolean useImports) voidsetUseKotlinMethodsForVarNames(JadxArgs.UseKotlinMethodsForVarNames useKotlinMethodsForVarNames) voidvoidvoidsetUseSourceNameAsClassAlias(boolean useSourceNameAsClassAlias) Deprecated.voidsetUseSourceNameAsClassNameAlias(UseSourceNameAsClassNameAlias useSourceNameAsClassNameAlias) toString()private voidupdateRenameFlag(boolean enabled, JadxArgs.RenameEnum flag)
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
DEFAULT_THREADS_COUNT
public static final int DEFAULT_THREADS_COUNT -
DEFAULT_NEW_LINE_STR
-
DEFAULT_INDENT_STR
- See Also:
-
DEFAULT_OUT_DIR
- See Also:
-
DEFAULT_SRC_DIR
- See Also:
-
DEFAULT_RES_DIR
- See Also:
-
inputFiles
-
outDir
-
outDirSrc
-
outDirRes
-
codeCache
-
usageInfoCache
Usage data cache. Saves use places of classes, methods and fields between code reloads. Can be set toEmptyUsageInfoCacheif code reload not needed. -
codeWriterProvider
-
threadsCount
private int threadsCount -
cfgOutput
private boolean cfgOutput -
rawCFGOutput
private boolean rawCFGOutput -
showInconsistentCode
private boolean showInconsistentCode -
useImports
private boolean useImports -
debugInfo
private boolean debugInfo -
insertDebugLines
private boolean insertDebugLines -
extractFinally
private boolean extractFinally -
inlineAnonymousClasses
private boolean inlineAnonymousClasses -
inlineMethods
private boolean inlineMethods -
allowInlineKotlinLambda
private boolean allowInlineKotlinLambda -
moveInnerClasses
private boolean moveInnerClasses -
skipResources
private boolean skipResources -
skipSources
private boolean skipSources -
useHeadersForDetectResourceExtensions
private boolean useHeadersForDetectResourceExtensions -
classFilter
Predicate that allows to filter the classes to be process based on their full name -
includeDependencies
private boolean includeDependenciesSave dependencies for classes accepted byclassFilter -
userRenamesMappingsPath
-
userRenamesMappingsMode
-
deobfuscationOn
private boolean deobfuscationOn -
useSourceNameAsClassNameAlias
-
sourceNameRepeatLimit
private int sourceNameRepeatLimit -
generatedRenamesMappingFile
-
generatedRenamesMappingFileMode
-
resourceNameSource
-
deobfuscationMinLength
private int deobfuscationMinLength -
deobfuscationMaxLength
private int deobfuscationMaxLength -
deobfuscationWhitelist
List of classes and packages (ends with '.*') to exclude from deobfuscation -
aliasProvider
Nodes alias provider for deobfuscator and rename visitor -
renameCondition
Condition to rename node in deobfuscator -
escapeUnicode
private boolean escapeUnicode -
replaceConsts
private boolean replaceConsts -
respectBytecodeAccModifiers
private boolean respectBytecodeAccModifiers -
exportGradleType
-
restoreSwitchOverString
private boolean restoreSwitchOverString -
skipXmlPrettyPrint
private boolean skipXmlPrettyPrint -
fsCaseSensitive
private boolean fsCaseSensitive -
renameFlags
-
outputFormat
-
decompilationMode
-
codeData
-
codeNewLineStr
-
codeIndentStr
-
commentsLevel
-
integerFormat
-
typeUpdatesLimitCount
private int typeUpdatesLimitCountMaximum updates allowed total in method per one instruction. Should be more or equal 1, default value is 10. -
useDxInput
private boolean useDxInput -
useKotlinMethodsForVarNames
-
filesGetter
Additional files structure info. Defaults to tmp dirs. -
security
Additional data validation and security checks -
skipFilesSave
private boolean skipFilesSaveDon't save files (can be using for performance testing) -
runDebugChecks
private boolean runDebugChecksRun additional expensive checks to verify internal invariants and info integrity -
disabledPasses
Passes to exclude from processing. -
pluginOptions
-
disabledPlugins
-
pluginLoader
-
loadJadxClsSetFile
private boolean loadJadxClsSetFile
-
-
Constructor Details
-
JadxArgs
public JadxArgs()
-
-
Method Details
-
setRootDir
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
getInputFiles
-
addInputFile
-
setInputFile
-
setInputFiles
-
getOutDir
-
setOutDir
-
getOutDirSrc
-
setOutDirSrc
-
getOutDirRes
-
setOutDirRes
-
getThreadsCount
public int getThreadsCount() -
setThreadsCount
public void setThreadsCount(int threadsCount) -
isCfgOutput
public boolean isCfgOutput() -
setCfgOutput
public void setCfgOutput(boolean cfgOutput) -
isRawCFGOutput
public boolean isRawCFGOutput() -
setRawCFGOutput
public void setRawCFGOutput(boolean rawCFGOutput) -
isFallbackMode
public boolean isFallbackMode() -
setFallbackMode
Deprecated.Deprecated: use 'decompilation mode' property -
isShowInconsistentCode
public boolean isShowInconsistentCode() -
setShowInconsistentCode
public void setShowInconsistentCode(boolean showInconsistentCode) -
isUseImports
public boolean isUseImports() -
setUseImports
public void setUseImports(boolean useImports) -
isDebugInfo
public boolean isDebugInfo() -
setDebugInfo
public void setDebugInfo(boolean debugInfo) -
isInsertDebugLines
public boolean isInsertDebugLines() -
setInsertDebugLines
public void setInsertDebugLines(boolean insertDebugLines) -
isInlineAnonymousClasses
public boolean isInlineAnonymousClasses() -
setInlineAnonymousClasses
public void setInlineAnonymousClasses(boolean inlineAnonymousClasses) -
isInlineMethods
public boolean isInlineMethods() -
setInlineMethods
public void setInlineMethods(boolean inlineMethods) -
isAllowInlineKotlinLambda
public boolean isAllowInlineKotlinLambda() -
setAllowInlineKotlinLambda
public void setAllowInlineKotlinLambda(boolean allowInlineKotlinLambda) -
isMoveInnerClasses
public boolean isMoveInnerClasses() -
setMoveInnerClasses
public void setMoveInnerClasses(boolean moveInnerClasses) -
isExtractFinally
public boolean isExtractFinally() -
setExtractFinally
public void setExtractFinally(boolean extractFinally) -
isSkipResources
public boolean isSkipResources() -
setSkipResources
public void setSkipResources(boolean skipResources) -
isSkipSources
public boolean isSkipSources() -
setSkipSources
public void setSkipSources(boolean skipSources) -
setIncludeDependencies
public void setIncludeDependencies(boolean includeDependencies) -
isIncludeDependencies
public boolean isIncludeDependencies() -
getClassFilter
-
setClassFilter
-
getUserRenamesMappingsPath
-
setUserRenamesMappingsPath
-
getUserRenamesMappingsMode
-
setUserRenamesMappingsMode
-
isDeobfuscationOn
public boolean isDeobfuscationOn() -
setDeobfuscationOn
public void setDeobfuscationOn(boolean deobfuscationOn) -
isDeobfuscationForceSave
public boolean isDeobfuscationForceSave() -
setDeobfuscationForceSave
public void setDeobfuscationForceSave(boolean deobfuscationForceSave) -
getGeneratedRenamesMappingFileMode
-
setGeneratedRenamesMappingFileMode
-
getUseSourceNameAsClassNameAlias
-
setUseSourceNameAsClassNameAlias
public void setUseSourceNameAsClassNameAlias(UseSourceNameAsClassNameAlias useSourceNameAsClassNameAlias) -
getSourceNameRepeatLimit
public int getSourceNameRepeatLimit() -
setSourceNameRepeatLimit
public void setSourceNameRepeatLimit(int sourceNameRepeatLimit) -
isUseSourceNameAsClassAlias
Deprecated.UsegetUseSourceNameAsClassNameAlias()instead. -
setUseSourceNameAsClassAlias
Deprecated. -
getDeobfuscationMinLength
public int getDeobfuscationMinLength() -
setDeobfuscationMinLength
public void setDeobfuscationMinLength(int deobfuscationMinLength) -
getDeobfuscationMaxLength
public int getDeobfuscationMaxLength() -
setDeobfuscationMaxLength
public void setDeobfuscationMaxLength(int deobfuscationMaxLength) -
getDeobfuscationWhitelist
-
setDeobfuscationWhitelist
-
getGeneratedRenamesMappingFile
-
setGeneratedRenamesMappingFile
-
getResourceNameSource
-
setResourceNameSource
-
getAliasProvider
-
setAliasProvider
-
getRenameCondition
-
setRenameCondition
-
isEscapeUnicode
public boolean isEscapeUnicode() -
setEscapeUnicode
public void setEscapeUnicode(boolean escapeUnicode) -
isReplaceConsts
public boolean isReplaceConsts() -
setReplaceConsts
public void setReplaceConsts(boolean replaceConsts) -
isRespectBytecodeAccModifiers
public boolean isRespectBytecodeAccModifiers() -
setRespectBytecodeAccModifiers
public void setRespectBytecodeAccModifiers(boolean respectBytecodeAccModifiers) -
isExportAsGradleProject
public boolean isExportAsGradleProject() -
setExportAsGradleProject
public void setExportAsGradleProject(boolean exportAsGradleProject) -
getExportGradleType
-
setExportGradleType
-
isRestoreSwitchOverString
public boolean isRestoreSwitchOverString() -
setRestoreSwitchOverString
public void setRestoreSwitchOverString(boolean restoreSwitchOverString) -
isSkipXmlPrettyPrint
public boolean isSkipXmlPrettyPrint() -
setSkipXmlPrettyPrint
public void setSkipXmlPrettyPrint(boolean skipXmlPrettyPrint) -
isFsCaseSensitive
public boolean isFsCaseSensitive() -
setFsCaseSensitive
public void setFsCaseSensitive(boolean fsCaseSensitive) -
isRenameCaseSensitive
public boolean isRenameCaseSensitive() -
setRenameCaseSensitive
public void setRenameCaseSensitive(boolean renameCaseSensitive) -
isRenameValid
public boolean isRenameValid() -
setRenameValid
public void setRenameValid(boolean renameValid) -
isRenamePrintable
public boolean isRenamePrintable() -
setRenamePrintable
public void setRenamePrintable(boolean renamePrintable) -
updateRenameFlag
-
setRenameFlags
-
getRenameFlags
-
getOutputFormat
-
isJsonOutput
public boolean isJsonOutput() -
setOutputFormat
-
getDecompilationMode
-
setDecompilationMode
-
getCodeCache
-
setCodeCache
-
getCodeWriterProvider
-
setCodeWriterProvider
-
getUsageInfoCache
-
setUsageInfoCache
-
getCodeData
-
setCodeData
-
getCodeIndentStr
-
setCodeIndentStr
-
getCodeNewLineStr
-
setCodeNewLineStr
-
getCommentsLevel
-
setCommentsLevel
-
getIntegerFormat
-
setIntegerFormat
-
getTypeUpdatesLimitCount
public int getTypeUpdatesLimitCount() -
setTypeUpdatesLimitCount
public void setTypeUpdatesLimitCount(int typeUpdatesLimitCount) -
isUseDxInput
public boolean isUseDxInput() -
setUseDxInput
public void setUseDxInput(boolean useDxInput) -
getUseKotlinMethodsForVarNames
-
setUseKotlinMethodsForVarNames
public void setUseKotlinMethodsForVarNames(JadxArgs.UseKotlinMethodsForVarNames useKotlinMethodsForVarNames) -
getFilesGetter
-
setFilesGetter
-
getSecurity
-
setSecurity
-
isSkipFilesSave
public boolean isSkipFilesSave() -
setSkipFilesSave
public void setSkipFilesSave(boolean skipFilesSave) -
isRunDebugChecks
public boolean isRunDebugChecks() -
setRunDebugChecks
public void setRunDebugChecks(boolean runDebugChecks) -
getDisabledPasses
-
getPluginOptions
-
setPluginOptions
-
getDisabledPlugins
-
setDisabledPlugins
-
getPluginLoader
-
setPluginLoader
-
isLoadJadxClsSetFile
public boolean isLoadJadxClsSetFile() -
setLoadJadxClsSetFile
public void setLoadJadxClsSetFile(boolean loadJadxClsSetFile) -
setUseHeadersForDetectResourceExtensions
public void setUseHeadersForDetectResourceExtensions(boolean useHeadersForDetectResourceExtensions) -
isUseHeadersForDetectResourceExtensions
public boolean isUseHeadersForDetectResourceExtensions() -
makeCodeArgsHash
Hash of all options that can change result code -
buildPluginsHash
-
toString
-
getUseSourceNameAsClassNameAlias()instead.