<div dir="ltr"><div>Hi all,</div><div><br></div><div>I was analyzing the following APK using Soot, Soot Infoflow and Soot Infoflow Android.</div><div><br></div><a href="https://drive.google.com/file/d/0B0ceYAgUVEZbMkZ5UHVUR0JfVU0/view?usp=sharing">https://drive.google.com/file/d/0B0ceYAgUVEZbMkZ5UHVUR0JfVU0/view?usp=sharing</a><div><br></div><div>However, the following exception is thrown:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Exception in thread &quot;main&quot; java.lang.RuntimeException: This operation requires resolving level SIGNATURES but com.fusepowered.ac.AdColonyBrowser is at resolving level DANGLING</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">If you are extending Soot, try to add the following call before calling soot.Main.main(..):</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Scene.v().addBasicClass(com.fusepowered.ac.AdColonyBrowser,SIGNATURES);</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Otherwise, try whole-program mode (-w).</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:152)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.SootClass.checkLevel(SootClass.java:138)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.SootClass.getMethods(SootClass.java:449)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.spark.builder.ContextInsensitiveBuilder.handleClass(ContextInsensitiveBuilder.java:106)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:85)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:84)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.SceneTransformer.transform(SceneTransformer.java:39)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.Transform.apply(Transform.java:90)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.RadioScenePack.internalApply(RadioScenePack.java:57)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:49)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.Pack.apply(Pack.java:116)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.infoflow.android.SetupApplication.calculateCallbackMethods(SetupApplication.java:467)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(SetupApplication.java:378)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(SetupApplication.java:344)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Test.java:507)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="Apple-tab-span" style="white-space:pre">        </span>at soot.jimple.infoflow.android.TestApps.Test.main(Test.java:210)</blockquote></blockquote><div><br></div><div>I already set whole program mode with &quot;<font face="monospace, monospace">Options.v().set_whole_program(true);</font>&quot;, and &quot;<font face="monospace, monospace">Scene.v().addBasicClass(&quot;com.fusepowered.ac.AdColonyBrowser&quot;, SootClass.SIGNATURES);</font>&quot; does not help either. </div><div><br></div><div>My setup is the latest source code on the develop branch (or default branch on GitHub) of Jasmin (<a href="https://github.com/Sable/jasmin">https://github.com/Sable/jasmin</a>), Heros (<a href="https://github.com/Sable/heros">https://github.com/Sable/heros</a>), Soot (<a href="https://github.com/Sable/soot">https://github.com/Sable/soot</a>), Soot Infoflow (<a href="https://github.com/secure-software-engineering/soot-infoflow">https://github.com/secure-software-engineering/soot-infoflow</a>) and Soot Infoflow Android (<a href="https://github.com/secure-software-engineering/soot-infoflow-android">https://github.com/secure-software-engineering/soot-infoflow-android</a>). My arguments are &quot;/PATH/TO/APK /PATH/TO/android-platforms&quot;. The &quot;android-platform&quot; directory is also a clone of <a href="https://github.com/Sable/android-platforms">https://github.com/Sable/android-platforms</a>. The JRE used by Eclipse is Oracle Java 7 on Ubuntu 15.04 64-bit (/usr/lib/jvm/java-7-oracle).</div><div><br></div><div>Can you reproduce the issue?</div><div><br></div><div>Thanks.</div></div>