<div dir="ltr">Hi all, <div>    I make small changes to flowdroid so that flowdroid only track user input in EditText. <b>When I use flowdroid like before with EasyTaintWrapper, it works well.</b><br><div>    But  when I use the flowdroid with <b>soot-infoflow-summaries</b>, the jars are same with before, but some exceptions occur. </div><div><br></div><div>Commandline are:</div><div><b>1)</b> java -Xmx64g -cp guava-18.0.jar:soot-trunk.jar:soot-infoflow.jar:soot-infoflow-android.jar:slf4j-api-1.7.5.jar:slf4j-simple-1.7.5.jar:axml-2.0.jar:AXMLPrinter2.jar:dexlib2-2.1.3-a5d82813.jar:util-2.1.3-a5d82813.jar:asm-debug-all-5.1.jar soot.jimple.infoflow.android.TestApps.Test  xxxx.apk  /home/wah/android/tools/platforms --pathalgo contextsensitive --callbackanalyzer FAST --noexceptions --aliasflowins --layoutmode pwd --nostatic --noarraysize</div><div><br></div><div><b>2) </b>java -Xmx64g -cp guava-18.0.jar:soot-trunk.jar:soot-infoflow.jar:soot-infoflow-android.jar:slf4j-api-1.7.5.jar:slf4j-simple-1.7.5.jar:axml-2.0.jar:AXMLPrinter2.jar:dexlib2-2.1.3-a5d82813.jar:util-2.1.3-a5d82813.jar:asm-debug-all-5.1.jar:<b>soot-infoflow-summaries.jar</b> soot.jimple.infoflow.android.TestApps.Test  xxxx.apk /home/wah/android/tools/platforms --pathalgo contextsensitive --callbackanalyzer FAST --noexceptions --aliasflowins --layoutmode pwd --nostatic --noarraysize --notypetightening <b>--summarypath ./summariesAndroid/</b></div><div><br></div><div>Log are here:</div><div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>[main] INFO soot.jimple.infoflow.data.FlowDroidMemoryManager - Initializing FlowDroid memory manager...</div><div>[main] WARN soot.jimple.infoflow.android.InfoflowAndroidConfiguration - Static field tracking is disabled, results may be incomplete</div><div>[main] WARN soot.jimple.infoflow.android.InfoflowAndroidConfiguration - Using flow-insensitive alias tracking, results may be imprecise</div><div>[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration - Implicit flow tracking is NOT enabled</div><div>[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration - Exceptional flow tracking is NOT enabled</div><div>[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration - Running with a maximum access path length of 1</div><div>[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration - Using path-agnostic result collection</div><div>[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration - Recursive access path shortening is enabled</div><div>[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration - Taint analysis enabled: true</div><div>[main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and sinks...</div><div>[main] INFO soot.jimple.infoflow.Infoflow - Source lookup done, found 15 sources and 3 sinks.</div><div><b>[Thread-29] ERROR heros.solver.IDESolver - Worker thread execution failed: unnumbered</b></div><div><b>java.lang.RuntimeException: unnumbered</b></div><div>        at soot.util.SmallNumberedMap.findPosition(SmallNumberedMap.java:119)</div><div>        at soot.util.SmallNumberedMap.get(SmallNumberedMap.java:51)</div><div>        at soot.SootClass.declaresMethod(SootClass.java:368)</div><div>        at soot.SootClass.declaresMethod(SootClass.java:397)</div><div>        at soot.Scene.grabMethod(Scene.java:725)</div><div>        at soot.Scene.containsMethod(Scene.java:731)</div><div>        at soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.getFlowSummariesForGap(SummaryTaintWrapper.java:789)</div><div>        at soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.applyFlowsIterative(SummaryTaintWrapper.java:615)</div><div>        at soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.computeTaintsForMethod(SummaryTaintWrapper.java:580)</div><div>        at soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.getTaintsForMethod(SummaryTaintWrapper.java:493)</div><div>        at soot.jimple.infoflow.problems.rules.WrapperPropagationRule.computeWrapperTaints(WrapperPropagationRule.java:96)</div><div>        at soot.jimple.infoflow.problems.rules.WrapperPropagationRule.propagateCallToReturnFlow(WrapperPropagationRule.java:136)</div></div></blockquote></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>        at soot.jimple.infoflow.problems.rules.PropagationRuleManager.applyCallToReturnFlowFunction(PropagationRuleManager.java:172)</div><div>        at soot.jimple.infoflow.problems.InfoflowProblem$1$4.computeTargetsInternal(InfoflowProblem.java:785)</div><div>        at soot.jimple.infoflow.problems.InfoflowProblem$1$4.computeTargets(InfoflowProblem.java:756)</div><div>        at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeCallToReturnFlowFunction(InfoflowSolver.java:94)</div><div>        at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeCallToReturnFlowFunction(InfoflowSolver.java:1)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:319)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$0(IFDSSolver.java:245)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:634)</div><div>        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)</div><div>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)</div><div>        at java.lang.Thread.run(Thread.java:745)</div></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>java.lang.InterruptedException</div><div>        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:998)</div><div>        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)</div><div>        at heros.solver.CountLatch.awaitZero(CountLatch.java:75)</div><div>        at heros.solver.CountingThreadPoolExecutor.awaitCompletion(CountingThreadPoolExecutor.java:79)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:213)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:188)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:164)</div><div>        at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:458)</div><div>        at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:152)</div><div>        at soot.jimple.infoflow.android.SetupApplication.runInfoflow(SetupApplication.java:848)</div><div>        at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Test.java:708)</div><div>        at soot.jimple.infoflow.android.TestApps.Test.main(Test.java:297)</div><div>Exception in thread &quot;main&quot; java.lang.RuntimeException: There were exceptions during IFDS analysis. Exiting.</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:219)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:188)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:164)</div><div>        at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:458)</div><div>        at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:152)</div><div>        at soot.jimple.infoflow.android.SetupApplication.runInfoflow(SetupApplication.java:848)</div><div>        at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Test.java:708)</div><div>        at soot.jimple.infoflow.android.TestApps.Test.main(Test.java:297)</div><div><b>Caused by: java.lang.RuntimeException: unnumbered</b></div><div>        at soot.util.SmallNumberedMap.findPosition(SmallNumberedMap.java:119)</div><div>        at soot.util.SmallNumberedMap.get(SmallNumberedMap.java:51)</div><div>        at soot.SootClass.declaresMethod(SootClass.java:368)</div><div>        at soot.SootClass.declaresMethod(SootClass.java:397)</div><div>        at soot.Scene.grabMethod(Scene.java:725)</div><div>        at soot.Scene.containsMethod(Scene.java:731)</div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>        at soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.getFlowSummariesForGap(SummaryTaintWrapper.java:789)</div><div>        at soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.applyFlowsIterative(SummaryTaintWrapper.java:615)</div><div>        at soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.computeTaintsForMethod(SummaryTaintWrapper.java:580)</div><div>        at soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.getTaintsForMethod(SummaryTaintWrapper.java:493)</div><div>        at soot.jimple.infoflow.problems.rules.WrapperPropagationRule.computeWrapperTaints(WrapperPropagationRule.java:96)</div><div>        at soot.jimple.infoflow.problems.rules.WrapperPropagationRule.propagateCallToReturnFlow(WrapperPropagationRule.java:136)</div><div>        at soot.jimple.infoflow.problems.rules.PropagationRuleManager.applyCallToReturnFlowFunction(PropagationRuleManager.java:172)</div><div>        at soot.jimple.infoflow.problems.InfoflowProblem$1$4.computeTargetsInternal(InfoflowProblem.java:785)</div><div>        at soot.jimple.infoflow.problems.InfoflowProblem$1$4.computeTargets(InfoflowProblem.java:756)</div><div>        at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeCallToReturnFlowFunction(InfoflowSolver.java:94)</div><div>        at soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeCallToReturnFlowFunction(InfoflowSolver.java:1)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:319)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$0(IFDSSolver.java:245)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:634)</div><div>        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)</div><div>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)</div><div>        at java.lang.Thread.run(Thread.java:745)</div></blockquote></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>.... </div></div></blockquote><div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>[Thread-48] ERROR <b>heros.solver.IDESolver - Worker thread execution failed</b>: Task soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask@33fd50e0 rejected from heros.solver.CountingThreadPoolExecutor@2fe3068c[Shutting down, pool size = 64, active threads = 58, queued tasks = 0, completed tasks = 19397]</div><div>java.util.concurrent.RejectedExecutionException: Task soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask@33fd50e0 rejected from heros.solver.CountingThreadPoolExecutor@2fe3068c[Shutting down, pool size = 64, active threads = 58, queued tasks = 0, completed tasks = 19397]</div><div>        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047)</div><div>        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)</div><div>        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1364)</div><div>        at heros.solver.CountingThreadPoolExecutor.execute(CountingThreadPoolExecutor.java:51)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.scheduleEdgeProcessing(IFDSSolver.java:233)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.propagate(IFDSSolver.java:545)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.propagate(IFDSSolver.java:508)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:477)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$1(IFDSSolver.java:465)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:641)</div><div>        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)</div><div>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)</div><div>        at java.lang.Thread.run(Thread.java:745)</div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>[Thread-50] ERROR heros.solver.IDESolver - Worker thread execution failed: Task soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask@2de31636 rejected from heros.solver.CountingThreadPoolExecutor@2fe3068c[Shutting down, pool size = 59, active threads = 57, queued tasks = 0, completed tasks = 19398]</div><div>[Thread-4] ERROR heros.solver.IDESolver - Worker thread execution failed: Task soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask@f288b75c rejected from heros.solver.CountingThreadPoolExecutor@2fe3068c[Shutting down, pool size = 59, active threads = 57, queued tasks = 0, completed tasks = 19398]</div><div>[Thread-23] ERROR heros.solver.IDESolver - Worker thread execution failed: Task soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask@6a1caec5 rejected from heros.solver.CountingThreadPoolExecutor@2fe3068c[Shutting down, pool size = 60, active threads = 57, queued tasks = 0, completed tasks = 19398]</div><div>[Thread-34] ERROR heros.solver.IDESolver - Worker thread execution failed: Task soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask@8ad70b09 rejected from heros.solver.CountingThreadPoolExecutor@2fe3068c[Shutting down, pool size = 60, active threads = 57, queued tasks = 0, completed tasks = 19398]</div><div>java.util.concurrent.RejectedExecutionException: Task soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask@8ad70b09 rejected from heros.solver.CountingThreadPoolExecutor@2fe3068c[Shutting down, pool size = 60, active threads = 57, queued tasks = 0, completed tasks = 19398]</div><div>        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047)</div><div>        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)</div><div>        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1364)</div><div>        at heros.solver.CountingThreadPoolExecutor.execute(CountingThreadPoolExecutor.java:51)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.scheduleEdgeProcessing(IFDSSolver.java:233)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.propagate(IFDSSolver.java:545)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.propagate(IFDSSolver.java:508)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:477)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$1(IFDSSolver.java:465)</div><div>        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:641)</div><div>        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)</div><div>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)</div><div>        at java.lang.Thread.run(Thread.java:745)</div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>[Thread-1] ERROR heros.solver.IDESolver - Worker thread execution failed: <b>This operation requires resolving level HIERARCHY but java.util.HashMap$HashIterator is at resolving level DANGLING</b></div><div><b>If you are extending Soot, try to add the following call before calling soot.Main.main(..):</b></div><div>Scene.v().addBasicClass(java.util.HashMap$HashIterator,HIERARCHY);</div><div>Otherwise, try whole-program mode (-w).</div><div>java.lang.RuntimeException: This operation requires resolving level HIERARCHY but java.util.HashMap$HashIterator is at resolving level DANGLING</div><div>If you are extending Soot, try to add the following call before calling soot.Main.main(..):</div><div>Scene.v().addBasicClass(java.util.HashMap$HashIterator,HIERARCHY);</div><div>Otherwise, try whole-program mode (-w).</div></blockquote></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>.....</div></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>[Thread-55] ERROR heros.solver.IDESolver - <b>Worker thread execution failed: Scene changed for Hierarchy</b>!</div><div>[Thread-12] ERROR heros.solver.IDESolver - Worker thread execution failed: no active FastHierarchy present for scene</div><div>[Thread-70] ERROR heros.solver.IDESolver - Worker thread execution failed: This operation requires resolving level HIERARCHY but java.util.HashMap$HashIterator is at resolving level DANGLING</div><div>If you are extending Soot, try to add the following call before calling soot.Main.main(..):</div><div>Scene.v().addBasicClass(java.util.HashMap$HashIterator,HIERARCHY);</div><div>Otherwise, try whole-program mode (-w).</div><div>[Thread-7] ERROR heros.solver.IDESolver - Worker thread execution failed: Scene changed for Hierarchy!</div><div>[Thread-48] ERROR heros.solver.IDESolver - Worker thread execution failed: Scene changed for Hierarchy!</div><div>[Thread-15] ERROR heros.solver.IDESolver - Worker thread execution failed: Scene changed for Hierarchy!</div><div>[Thread-62] ERROR heros.solver.IDESolver - Worker thread execution failed: Scene changed for Hierarchy!</div><div>[Thread-57] ERROR heros.solver.IDESolver - Worker thread execution failed: Scene changed for Hierarchy!</div><div>[Thread-32] ERROR heros.solver.IDESolver - Worker thread execution failed: Scene changed for Hierarchy!</div><div>[Thread-77] ERROR heros.solver.IDESolver - Worker thread execution failed: Scene changed for Hierarchy!</div></blockquote><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>Could you give me some suggestions according to the log? Any suggestions are appreciated.</div></blockquote><div>Best regards,</div><div>hxs </div><div><div> </div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div> </div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div> </div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div> </div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div> </div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div> </div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div> </div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div> </div></div></blockquote></div></div>