我正在使用 Xposed 做一些方法挂钩(现在,只是为了学习)。我已经设法挂钩方法 SendTextMessage (android.telephony.SmsManager),我可以在调用之前和调用方法之后做一些事情,所以我的问题是,我可以在之前做一些事情会导致原始方法不被调用?
谢谢,
我正在使用 Xposed 做一些方法挂钩(现在,只是为了学习)。我已经设法挂钩方法 SendTextMessage (android.telephony.SmsManager),我可以在调用之前和调用方法之后做一些事情,所以我的问题是,我可以在之前做一些事情会导致原始方法不被调用?
谢谢,
在“之前”钩子中的某处使用它来防止调用原始方法
param.setResult(null);
(在“之后”挂钩中,它只会更改原始方法的结果,因为它尚未执行)
您可以使用XC_MethodReplacement
而不是XC_MethodHook
替换呼叫。
源码中有注释说阻止方法调用的方法是调用 MethodHookParam#setThrowable(Throwable) 来阻止函数被调用。所以将参数传递给 beforeHookedMethod 并调用 param.setThrowable(Throwable t)
请注意,Throwable 只是 Java 中所有错误和异常的超类,因此您应该能够使用 Exception 或 Error 作为 Throwable。