Xposed:如何阻止方法调用

时间:2014-08-17 11:49:19

标签: android xposed-framework

我正在使用Xposed做一些方法挂钩(目前只是为了学习)。 我已经成功地挂钩方法SendTextMessage(android.telephony.SmsManager), 我可以在调用之前和方法调用之后做一些事情,所以我的问题是,我能在之前做一些事情会导致原始方法不被调用吗?

谢谢,

3 个答案:

答案 0 :(得分:7)

在"之前的某个地方使用它"钩子以防止调用原始方法

param.setResult(null);

(在"之后"挂钩它只会改变原始方法的结果,因为它已被执行)

答案 1 :(得分:2)

您可以使用XC_MethodReplacement代替XC_MethodHook来替换来电。

答案 2 :(得分:-1)

源代码中的注释表示防止方法调用的方法是调用MethodHookParam #setThrowable(Throwable)以防止调用该函数。所以把param传递给beforeHookedMethod并调用param.setThrowable(Throwable t)

请注意,Throwable只是Java中所有错误和异常的超类,因此您应该能够使用Exception或Error作为Throwable。

https://github.com/rovo89/XposedBridge/blob/13c9918eb449a4b851740c5e380057d6f0d23bd5/src/de/robv/android/xposed/XC_MethodHook.java