<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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;
color:black;}
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;}
p
{mso-style-priority:99;
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;
color:black;}
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;
color:black;}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
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 bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Ok, I should not write e-mails when I’m in a hurry. The output option is called “dex”:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> -output-format dex<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">To get this sorted out, can you please send me the APK file? That should shorten the back and forth quite a bit.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"> Behnam [mailto:behnam@eecs.tufts.edu]
<br>
<b>Sent:</b> Monday, April 3, 2017 6:32 PM<br>
<b>To:</b> Arzt, Steven <steven.arzt@sit.fraunhofer.de>; Bernhard Berger <berber@tzi.de><br>
<b>Cc:</b> soot-list@cs.mcgill.ca<br>
<b>Subject:</b> Re: [Soot-list] Problem running the Android Instrumentation example<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On 04/03/2017 02:47 AM, Arzt, Steven wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<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 Behnam,</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 style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">To get an instrumented APK file, you also need the –output-format apk parameter, otherwise Soot will
cross-compile your code to Java bytecode.</span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal">The apk parameter is not recognized. Any alternative?<br>
<br>
$behnam: /usr/lib/jvm/java-8-oracle/bin/java -jar soot-trunk.jar AndroidInstrument -cp . -src-prec apk -allow-phantom-refs -android-jars /home/behnam/Android/Sdk/platforms/ -output-format apk -process-dir respdroid.apk<br>
Invalid value apk given for option -output-format<br>
<br>
<br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<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"><br>
Concerning the exception: Where did you get the platform JARs from? Do not use the ones in the Sable group on Github. Instead, use the ones provided with the official Android SDK that you can download from Google.</span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal">Same issue as before persists regardless of platform Jars path. I would highly appreciate it if someone would actually follow the
<a href="https://github.com/Sable/soot/wiki/Instrumenting-Android-Apps-with-Soot">
Official Soot Android Instrumentation Example</a> with a recent Android app (Java 8 basically), and share their command line.<br>
<br>
Here's the state I'm stuck at:<br>
<br>
behnam@behnam-Precision-T1600:~/tcal/responsiveness/soot/stable$ /usr/lib/jvm/java-8-oracle/bin/java -jar soot-trunk.jar AndroidInstrument -cp . -src-prec apk -allow-phantom-refs -android-jars /home/behnam/Android/Sdk/platforms -process-dir respdroid.apk<br>
Soot started on Mon Apr 03 12:28:03 EDT 2017<br>
Warning: java.lang.Throwable is a phantom class!<br>
Warning: java.lang.Void is a phantom class!<br>
Warning: java.lang.Float is a phantom class!<br>
Warning: java.lang.Double is a phantom class!<br>
Warning: java.lang.AssertionError is a phantom class!<br>
Warning: java.lang.Integer is a phantom class!<br>
Warning: java.lang.NullPointerException is a phantom class!<br>
Warning: java.lang.Character is a phantom class!<br>
Warning: java.lang.Long is a phantom class!<br>
Warning: java.lang.Short is a phantom class!<br>
Warning: java.lang.StringBuffer is a phantom class!<br>
Warning: java.lang.Boolean is a phantom class!<br>
Warning: java.lang.Class is a phantom class!<br>
Warning: java.lang.Byte is a phantom class!<br>
Warning: java.lang.NoClassDefFoundError is a phantom class!<br>
Warning: java.lang.IndexOutOfBoundsException is a phantom class!<br>
Warning: java.lang.StackOverflowError is a phantom class!<br>
Warning: java.lang.invoke.LambdaMetafactory is a phantom class!<br>
Warning: java.lang.Error is a phantom class!<br>
Warning: java.lang.AbstractMethodError is a phantom class!<br>
Warning: java.lang.ClassCastException is a phantom class!<br>
Warning: java.lang.Runnable is a phantom class!<br>
Warning: java.lang.VerifyError is a phantom class!<br>
Warning: java.lang.NoSuchFieldError is a phantom class!<br>
Warning: java.lang.IllegalMonitorStateException is a phantom class!<br>
Warning: java.lang.Thread is a phantom class!<br>
Warning: java.lang.UnknownError is a phantom class!<br>
Warning: java.lang.InternalError is a phantom class!<br>
Warning: java.lang.ArithmeticException is a phantom class!<br>
Warning: java.lang.String is a phantom class!<br>
Warning: java.lang.NegativeArraySizeException is a phantom class!<br>
Warning: java.lang.ClassCircularityError is a phantom class!<br>
Warning: java.lang.Cloneable is a phantom class!<br>
Warning: java.lang.ref.Finalizer is a phantom class!<br>
Warning: java.lang.LinkageError is a phantom class!<br>
Warning: java.lang.IncompatibleClassChangeError is a phantom class!<br>
Warning: java.lang.NoSuchMethodError is a phantom class!<br>
Warning: java.lang.RuntimeException is a phantom class!<br>
Warning: java.lang.ArrayIndexOutOfBoundsException is a phantom class!<br>
Warning: java.lang.ThreadDeath is a phantom class!<br>
Warning: java.io.Serializable is a phantom class!<br>
Warning: java.lang.InstantiationError is a phantom class!<br>
Warning: java.lang.IllegalAccessError is a phantom class!<br>
Warning: java.lang.Object is a phantom class!<br>
Warning: java.lang.ClassNotFoundException is a phantom class!<br>
Warning: java.lang.ClassFormatError is a phantom class!<br>
Warning: java.lang.UnsatisfiedLinkError is a phantom class!<br>
Warning: java.lang.ArrayStoreException is a phantom class!<br>
Warning: java.lang.ExceptionInInitializerError is a phantom class!<br>
Warning: java.lang.OutOfMemoryError is a phantom class!<br>
Exception in thread "main" java.lang.Error: Error: Failed to load java.util.Map$Entry.<br>
at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:109)<br>
at soot.JastAddJ.Program.getCompilationUnit(Program.java:873)<br>
at soot.JastAddJ.Program.getLibCompilationUnit_compute(Program.java:1517)<br>
at soot.JastAddJ.Program.getLibCompilationUnit(Program.java:1500)<br>
at soot.JastAddJ.Program.lookupLibType_compute(Program.java:1465)<br>
at soot.JastAddJ.Program.lookupLibType(Program.java:1433)<br>
at soot.JastAddJ.Program.lookupType_compute(Program.java:1412)<br>
at soot.JastAddJ.Program.lookupType(Program.java:1393)<br>
at soot.JastAddJ.Program.Define_TypeDecl_lookupType(Program.java:1981)<br>
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)<br>
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)<br>
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)<br>
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)<br>
at soot.JastAddJ.Expr.lookupType(Expr.java:1186)<br>
at soot.JastAddJ.TypeAccess.decls_compute(TypeAccess.java:425)<br>
at soot.JastAddJ.TypeAccess.decls(TypeAccess.java:414)<br>
at soot.JastAddJ.TypeAccess.refined_TypeScopePropagation_TypeAccess_decl(TypeAccess.java:387)<br>
at soot.JastAddJ.TypeAccess.decl_compute(TypeAccess.java:460)<br>
at soot.JastAddJ.TypeAccess.decl(TypeAccess.java:452)<br>
at soot.JastAddJ.TypeAccess.type_compute(TypeAccess.java:590)<br>
at soot.JastAddJ.TypeAccess.type(TypeAccess.java:583)<br>
at soot.JastAddJ.CompilationUnit.refined_NameCheck_CompilationUnit_nameCheck(CompilationUnit.java:200)<br>
at soot.JastAddJ.CompilationUnit.nameCheck(CompilationUnit.java:611)<br>
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1283)<br>
at soot.JastAddJ.CompilationUnit.errorCheck(CompilationUnit.java:178)<br>
at soot.JastAddInitialResolver.formAst(JastAddInitialResolver.java:58)<br>
at soot.JavaClassSource.resolve(JavaClassSource.java:54)<br>
at soot.SootResolver.bringToHierarchy(SootResolver.java:243)<br>
at soot.SootResolver.bringToSignatures(SootResolver.java:275)<br>
at soot.SootResolver.processResolveWorklist(SootResolver.java:173)<br>
at soot.SootResolver.resolveClass(SootResolver.java:134)<br>
at soot.Scene.loadClass(Scene.java:873)<br>
at soot.Scene.loadClassAndSupport(Scene.java:858)<br>
at soot.Scene.loadNecessaryClass(Scene.java:1575)<br>
at soot.Scene.loadNecessaryClasses(Scene.java:1586)<br>
at soot.Main.run(Main.java:250)<br>
at soot.Main.main(Main.java:147)<br>
Caused by: java.lang.RuntimeException: java.lang.ClassCastException: soot.JastAddJ.CONSTANT_Utf8_Info cannot be cast to soot.JastAddJ.CONSTANT_Class_Info<br>
at soot.JastAddJ.Attributes$TypeAttributes.innerClasses(Attributes.java:424)<br>
at soot.JastAddJ.Attributes$TypeAttributes.processAttribute(Attributes.java:316)<br>
at soot.JastAddJ.Attributes.attributes(Attributes.java:61)<br>
at soot.JastAddJ.Attributes$TypeAttributes.<init>(Attributes.java:307)<br>
at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:337)<br>
at soot.JastAddJ.BytecodeParser.read(BytecodeParser.java:27)<br>
at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:87)<br>
... 36 more<br>
Caused by: java.lang.ClassCastException: soot.JastAddJ.CONSTANT_Utf8_Info cannot be cast to soot.JastAddJ.CONSTANT_Class_Info<br>
at soot.JastAddJ.BytecodeParser.parseThisClass(BytecodeParser.java:437)<br>
at soot.JastAddJ.BytecodeParser.parseTypeDecl(BytecodeParser.java:404)<br>
at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:331)<br>
at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:301)<br>
at soot.JastAddJ.Attributes$TypeAttributes.innerClasses(Attributes.java:405)<br>
... 42 more<br>
<br>
Thank you all for the help.<br>
<br>
<br>
<br>
Bests,<br>
<br>
Behnam<br>
<br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<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 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 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 style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>