package de.ecspride.pep; import java.io.File; import java.util.Collections; import soot.Scene; import soot.jimple.infoflow.config.IInfoflowConfig; import soot.options.Options; import de.ecspride.Settings; public class ConfigForPolicyEnforcementPoint implements IInfoflowConfig { @Override public void setSootOptions(Options options) { options.set_validate(true); Options.v().set_allow_phantom_refs(true); Options.v().set_prepend_classpath(false); Options.v().set_whole_program(true); //input format Options.v().set_src_prec(Options.src_prec_apk); //the output is an unsigned apk file Options.v().set_output_format(Options.output_format_dex); Options.v().set_process_dir(Collections.singletonList(Settings.instance.apkFile)); options.set_soot_classpath(Settings.instance.bin + File.pathSeparator + Scene.v().defaultClassPath()); Settings.instance.initialiseInstrumentationClasses(); } }