<div dir="ltr"><div><div><div><div>Interesting,<br></div>I'm assuming you use FlowDroid. I'm also looking into good options for performance.<br><br></div>What size is the apk and how much faster are these settings compared to defaults?<br><br></div>thanks,<br></div>Denis<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 6 April 2016 at 06:05, Simone Aonzo <span dir="ltr"><<a href="mailto:simone.aonzo@gmail.com" target="_blank">simone.aonzo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is the way I get a call graph in a reasonable time... if someone<br>
has better ideas: share!<br>
<br>
soot.G.reset();<br>
SetupApplication setupApplication = new<br>
SetupApplication(androidJar.toString(), apk.toString());<br>
setupApplication.getConfig().setFlowSensitiveAliasing(false);<br>
// --aliasflowins<br>
setupApplication.getConfig().setAccessPathLength(1); // --aplength n<br>
setupApplication.getConfig().setEnableStaticFieldTracking(false);<br>
// --nostatic<br>
setupApplication.getConfig().setEnableCallbacks(false);// --nocallbacks<br>
setupApplication.getConfig().setPathBuilder(DefaultPathBuilderFactory.PathBuilder.ContextSensitive);//<br>
--pathalgo<br>
setupApplication.getConfig().setComputeResultPaths(false); // --nopaths<br>
setupApplication.getConfig().setEnableExceptionTracking(false);<br>
// --noexceptions<br>
setupApplication.calculateSourcesSinksEntrypoints(sourcesAndSinks.toString());<br>
<br>
Options.v().set_src_prec(Options.src_prec_apk);<br>
Options.v().set_soot_classpath("/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:.");<br>
Options.v().set_process_dir(Collections.singletonList(apk.toString()));<br>
Options.v().set_android_jars(androidJar.toString());<br>
<br>
List<String> excludeList = new LinkedList<String>();<br>
excludeList.add("java.");<br>
excludeList.add("sun.misc.");<br>
excludeList.add("android.");<br>
excludeList.add("org.apache.");<br>
excludeList.add("soot.");<br>
excludeList.add("javax.servlet.");<br>
<br>
Options.v().set_exclude(excludeList);<br>
Options.v().set_no_bodies_for_excluded(true);<br>
Options.v().set_output_format(Options.output_format_none);<br>
Options.v().set_allow_phantom_refs(true);<br>
Options.v().set_whole_program(true);<br>
Options.v().setPhaseOption("cg.spark", "on");<br>
Options.v().setPhaseOption("cg", "trim-clinit:false");<br>
SootMethod dummyMain =<br>
setupApplication.getEntryPointCreator().createDummyMain();<br>
Options.v().set_main_class(dummyMain.getSignature());<br>
Scene.v().setEntryPoints(Collections.singletonList(dummyMain));<br>
PackManager.v().runPacks();<br>
CallGraph callGraph = Scene.v().getCallGraph();<br>
<br>
2016-04-04 12:37 GMT+02:00 Enzo Lucky <<a href="mailto:luckenzo24@yahoo.com">luckenzo24@yahoo.com</a>>:<br>
> Hi,<br>
><br>
> I am using Soot to generate call graph of some Android apps, and I find Soot<br>
> take more than a day to generate the call graph for some apps. Can I do<br>
> anything other than the suggestions in the FlowDroid homepage<br>
> (<a href="https://github.com/secure-software-engineering/soot-infoflow-android/wiki#improving-performance" rel="noreferrer" target="_blank">https://github.com/secure-software-engineering/soot-infoflow-android/wiki#improving-performance</a>)?<br>
> I want a precise call graph and hence, I didn't use any of the options.<br>
> Also, is the time normal or am I doing something wrong? Please find attached<br>
> my dummy main class.<br>
><br>
> Thanks,<br>
> Enzo<br>
><br>
> _______________________________________________<br>
> Soot-list mailing list<br>
> <a href="mailto:Soot-list@CS.McGill.CA">Soot-list@CS.McGill.CA</a><br>
> <a href="https://mailman.CS.McGill.CA/mailman/listinfo/soot-list" rel="noreferrer" target="_blank">https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</a><br>
><br>
_______________________________________________<br>
Soot-list mailing list<br>
<a href="mailto:Soot-list@CS.McGill.CA">Soot-list@CS.McGill.CA</a><br>
<a href="https://mailman.CS.McGill.CA/mailman/listinfo/soot-list" rel="noreferrer" target="_blank">https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr">Denis<br></div></div>
</div>