[Soot-list] Problem running the Android Instrumentation example

Bernhard Berger berber at tzi.de
Thu Mar 30 02:07:49 EDT 2017


Hi Behnam,

I’m not quite sure if this may help but I’ve two pointers for you: First of all, you forgot to use the -src-prec option. The log says: "APK file on process dir, but chosen src-prec does not support loading APKs“. Secondly, it looks like Soot is using the Java frontend (it’s parsing the Java files) which fails to load the java.util.Map$Entry. Try using the -src-prec apk option. I hope this will fix your problem.

Regards, Bernhard

> Am 29.03.2017 um 23:09 schrieb Behnam <behnam at eecs.tufts.edu>:
> 
> Hi all,
> 
> I'm still stuck here. Any help is so much appreciated.
> 
> Bests,
> 
> -Behnam
> 
> 
> On 03/16/2017 03:52 AM, Behnam wrote:
>> Hi All,
>> 
>> I am trying to run the example AndroidInstrument driver on a very simple app, and after hours of work, this is where I am stuck.
>> 
>> behnam at behnam-Precision-T1600:~/tcal/responsiveness/soot/stable$ /usr/lib/jvm/java-8-oracle/bin/java -cp soot-trunk-nightly.jar soot.Main -cp . -pp  AndroidInstrument -android-jars /home/behnam/tcal/responsiveness/soot/stable/android-platforms -process-dir respdroid.apk
>> 
>> 
>> 
>> Soot started on Thu Mar 16 03:40:27 EDT 2017
>> APK file on process dir, but chosen src-prec does not support loading APKs
>> 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:844)
>>    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
>> 
>> 
>> Note 1: the app's target api was 17.
>> Note 2: I used the default JDK for Android Studio, which is 1.8.
>> Note 3: AndroidInstrument is the same exact example file from Soot Android Instrumentation tutorial.
>> 
>> I would highly appreciate any help.
>> 
>> -Behnam
>> 
> 
> _______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
> 



More information about the Soot-list mailing list