Java Code Examples for jadx.api.JadxArgs#isFallbackMode()

The following examples show how to use jadx.api.JadxArgs#isFallbackMode() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Jadx.java    From Box with Apache License 2.0 4 votes vote down vote up
public static List<IDexTreeVisitor> getPassesList(JadxArgs args) {
	List<IDexTreeVisitor> passes = new ArrayList<>();
	if (args.isFallbackMode()) {
		passes.add(new FallbackModeVisitor());
	} else {
		if (args.isDebugInfo()) {
			passes.add(new DebugInfoParseVisitor());
		}

		passes.add(new BlockSplitter());
		if (args.isRawCFGOutput()) {
			passes.add(DotGraphVisitor.dumpRaw());
		}

		passes.add(new BlockProcessor());
		passes.add(new BlockExceptionHandler());
		passes.add(new BlockFinish());

		passes.add(new SSATransform());
		passes.add(new ConstructorVisitor());
		passes.add(new InitCodeVariables());
		passes.add(new MarkFinallyVisitor());
		passes.add(new ConstInlineVisitor());
		passes.add(new TypeInferenceVisitor());
		if (args.isDebugInfo()) {
			passes.add(new DebugInfoApplyVisitor());
		}

		passes.add(new DeboxingVisitor());
		passes.add(new ModVisitor());
		passes.add(new CodeShrinkVisitor());
		passes.add(new ReSugarCode());
		if (args.isCfgOutput()) {
			passes.add(DotGraphVisitor.dump());
		}

		passes.add(new RegionMakerVisitor());
		passes.add(new IfRegionVisitor());
		passes.add(new ReturnVisitor());
		passes.add(new CleanRegions());

		passes.add(new CodeShrinkVisitor());
		passes.add(new SimplifyVisitor());
		passes.add(new CheckRegions());

		passes.add(new ExtractFieldInit());
		passes.add(new FixAccessModifiers());
		passes.add(new ProcessAnonymous());
		passes.add(new ClassModifier());
		passes.add(new MethodInlineVisitor());
		passes.add(new EnumVisitor());
		passes.add(new LoopRegionVisitor());

		passes.add(new ProcessVariables());
		passes.add(new PrepareForCodeGen());
		if (args.isCfgOutput()) {
			passes.add(DotGraphVisitor.dumpRegions());
		}

		passes.add(new DependencyCollector());
		passes.add(new RenameVisitor());
	}
	return passes;
}
 
Example 2
Source File: ClassGen.java    From Box with Apache License 2.0 4 votes vote down vote up
public ClassGen(ClassNode cls, JadxArgs jadxArgs) {
	this(cls, null, jadxArgs.isUseImports(), jadxArgs.isFallbackMode(), jadxArgs.isShowInconsistentCode());
}
 
Example 3
Source File: Jadx.java    From Box with Apache License 2.0 4 votes vote down vote up
public static List<IDexTreeVisitor> getPassesList(JadxArgs args) {
	List<IDexTreeVisitor> passes = new ArrayList<>();
	if (args.isFallbackMode()) {
		passes.add(new FallbackModeVisitor());
	} else {
		if (args.isDebugInfo()) {
			passes.add(new DebugInfoParseVisitor());
		}

		passes.add(new BlockSplitter());
		if (args.isRawCFGOutput()) {
			passes.add(DotGraphVisitor.dumpRaw());
		}

		passes.add(new BlockProcessor());
		passes.add(new BlockExceptionHandler());
		passes.add(new BlockFinish());

		passes.add(new SSATransform());
		passes.add(new ConstructorVisitor());
		passes.add(new InitCodeVariables());
		passes.add(new MarkFinallyVisitor());
		passes.add(new ConstInlineVisitor());
		passes.add(new TypeInferenceVisitor());
		if (args.isDebugInfo()) {
			passes.add(new DebugInfoApplyVisitor());
		}

		passes.add(new DeboxingVisitor());
		passes.add(new ModVisitor());
		passes.add(new CodeShrinkVisitor());
		passes.add(new ReSugarCode());
		if (args.isCfgOutput()) {
			passes.add(DotGraphVisitor.dump());
		}

		passes.add(new RegionMakerVisitor());
		passes.add(new IfRegionVisitor());
		passes.add(new ReturnVisitor());
		passes.add(new CleanRegions());

		passes.add(new CodeShrinkVisitor());
		passes.add(new SimplifyVisitor());
		passes.add(new CheckRegions());

		passes.add(new ExtractFieldInit());
		passes.add(new FixAccessModifiers());
		passes.add(new ProcessAnonymous());
		passes.add(new ClassModifier());
		passes.add(new MethodInlineVisitor());
		passes.add(new EnumVisitor());
		passes.add(new LoopRegionVisitor());

		passes.add(new ProcessVariables());
		passes.add(new PrepareForCodeGen());
		if (args.isCfgOutput()) {
			passes.add(DotGraphVisitor.dumpRegions());
		}

		passes.add(new DependencyCollector());
		passes.add(new RenameVisitor());
	}
	return passes;
}
 
Example 4
Source File: ClassGen.java    From Box with Apache License 2.0 4 votes vote down vote up
public ClassGen(ClassNode cls, JadxArgs jadxArgs) {
	this(cls, null, jadxArgs.isUseImports(), jadxArgs.isFallbackMode(), jadxArgs.isShowInconsistentCode());
}
 
Example 5
Source File: Jadx.java    From jadx with Apache License 2.0 4 votes vote down vote up
public static List<IDexTreeVisitor> getPassesList(JadxArgs args) {
	if (args.isFallbackMode()) {
		return getFallbackPassesList();
	}

	List<IDexTreeVisitor> passes = new ArrayList<>();
	if (args.isDebugInfo()) {
		passes.add(new DebugInfoAttachVisitor());
	}
	passes.add(new AttachTryCatchVisitor());
	passes.add(new ProcessInstructionsVisitor());

	passes.add(new BlockSplitter());
	if (args.isRawCFGOutput()) {
		passes.add(DotGraphVisitor.dumpRaw());
	}
	passes.add(new BlockProcessor());
	passes.add(new BlockExceptionHandler());
	passes.add(new BlockFinish());

	passes.add(new AttachMethodDetails());
	passes.add(new OverrideMethodVisitor());

	passes.add(new SSATransform());
	passes.add(new MoveInlineVisitor());
	passes.add(new ConstructorVisitor());
	passes.add(new InitCodeVariables());
	passes.add(new MarkFinallyVisitor());
	passes.add(new ConstInlineVisitor());
	passes.add(new TypeInferenceVisitor());
	if (args.isDebugInfo()) {
		passes.add(new DebugInfoApplyVisitor());
	}

	passes.add(new GenericTypesVisitor());
	passes.add(new ShadowFieldVisitor());
	passes.add(new DeboxingVisitor());
	passes.add(new ModVisitor());
	passes.add(new CodeShrinkVisitor());
	passes.add(new ReSugarCode());
	if (args.isCfgOutput()) {
		passes.add(DotGraphVisitor.dump());
	}

	passes.add(new RegionMakerVisitor());
	passes.add(new IfRegionVisitor());
	passes.add(new ReturnVisitor());
	passes.add(new CleanRegions());

	passes.add(new CodeShrinkVisitor());
	passes.add(new MethodInvokeVisitor());
	passes.add(new SimplifyVisitor());
	passes.add(new CheckRegions());

	passes.add(new EnumVisitor());
	passes.add(new ExtractFieldInit());
	passes.add(new FixAccessModifiers());
	passes.add(new ProcessAnonymous());
	passes.add(new ClassModifier());
	passes.add(new MethodInlineVisitor());
	passes.add(new LoopRegionVisitor());

	passes.add(new ProcessVariables());
	passes.add(new PrepareForCodeGen());
	if (args.isCfgOutput()) {
		passes.add(DotGraphVisitor.dumpRegions());
	}
	return passes;
}
 
Example 6
Source File: ClassGen.java    From jadx with Apache License 2.0 4 votes vote down vote up
public ClassGen(ClassNode cls, JadxArgs jadxArgs) {
	this(cls, null, jadxArgs.isUseImports(), jadxArgs.isFallbackMode(), jadxArgs.isShowInconsistentCode());
}