如何hook抽象方法hasSystemFeature?

How to hook the abstract method hasSystemFeature?

我想挂钩 PackageManagerhasSystemFeature 系统方法。但是这个方法是抽象的。其实PackageManager本身就是一个抽象class。挂钩该方法会出现以下异常。

java.lang.IllegalArgumentException: Cannot hook abstract methods: public abstract boolean android.content.pm.PackageManager.hasSystemFeature(java.lang.String)

通常我们调用context.getPackageManager().hasSystemFeature(string),但我一直不知道实现子class是什么!那么在这种情况下我能做什么呢?

我用smali调试发现hook的右边class是

android.content.pm.IPackageManager.Stub.Proxy