<div dir="ltr"><div><div><div><div>Interesting,<br></div>I&#39;m assuming you use FlowDroid. I&#39;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">&lt;<a href="mailto:simone.aonzo@gmail.com" target="_blank">simone.aonzo@gmail.com</a>&gt;</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(&quot;/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:.&quot;);<br>
        Options.v().set_process_dir(Collections.singletonList(apk.toString()));<br>
        Options.v().set_android_jars(androidJar.toString());<br>
<br>
        List&lt;String&gt; excludeList = new LinkedList&lt;String&gt;();<br>
        excludeList.add(&quot;java.&quot;);<br>
        excludeList.add(&quot;sun.misc.&quot;);<br>
        excludeList.add(&quot;android.&quot;);<br>
        excludeList.add(&quot;org.apache.&quot;);<br>
        excludeList.add(&quot;soot.&quot;);<br>
        excludeList.add(&quot;javax.servlet.&quot;);<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(&quot;cg.spark&quot;, &quot;on&quot;);<br>
        Options.v().setPhaseOption(&quot;cg&quot;, &quot;trim-clinit:false&quot;);<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 &lt;<a href="mailto:luckenzo24@yahoo.com">luckenzo24@yahoo.com</a>&gt;:<br>
&gt; Hi,<br>
&gt;<br>
&gt; I am using Soot to generate call graph of some Android apps, and I find Soot<br>
&gt; take more than a day to generate the call graph for some apps. Can I do<br>
&gt; anything other than the suggestions in the FlowDroid homepage<br>
&gt; (<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>
&gt; I want a precise call graph and hence, I didn&#39;t use any of the options.<br>
&gt; Also, is the time normal or am I doing something wrong? Please find attached<br>
&gt; my dummy main class.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Enzo<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Soot-list mailing list<br>
&gt; <a href="mailto:Soot-list@CS.McGill.CA">Soot-list@CS.McGill.CA</a><br>
&gt; <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>
&gt;<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>