<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">Hi all,</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">I used soot as a eclipse plugin,and I catched the call graph for apk files,but my result was incomplete.</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;"><div style="font-size: 14.2857151031494px; line-height: 22.6666660308838px;">The following code is that how I generated the dummymainmethod:</div><div style="font-size: 14.2857151031494px; line-height: 22.6666660308838px;">&lt;snip&gt;</div><div style="font-size: 14.2857151031494px; line-height: 22.6666660308838px;"><div>soot.G.reset();</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Options.v().set_src_prec(Options.src_prec_apk);</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Options.v()</div><div><span class="Apple-tab-span" style="white-space: pre;">                                </span>.set_process_dir(</div><div><span class="Apple-tab-span" style="white-space: pre;">                                                </span>Collections</div><div><span class="Apple-tab-span" style="white-space: pre;">                                                                </span>.singletonList("D:/Program Files/soot/eclipse-soot/workspace/Test/bin/test5-29.apk"));</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Options.v().set_force_android_jar("D:/Program Files/soot/android-17/android--1/android.jar");</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Options.v().set_output_format(0);</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Options.v().set_whole_program(true);</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Options.v().set_allow_phantom_refs(true);</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Options.v().set_output_format(Options.output_format_none);</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>PhaseOptions.v().setPhaseOption("cg", "enabled:true");</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>PhaseOptions.v().setPhaseOption("cg", "implicit-entry:false");</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>PhaseOptions.v().setPhaseOption("cg", "verbose:true");</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>PhaseOptions.v().setPhaseOption("cg", "jdkver:7");</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>PhaseOptions.v().setPhaseOption("cg", "all-reachable:true");</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Scene.v().loadNecessaryClasses();</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span><span style="color: rgb(255, 0, 0);">SootMethod entryPoint = app.getEntryPointCreator().createDummyMain();</span></div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Options.v().set_main_class(entryPoint.getSignature());</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>Scene.v().setEntryPoints(Collections.singletonList(entryPoint));</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>PackManager.v().runPacks();</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>System.out.println(Scene.v().getCallGraph().size());</div><div><span class="Apple-tab-span" style="white-space: pre;">                </span>CallGraph cg = Scene.v().getCallGraph();</div></div><div style="font-size: 14.2857151031494px; line-height: 22.6666660308838px;">&lt;/snip&gt;</div><div style="font-size: 14.2857151031494px; line-height: 22.6666660308838px;"><br></div></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">The following is my call graph result for one apk:</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;"><p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;dummyMainClass:
void
dummyMainMethod()&gt;---invoke---&lt;com.example.test.DisplayContactActivity1:
void &lt;init&gt;()&gt;</span><span lang="EN-US" style="font-size:10.5pt;
font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.DisplayContactActivity1:
void &lt;init&gt;()&gt;---invoke---&lt;android.telephony.SmsManager:
android.telephony.SmsManager getDefault()&gt;</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.DisplayContactActivity1:
void &lt;init&gt;()&gt;---invoke---&lt;android.app.Activity: void
&lt;init&gt;()&gt;</span><span lang="EN-US" style="font-size:10.5pt;font-family:
Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.MainActivity:
void &lt;init&gt;()&gt;---invoke---&lt;android.app.Activity: void
&lt;init&gt;()&gt;</span><span lang="EN-US" style="font-size:10.5pt;font-family:
Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;dummyMainClass:
void dummyMainMethod()&gt;---invoke---&lt;com.example.test.MainActivity: void
onCreate(android.os.Bundle)&gt;</span><span lang="EN-US" style="font-size:10.5pt;
font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.MainActivity:
void onCreate(android.os.Bundle)&gt;---invoke---&lt;android.app.Activity: void
onCreate(android.os.Bundle)&gt;</span><span lang="EN-US" style="font-size:10.5pt;
font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span style="mso-ignore:vglayout;
position:absolute;z-index:251658240;margin-left:-11px;margin-top:1px;
width:1081px;height:263px"><img width="1081" height="263" src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" v:shapes="_x0000_s1026"></span><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.DisplayContactActivity1:
void onCreate(android.os.Bundle)&gt;---invoke---&lt;java.lang.String:
java.lang.String valueOf(int)&gt;</span><span lang="EN-US" style="font-size:10.5pt;
font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.DisplayContactActivity1:
void onCreate(android.os.Bundle)&gt;---invoke---&lt;java.lang.StringBuilder:
void &lt;init&gt;(java.lang.String)&gt;</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.DisplayContactActivity1:
void onCreate(android.os.Bundle)&gt;---invoke---&lt;android.widget.TextView:
void &lt;init&gt;(android.content.Context)&gt;</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.DisplayContactActivity1:
void
onCreate(android.os.Bundle)&gt;---invoke---&lt;com.example.test.DisplayContactActivity1:
int add(int,int)&gt;</span><span lang="EN-US" style="font-size:10.5pt;font-family:
Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.DisplayContactActivity1:
void onCreate(android.os.Bundle)&gt;---invoke---&lt;android.app.Activity: void
onCreate(android.os.Bundle)&gt;</span><span lang="EN-US" style="font-size:10.5pt;
font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;com.example.test.DisplayContactActivity1:
void onCreate(android.os.Bundle)&gt;---invoke---&lt;java.lang.String:
java.lang.String valueOf(java.lang.Object)&gt;</span><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas"><o:p></o:p></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination:
none;layout-grid-mode:both;text-autospace:none"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;dummyMainClass:
void dummyMainMethod()&gt;---invoke---&lt;com.example.test.MainActivity: void
&lt;init&gt;()&gt;</span><span lang="EN-US" style="font-size:10.5pt;font-family:
Consolas"><o:p></o:p></span></p>

<p class="MsoNormal"><span lang="EN-US" style="font-size: 10.5pt; font-family: Consolas;">&lt;dummyMainClass: void
dummyMainMethod()&gt;---invoke---&lt;com.example.test.DisplayContactActivity1:
void onCreate(android.os.Bundle)&gt;</span><span lang="EN-US" style="font-size:
10.5pt"><o:p></o:p></span></p></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">I have two problems about the incomplete call graph:</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">1. &nbsp; The call graph can just present the reachable method from the dummyMainMethod.But I want to catch the call graph from other mehod.I think I should change the entrypoint,but I don't know how to do it.For example,the following is the sourse code ship of the executed apk:</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">&lt;snip&gt;</div><div><div>public void onClick(View a) {</div><div>&nbsp; &nbsp; <span class="Apple-tab-span" style="white-space:pre">        </span>String name=DisplayContactActivity1.catchContactNameByNumber(MainActivity.this);</div><div>&nbsp; &nbsp; <span class="Apple-tab-span" style="white-space:pre">        </span>Intent intent = new Intent(MainActivity.this,DisplayContactActivity1.class); &nbsp;</div><div>&nbsp; &nbsp; <span class="Apple-tab-span" style="white-space:pre">        </span>startActivity(intent);</div><div>&nbsp; &nbsp; }</div></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">&lt;/snip&gt;</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">The "onClick" method will execute when you click the corresponding button.So,I don't know how to generate the call graph from the "onClick" method.&nbsp;</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;"><br></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">2. &nbsp; As presented in the result, targets of &nbsp;the method&nbsp;<span style="font-family: Consolas; font-size: 14.2857151031494px; line-height: 22.6666660308838px;">&lt;com.example.test.DisplayContactActivity1: void onCreate(android.os.Bundle)&gt;is not complete.The following is jimple code for the "onClick" method:</span></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;"><span style="font-family: Consolas; font-size: 14.2857151031494px; line-height: 22.6666660308838px;">&lt;snip&gt;</span></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;"><p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">protected void
onCreate(android.os.Bundle){</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
com.example.test.DisplayContactActivity1 $r0;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android.os.Bundle $r1;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android.widget.TextView $r2, r7;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int $i0;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.lang.String $r3, $r5;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android.telephony.SmsManager $r4;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.lang.StringBuilder $r6, r8;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android.content.Context r9;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r0 := @this:
com.example.test.DisplayContactActivity1;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r1 := @parameter0: android.os.Bundle;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:red">specialinvoke
$r0.&lt;android.app.Activity: void onCreate(android.os.Bundle)&gt;($r1);<o:p></o:p></span></span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:red">$i0 =
virtualinvoke $r0.&lt;com.example.test.DisplayContactActivity1: int
add(int,int)&gt;(1, 2);<o:p></o:p></span></span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:red">&nbsp;$r3 = staticinvoke &lt;java.lang.String:
java.lang.String valueOf(int)&gt;</span>($i0);</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r7 = new android.widget.TextView;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r2 = r7;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r9 = (android.content.Context) $r0;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:red">&nbsp;specialinvoke r7.&lt;android.widget.TextView:
void &lt;init&gt;(android.content.Context)&gt;(r9);<o:p></o:p></span></span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtualinvoke
$r2.&lt;android.widget.TextView: void setTextSize(float)&gt;(40.0F);</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtualinvoke
$r2.&lt;android.widget.TextView: void setText(java.lang.CharSequence)&gt;($r3);</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtualinvoke
$r0.&lt;com.example.test.DisplayContactActivity1: void
setContentView(android.view.View)&gt;($r2);</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r4 = $r0.&lt;com.example.test.DisplayContactActivity1:
android.telephony.SmsManager smsManager&gt;;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r5 =
$r0.&lt;com.example.test.DisplayContactActivity1: java.lang.String
phoneNumber&gt;;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r8 = new java.lang.StringBuilder;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:red">$r3 =
staticinvoke &lt;java.lang.String: java.lang.String
valueOf(java.lang.Object)&gt;($r3);<o:p></o:p></span></span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:red">&nbsp;specialinvoke r8.&lt;java.lang.StringBuilder:
void &lt;init&gt;(java.lang.String)&gt;($r3);<o:p></o:p></span></span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r6 = virtualinvoke
r8.&lt;java.lang.StringBuilder: java.lang.StringBuilder
append(java.lang.String)&gt;("heoo");</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $r3 = virtualinvoke
$r6.&lt;java.lang.StringBuilder: java.lang.String toString()&gt;();</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtualinvoke
$r4.&lt;android.telephony.SmsManager: void sendTextMessage(java.lang.String,java.lang.String,java.lang.String,android.app.PendingIntent,android.app.PendingIntent)&gt;($r5,
null, $r3, null, null);</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;</span></p>

<p class="MsoNormal" style="line-height:11.0pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp; }</span></p></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;"><span style="font-family: Consolas; font-size: 14.2857151031494px; line-height: 22.6666660308838px;">&lt;/snip&gt;</span></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">Where the code of red color was presented in my result,but the others was not. I &nbsp;don't know how to deal with it.</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;"><br></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">Please help me!I am so appreciated!!</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;"><br></div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">Best regards!!</div><div style="color: rgb(0, 0, 0); font-family: Arial; font-size: 14px; line-height: 1.7;">ConlyXia</div></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>