<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:Menlo;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        mso-fareast-language:DE;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:70.85pt 70.85pt 56.7pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Umar,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">How do you use the FlowDroid API? Do you call constructCallgraph() on SetupApplication? Which options do you set in the
 InfoflowAndroidConfiguration object? What is the stack trace of the exception? I need your code, not what is in FlowDroid. There are many ways to configure FlowDroid, so it’s hard to tell anything without knowing how you use the API.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Best regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">  Steven<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Umar Farooq [mailto:ufaro001@ucr.edu]
<br>
<b>Sent:</b> Thursday, March 1, 2018 1:37 AM<br>
<b>To:</b> Arzt, Steven <steven.arzt@sit.fraunhofer.de><br>
<b>Cc:</b> soot-list@cs.mcgill.ca<br>
<b>Subject:</b> Re: [Soot-list] [Soot][FlowDroid] Running FlowDroid in whole-program mode (-w)<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Arial",sans-serif">Hello Steven, <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Arial",sans-serif">I am using FlowDroid API, The "SetupApplication" class has method "</span><span style="font-size:9.0pt;font-family:"Menlo",serif;color:black">initializeSoot"</span><span style="font-size:9.5pt;font-family:"Arial",sans-serif"> that
 is responsible to initialize soot, I have tried to set the flag for whole program but it seems it is not working. Please, see the code below.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Arial",sans-serif"> <o:p></o:p></span></p>
</div>
<div>
<pre><span style="color:black">private </span><b><span style="color:maroon">void</span></b><span style="color:black"> initializeSoot</span><span style="color:#808030">(</span><span style="color:black">boolean constructCallgraph</span><span style="color:#808030">)</span><span style="color:black"> </span><span style="color:purple">{</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        logger</span><span style="color:#808030">.</span><span style="color:black">info</span><span style="color:#808030">(</span><span style="color:maroon">"</span><span style="color:#0000E6">Initializing Soot...</span><span style="color:maroon">"</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">        final </span><span style="color:#603000">String</span><span style="color:black"> androidJar </span><span style="color:#808030">=</span><span style="color:black"> config</span><span style="color:#808030">.</span><span style="color:black">getAnalysisFileConfig</span><span style="color:#808030">().</span><span style="color:black">getAndroidPlatformDir</span><span style="color:#808030">()</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        final </span><span style="color:#603000">String</span><span style="color:black"> apkFileLocation </span><span style="color:#808030">=</span><span style="color:black"> config</span><span style="color:#808030">.</span><span style="color:black">getAnalysisFileConfig</span><span style="color:#808030">().</span><span style="color:black">getTargetAPKFile</span><span style="color:#808030">()</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">        </span><span style="color:dimgray">// Clean up any old Soot instance we may have</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        G</span><span style="color:#808030">.</span><span style="color:black">reset</span><span style="color:#808030">()</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_no_bodies_for_excluded</span><span style="color:#808030">(</span><span style="color:black">true</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_allow_phantom_refs</span><span style="color:#808030">(</span><span style="color:black">true</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        </span><b><span style="color:maroon">if</span></b><span style="color:black"> </span><span style="color:#808030">(</span><span style="color:black">config</span><span style="color:#808030">.</span><span style="color:black">getWriteOutputFiles</span><span style="color:#808030">())</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">            Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_output_format</span><span style="color:#808030">(</span><span style="color:black">Options</span><span style="color:#808030">.</span><span style="color:black">output_format_jimple</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        </span><b><span style="color:maroon">else</span></b><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">            Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_output_format</span><span style="color:#808030">(</span><span style="color:black">Options</span><span style="color:#808030">.</span><span style="color:black">output_format_none</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_whole_program</span><span style="color:#808030">(</span><span style="color:black">constructCallgraph</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_process_dir</span><span style="color:#808030">(</span><span style="color:black">Collections</span><span style="color:#808030">.</span><span style="color:black">singletonList</span><span style="color:#808030">(</span><span style="color:black">apkFileLocation</span><span style="color:#808030">))</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        </span><b><span style="color:maroon">if</span></b><span style="color:black"> </span><span style="color:#808030">(</span><span style="color:black">forceAndroidJar</span><span style="color:#808030">)</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">            Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_force_android_jar</span><span style="color:#808030">(</span><span style="color:black">androidJar</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        </span><b><span style="color:maroon">else</span></b><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">            Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_android_jars</span><span style="color:#808030">(</span><span style="color:black">androidJar</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_src_prec</span><span style="color:#808030">(</span><span style="color:black">Options</span><span style="color:#808030">.</span><span style="color:black">src_prec_apk_class_jimple</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_keep_line_number</span><span style="color:#808030">(</span><span style="color:black">false</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_keep_offset</span><span style="color:#808030">(</span><span style="color:black">false</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_throw_analysis</span><span style="color:#808030">(</span><span style="color:black">Options</span><span style="color:#808030">.</span><span style="color:black">throw_analysis_dalvik</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        Options</span><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_process_multiple_dex</span><span style="color:#808030">(</span><span style="color:black">config</span><span style="color:#808030">.</span><span style="color:black">getMergeDexFiles</span><span style="color:#808030">())</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        <b>Options</b></span><b><span style="color:#808030">.</span><span style="color:black">v</span><span style="color:#808030">().</span><span style="color:black">set_whole_program</span><span style="color:#808030">(</span><span style="color:black">true</span><span style="color:#808030">)</span><span style="color:purple">;</span></b><span style="color:black"><o:p></o:p></span></pre>
<pre><span style="color:black">        System</span><span style="color:#808030">.</span><span style="color:black">out</span><span style="color:#808030">.</span><span style="color:black">println</span><span style="color:#808030">(</span><span style="color:maroon">"</span><span style="color:#0000E6">Soot Initialization called</span><span style="color:maroon">"</span><span style="color:#808030">)</span><span style="color:purple">;</span><span style="color:black"><o:p></o:p></span></pre>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Arial",sans-serif">Thanks,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:"Arial",sans-serif">Umar<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Feb 28, 2018 at 11:58 AM, Umar Farooq <<a href="mailto:ufaro001@ucr.edu" target="_blank">ufaro001@ucr.edu</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif">Hello Steven, <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif">I am using FlowDroid API, The "SetupApplication" class has method "</span><span style="font-size:9.0pt;font-family:"Menlo",serif;color:black">initializeSoot"</span><span style="font-family:"Arial",sans-serif"> that
 is responsible to initialize soot, I have tried to set the flag for whole program but it seems it is not working. Please, see my code in attachment. <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif">Thanks,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif">Umar<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Feb 28, 2018 at 1:48 AM, Arzt, Steven <<a href="mailto:steven.arzt@sit.fraunhofer.de" target="_blank">steven.arzt@sit.fraunhofer.de</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Hi Umar,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">How do you attempt to run FlowDroid? Do you use the FlowDroid API or the command-line
 program? Please show your command line or your code with which you invoke FlowDroid.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Best regards,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">  Steven</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Soot-list
 [mailto:<a href="mailto:soot-list-bounces@cs.mcgill.ca" target="_blank">soot-list-bounces@cs.mcgill.ca</a>]
<b>On Behalf Of </b>Umar Farooq<br>
<b>Sent:</b> Wednesday, February 28, 2018 2:33 AM<br>
<b>To:</b> <a href="mailto:soot-list@cs.mcgill.ca" target="_blank">soot-list@cs.mcgill.ca</a><br>
<b>Subject:</b> [Soot-list] [Soot][FlowDroid] Running FlowDroid in whole-program mode (-w)</span><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif">Hi All,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif">I want to run FlowDroid in whole program mode, I have tried to call "</span><span style="font-size:9.0pt;font-family:"Menlo",serif;color:black">soot.options.Options.<i>v</i>().set_whole_program(</span><b><span style="font-size:9.0pt;font-family:"Menlo",serif;color:navy">true</span></b><span style="font-size:9.0pt;font-family:"Menlo",serif;color:black">);"</span><span style="font-family:"Arial",sans-serif"> it
 can work for soot but not for FlowDroid. I need to load all the bodies level classes but I am getting this message. </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif">"The data flow analysis has failed. Error message: This operation requires resolving level BODIES but android.support.v7.app.AppCompatActivity
 is at resolving level SIGNATURES</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif">If you are extending Soot, try to add the following call before calling soot.Main.main(..):</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif">Scene.v().addBasicClass(android.support.v7.app.AppCompatActivity,BODIES);</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif">Otherwise, try whole-program mode (-w)."</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif">Thanks,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Arial",sans-serif">Umar</span><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>