[Soot-list] Problem running the Android Instrumentation example

Behnam behnam at eecs.tufts.edu
Mon Apr 3 17:38:06 EDT 2017


Please see in-line.


On 04/03/2017 04:26 PM, Arzt, Steven wrote:
>
> Ok, I should not write e-mails when I’m in a hurry. The output option 
> is called “dex”:
>
> -output-format dex
>
Haha, happens to me too.
>
> To get this sorted out, can you please send me the APK file? That 
> should shorten the back and forth quite a bit.
>
I have uploaded on Dropbox both my respdroid.apk 
<https://www.dropbox.com/s/0473a2zwuhtbh3u/respdroid.apk?dl=0> and 
AndroidInstrument.Java 
<https://www.dropbox.com/s/njoazo00jfcp163/AndroidInstrument.java?dl=0>.
For reference, here's the latest command I have used:
behnam at 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 -output-format dex -process-dir 
respdroid.apk
Soot started on Mon Apr 03 17:32:11 EDT 2017
Warning: java.lang.Throwable is a phantom class!
Warning: java.lang.Void is a phantom class!
Warning: java.lang.Float is a phantom class!
Warning: java.lang.Double is a phantom class!
Warning: java.lang.AssertionError is a phantom class!
Warning: java.lang.Integer is a phantom class!
Warning: java.lang.NullPointerException is a phantom class!
Warning: java.lang.Character is a phantom class!
Warning: java.lang.Long is a phantom class!
Warning: java.lang.Short is a phantom class!
Warning: java.lang.StringBuffer is a phantom class!
Warning: java.lang.Boolean is a phantom class!
Warning: java.lang.Class is a phantom class!
Warning: java.lang.Byte is a phantom class!
Warning: java.lang.NoClassDefFoundError is a phantom class!
Warning: java.lang.IndexOutOfBoundsException is a phantom class!
Warning: java.lang.StackOverflowError is a phantom class!
Warning: java.lang.invoke.LambdaMetafactory is a phantom class!
Warning: java.lang.Error is a phantom class!
Warning: java.lang.AbstractMethodError is a phantom class!
Warning: java.lang.ClassCastException is a phantom class!
Warning: java.lang.Runnable is a phantom class!
Warning: java.lang.VerifyError is a phantom class!
Warning: java.lang.NoSuchFieldError is a phantom class!
Warning: java.lang.IllegalMonitorStateException is a phantom class!
Warning: java.lang.Thread is a phantom class!
Warning: java.lang.UnknownError is a phantom class!
Warning: java.lang.InternalError is a phantom class!
Warning: java.lang.ArithmeticException is a phantom class!
Warning: java.lang.String is a phantom class!
Warning: java.lang.NegativeArraySizeException is a phantom class!
Warning: java.lang.ClassCircularityError is a phantom class!
Warning: java.lang.Cloneable is a phantom class!
Warning: java.lang.ref.Finalizer is a phantom class!
Warning: java.lang.LinkageError is a phantom class!
Warning: java.lang.IncompatibleClassChangeError is a phantom class!
Warning: java.lang.NoSuchMethodError is a phantom class!
Warning: java.lang.RuntimeException is a phantom class!
Warning: java.lang.ArrayIndexOutOfBoundsException is a phantom class!
Warning: java.lang.ThreadDeath is a phantom class!
Warning: java.io.Serializable is a phantom class!
Warning: java.lang.InstantiationError is a phantom class!
Warning: java.lang.IllegalAccessError is a phantom class!
Warning: java.lang.Object is a phantom class!
Warning: java.lang.ClassNotFoundException is a phantom class!
Warning: java.lang.ClassFormatError is a phantom class!
Warning: java.lang.UnsatisfiedLinkError is a phantom class!
Warning: java.lang.ArrayStoreException is a phantom class!
Warning: java.lang.ExceptionInInitializerError is a phantom class!
Warning: java.lang.OutOfMemoryError is a phantom class!
Exception in thread "main" java.lang.Error: Error: Failed to load 
java.util.Map$Entry.
     at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:109)
     at soot.JastAddJ.Program.getCompilationUnit(Program.java:873)
     at 
soot.JastAddJ.Program.getLibCompilationUnit_compute(Program.java:1517)
     at soot.JastAddJ.Program.getLibCompilationUnit(Program.java:1500)
     at soot.JastAddJ.Program.lookupLibType_compute(Program.java:1465)
     at soot.JastAddJ.Program.lookupLibType(Program.java:1433)
     at soot.JastAddJ.Program.lookupType_compute(Program.java:1412)
     at soot.JastAddJ.Program.lookupType(Program.java:1393)
     at soot.JastAddJ.Program.Define_TypeDecl_lookupType(Program.java:1981)
     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
     at soot.JastAddJ.Expr.lookupType(Expr.java:1186)
     at soot.JastAddJ.TypeAccess.decls_compute(TypeAccess.java:425)
     at soot.JastAddJ.TypeAccess.decls(TypeAccess.java:414)
     at 
soot.JastAddJ.TypeAccess.refined_TypeScopePropagation_TypeAccess_decl(TypeAccess.java:387)
     at soot.JastAddJ.TypeAccess.decl_compute(TypeAccess.java:460)
     at soot.JastAddJ.TypeAccess.decl(TypeAccess.java:452)
     at soot.JastAddJ.TypeAccess.type_compute(TypeAccess.java:590)
     at soot.JastAddJ.TypeAccess.type(TypeAccess.java:583)
     at 
soot.JastAddJ.CompilationUnit.refined_NameCheck_CompilationUnit_nameCheck(CompilationUnit.java:200)
     at soot.JastAddJ.CompilationUnit.nameCheck(CompilationUnit.java:611)
     at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1283)
     at soot.JastAddJ.CompilationUnit.errorCheck(CompilationUnit.java:178)
     at soot.JastAddInitialResolver.formAst(JastAddInitialResolver.java:58)
     at soot.JavaClassSource.resolve(JavaClassSource.java:54)
     at soot.SootResolver.bringToHierarchy(SootResolver.java:243)
     at soot.SootResolver.bringToSignatures(SootResolver.java:275)
     at soot.SootResolver.processResolveWorklist(SootResolver.java:173)
     at soot.SootResolver.resolveClass(SootResolver.java:134)
     at soot.Scene.loadClass(Scene.java:873)
     at soot.Scene.loadClassAndSupport(Scene.java:858)
     at soot.Scene.loadNecessaryClass(Scene.java:1575)
     at soot.Scene.loadNecessaryClasses(Scene.java:1586)
     at soot.Main.run(Main.java:250)
     at soot.Main.main(Main.java:147)
Caused by: java.lang.RuntimeException: java.lang.ClassCastException: 
soot.JastAddJ.CONSTANT_Utf8_Info cannot be cast to 
soot.JastAddJ.CONSTANT_Class_Info
     at 
soot.JastAddJ.Attributes$TypeAttributes.innerClasses(Attributes.java:424)
     at 
soot.JastAddJ.Attributes$TypeAttributes.processAttribute(Attributes.java:316)
     at soot.JastAddJ.Attributes.attributes(Attributes.java:61)
     at soot.JastAddJ.Attributes$TypeAttributes.<init>(Attributes.java:307)
     at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:337)
     at soot.JastAddJ.BytecodeParser.read(BytecodeParser.java:27)
     at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:87)
     ... 36 more
Caused by: java.lang.ClassCastException: 
soot.JastAddJ.CONSTANT_Utf8_Info cannot be cast to 
soot.JastAddJ.CONSTANT_Class_Info
     at soot.JastAddJ.BytecodeParser.parseThisClass(BytecodeParser.java:437)
     at soot.JastAddJ.BytecodeParser.parseTypeDecl(BytecodeParser.java:404)
     at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:331)
     at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:301)
     at 
soot.JastAddJ.Attributes$TypeAttributes.innerClasses(Attributes.java:405)
     ... 42 more

Thank you again.

Bests,

Behnam


> *From:*Behnam [mailto:behnam at eecs.tufts.edu]
> *Sent:* Monday, April 3, 2017 6:32 PM
> *To:* Arzt, Steven <steven.arzt at sit.fraunhofer.de>; Bernhard Berger 
> <berber at tzi.de>
> *Cc:* soot-list at cs.mcgill.ca
> *Subject:* Re: [Soot-list] Problem running the Android Instrumentation 
> example
>
> On 04/03/2017 02:47 AM, Arzt, Steven wrote:
>
>     Hi Behnam,
>
>     To get an instrumented APK file, you also need the –output-format
>     apk parameter, otherwise Soot will cross-compile your code to Java
>     bytecode.
>
> The apk parameter is not recognized. Any alternative?
>
> $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
> Invalid value apk given for option -output-format
>
>
>
>
>     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.
>
> Same issue as before persists regardless of platform Jars path. I 
> would highly appreciate it if someone would actually follow the 
> Official Soot Android Instrumentation Example 
> <https://github.com/Sable/soot/wiki/Instrumenting-Android-Apps-with-Soot> 
> with a recent Android app (Java 8 basically), and share their command 
> line.
>
> Here's the state I'm stuck at:
>
> behnam at 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
> Soot started on Mon Apr 03 12:28:03 EDT 2017
> Warning: java.lang.Throwable is a phantom class!
> Warning: java.lang.Void is a phantom class!
> Warning: java.lang.Float is a phantom class!
> Warning: java.lang.Double is a phantom class!
> Warning: java.lang.AssertionError is a phantom class!
> Warning: java.lang.Integer is a phantom class!
> Warning: java.lang.NullPointerException is a phantom class!
> Warning: java.lang.Character is a phantom class!
> Warning: java.lang.Long is a phantom class!
> Warning: java.lang.Short is a phantom class!
> Warning: java.lang.StringBuffer is a phantom class!
> Warning: java.lang.Boolean is a phantom class!
> Warning: java.lang.Class is a phantom class!
> Warning: java.lang.Byte is a phantom class!
> Warning: java.lang.NoClassDefFoundError is a phantom class!
> Warning: java.lang.IndexOutOfBoundsException is a phantom class!
> Warning: java.lang.StackOverflowError is a phantom class!
> Warning: java.lang.invoke.LambdaMetafactory is a phantom class!
> Warning: java.lang.Error is a phantom class!
> Warning: java.lang.AbstractMethodError is a phantom class!
> Warning: java.lang.ClassCastException is a phantom class!
> Warning: java.lang.Runnable is a phantom class!
> Warning: java.lang.VerifyError is a phantom class!
> Warning: java.lang.NoSuchFieldError is a phantom class!
> Warning: java.lang.IllegalMonitorStateException is a phantom class!
> Warning: java.lang.Thread is a phantom class!
> Warning: java.lang.UnknownError is a phantom class!
> Warning: java.lang.InternalError is a phantom class!
> Warning: java.lang.ArithmeticException is a phantom class!
> Warning: java.lang.String is a phantom class!
> Warning: java.lang.NegativeArraySizeException is a phantom class!
> Warning: java.lang.ClassCircularityError is a phantom class!
> Warning: java.lang.Cloneable is a phantom class!
> Warning: java.lang.ref.Finalizer is a phantom class!
> Warning: java.lang.LinkageError is a phantom class!
> Warning: java.lang.IncompatibleClassChangeError is a phantom class!
> Warning: java.lang.NoSuchMethodError is a phantom class!
> Warning: java.lang.RuntimeException is a phantom class!
> Warning: java.lang.ArrayIndexOutOfBoundsException is a phantom class!
> Warning: java.lang.ThreadDeath is a phantom class!
> Warning: java.io.Serializable is a phantom class!
> Warning: java.lang.InstantiationError is a phantom class!
> Warning: java.lang.IllegalAccessError is a phantom class!
> Warning: java.lang.Object is a phantom class!
> Warning: java.lang.ClassNotFoundException is a phantom class!
> Warning: java.lang.ClassFormatError is a phantom class!
> Warning: java.lang.UnsatisfiedLinkError is a phantom class!
> Warning: java.lang.ArrayStoreException is a phantom class!
> Warning: java.lang.ExceptionInInitializerError is a phantom class!
> Warning: java.lang.OutOfMemoryError is a phantom class!
> Exception in thread "main" java.lang.Error: Error: Failed to load 
> java.util.Map$Entry.
>     at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:109)
>     at soot.JastAddJ.Program.getCompilationUnit(Program.java:873)
>     at 
> soot.JastAddJ.Program.getLibCompilationUnit_compute(Program.java:1517)
>     at soot.JastAddJ.Program.getLibCompilationUnit(Program.java:1500)
>     at soot.JastAddJ.Program.lookupLibType_compute(Program.java:1465)
>     at soot.JastAddJ.Program.lookupLibType(Program.java:1433)
>     at soot.JastAddJ.Program.lookupType_compute(Program.java:1412)
>     at soot.JastAddJ.Program.lookupType(Program.java:1393)
>     at soot.JastAddJ.Program.Define_TypeDecl_lookupType(Program.java:1981)
>     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
>     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
>     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
>     at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
>     at soot.JastAddJ.Expr.lookupType(Expr.java:1186)
>     at soot.JastAddJ.TypeAccess.decls_compute(TypeAccess.java:425)
>     at soot.JastAddJ.TypeAccess.decls(TypeAccess.java:414)
>     at 
> soot.JastAddJ.TypeAccess.refined_TypeScopePropagation_TypeAccess_decl(TypeAccess.java:387)
>     at soot.JastAddJ.TypeAccess.decl_compute(TypeAccess.java:460)
>     at soot.JastAddJ.TypeAccess.decl(TypeAccess.java:452)
>     at soot.JastAddJ.TypeAccess.type_compute(TypeAccess.java:590)
>     at soot.JastAddJ.TypeAccess.type(TypeAccess.java:583)
>     at 
> soot.JastAddJ.CompilationUnit.refined_NameCheck_CompilationUnit_nameCheck(CompilationUnit.java:200)
>     at soot.JastAddJ.CompilationUnit.nameCheck(CompilationUnit.java:611)
>     at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1283)
>     at soot.JastAddJ.CompilationUnit.errorCheck(CompilationUnit.java:178)
>     at soot.JastAddInitialResolver.formAst(JastAddInitialResolver.java:58)
>     at soot.JavaClassSource.resolve(JavaClassSource.java:54)
>     at soot.SootResolver.bringToHierarchy(SootResolver.java:243)
>     at soot.SootResolver.bringToSignatures(SootResolver.java:275)
>     at soot.SootResolver.processResolveWorklist(SootResolver.java:173)
>     at soot.SootResolver.resolveClass(SootResolver.java:134)
>     at soot.Scene.loadClass(Scene.java:873)
>     at soot.Scene.loadClassAndSupport(Scene.java:858)
>     at soot.Scene.loadNecessaryClass(Scene.java:1575)
>     at soot.Scene.loadNecessaryClasses(Scene.java:1586)
>     at soot.Main.run(Main.java:250)
>     at soot.Main.main(Main.java:147)
> Caused by: java.lang.RuntimeException: java.lang.ClassCastException: 
> soot.JastAddJ.CONSTANT_Utf8_Info cannot be cast to 
> soot.JastAddJ.CONSTANT_Class_Info
>     at 
> soot.JastAddJ.Attributes$TypeAttributes.innerClasses(Attributes.java:424)
>     at 
> soot.JastAddJ.Attributes$TypeAttributes.processAttribute(Attributes.java:316)
>     at soot.JastAddJ.Attributes.attributes(Attributes.java:61)
>     at soot.JastAddJ.Attributes$TypeAttributes.<init>(Attributes.java:307)
>     at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:337)
>     at soot.JastAddJ.BytecodeParser.read(BytecodeParser.java:27)
>     at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:87)
>     ... 36 more
> Caused by: java.lang.ClassCastException: 
> soot.JastAddJ.CONSTANT_Utf8_Info cannot be cast to 
> soot.JastAddJ.CONSTANT_Class_Info
>     at 
> soot.JastAddJ.BytecodeParser.parseThisClass(BytecodeParser.java:437)
>     at soot.JastAddJ.BytecodeParser.parseTypeDecl(BytecodeParser.java:404)
>     at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:331)
>     at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:301)
>     at 
> soot.JastAddJ.Attributes$TypeAttributes.innerClasses(Attributes.java:405)
>     ... 42 more
>
> Thank you all for the help.
>
>
>
> Bests,
>
> Behnam
>
>
>     Best regards,
>
>     Steven
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20170403/e9819234/attachment-0001.html>


More information about the Soot-list mailing list