[Soot-list] Inconsistence type hierarchy

Steven Arzt Steven.Arzt at cased.de
Wed Mar 18 17:53:54 EDT 2015


Hi Bernhard,

It's ok for a class inside an APK to inherit from a phantom class or implement a phantom interface. The phantom class inference mechanism however needs to make sure that classes which are on the interface list of some other class are correctly marked as interfaces. If this is not the case yet and the "interface" flag is not set for those phantom classes, this is a bug.

Best regards,
  Steven

-----Ursprüngliche Nachricht-----
Von: soot-list-bounces at CS.McGill.CA [mailto:soot-list-bounces at CS.McGill.CA] Im Auftrag von Bernhard Berger
Gesendet: Mittwoch, 18. März 2015 22:17
An: soot-list at sable.mcgill.ca
Betreff: [Soot-list] Inconsistence type hierarchy

Hi,

today I encountered a strange situation in the type hierarchy while analyzing an Android app. I found several (non-phantom) classes that extend (phantom) interfaces or  implement (phantom) classes. It seems that these classes aren’t contained in the android.jar file. 

The MainActivity, for instance, implements the phantom android.app.ActionBar$TabListener. Calling isInterface for TabListener returns false indicating that it is an class. This leads to problems if a class extends an „interface“. When FastHierarchy is created an Exception is thrown in dfsVisit:
> java.lang.RuntimeException: Attempt to dfs visit interface android.content.DialogInterface

Is this behavior known? Does someone know a solution?

Regards,
Bernhard
_______________________________________________
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