[Soot-list] Spark: Missing API call causes empty points-to set

Jonas De Bleser jonas.de.bleser at vub.be
Tue Jun 20 08:08:56 EDT 2017


Hi all,

I’m currently using SOOT + FlowDroid to analyse Android applications which works fine, except for one API call:


PowerManager powerManager = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(
       PowerManager.ACQUIRE_CAUSES_WAKEUP,
       "my wakelock");
While the callgraph contains every other call, it does NOT contain powerManager.newWakeLock. Because of this, SPARK determines that the points-to set of wakeLock is empty, while it shouldn’t!

I’ve found two messages on the mailing list that have the same problem:
https://mailman.cs.mcgill.ca/pipermail/soot-list/2016-April/008443.html
https://mailman.cs.mcgill.ca/pipermail/soot-list/2015-February/007734.html

I tried to analyse the application by using the source code of Android (android-all-5.0.0_r2-robolectric-0.jar, from http://central.maven.org/maven2/org/robolectric/android-all/5.0.0_r2-robolectric-0/) instead of the default stub android.jar. I manually checked that the JAR contains the implementation of the powerManager.newWakeLock.

Unfortunately, this gives the same results (i.e., empty points-to set for wakeLock) and I’m clueless on how to solve this problem. I need to know the points-to sets of every WakeLock instance.

Thanks!

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


More information about the Soot-list mailing list