如何hook抽象方法hasSystemFeature?
How to hook the abstract method hasSystemFeature?
我想挂钩 PackageManager
的 hasSystemFeature
系统方法。但是这个方法是抽象的。其实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
我想挂钩 PackageManager
的 hasSystemFeature
系统方法。但是这个方法是抽象的。其实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