[Soot-list] Android instrumentation

Peter Kim chpkim at gmail.com
Tue Jul 22 14:56:38 EDT 2014


Hello,

I'm trying to run AndroidInstrument.java (
http://www.bodden.de/2013/01/08/soot-android-instrumentation/) against
snake.apk (http://www.abartel.net/dexpler/), using the following arguments:

-cp "c:\rt.jar;c:\android.jar;C:\snake.apk" -d C:\sootoutput -android-jars
C:\androidjars -allow-phantom-refs -ire -process-dir C:\snake.apk
-output-format dex -src-prec apk

But I'm running into the following problems:

Could not find sdk version in Android manifest! Using default: 15
Using 'C:\androidjars\android-15\android.jar' as android.jar
Warning: libcore.icu.NativePluralRules is a phantom class!
Warning: org.xmlpull.v1.XmlPullParserException is a phantom class!
Warning: org.xmlpull.v1.XmlPullParser is a phantom class!
Warning: javax.microedition.khronos.opengles.GL is a phantom class!
array element type: (filled narr)int
Transforming com.example.android.snake.SnakeView...
Transforming com.example.android.snake.SnakeView$RefreshHandler...
Transforming com.example.android.snake.SnakeView$Coordinate...
Transforming com.example.android.snake.R$attr...
Transforming com.example.android.snake.R$string...
Transforming com.example.android.snake.R$drawable...
Transforming com.example.android.snake.R$styleable...
Transforming com.example.android.snake.R$layout...
Transforming com.example.android.snake.TileView...
Transforming com.example.android.snake.Snake...
Transforming com.example.android.snake.R$id...
Transforming com.example.android.snake.R...
Exception in thread "main" java.lang.RuntimeException: No method source set
for method <com.example.android.snake.SnakeView: void setFocusable(boolean)>
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:90)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:324)
at soot.toDex.DexPrinter.toMethodImplementation(DexPrinter.java:808)
at soot.toDex.DexPrinter.toMethods(DexPrinter.java:744)
at soot.toDex.DexPrinter.addAsClassDefItem(DexPrinter.java:460)
at soot.toDex.DexPrinter.add(DexPrinter.java:1047)
at soot.PackManager.writeClass(PackManager.java:983)
at soot.PackManager.writeOutput(PackManager.java:592)
at soot.PackManager.writeOutput(PackManager.java:500)
at soot.Main.run(Main.java:206)
at soot.Main.main(Main.java:147)
at
com.example.androidtest1.AndroidInstrument.main(AndroidInstrument.java:83)

My understanding is that the source code shouldn't be needed. Also, I'm not
sure why, but if  I don't include rt.jar in Soot's classpath, then
java.lang.* classes are not picked up, even if android.jar is included in
the classpath (shouldn't android.jar have the java.lang.* classes?).

I appreciate your help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20140722/18987c5c/attachment.html 


More information about the Soot-list mailing list