是否可以使用 xposed 在另一个应用程序中挂接私有(private)方法?
我写了这个模块
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("com.esealed.dalily"))
return;
findAndHookMethod("com.esealed.dalily.i.c",lpparam.classLoader ,"a","com.esealed.dalily.model.VersionInfo", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
Log.d("XPOSED_MOD","Inside a method ");
param.setResult(null);
}
});
它不会抛出任何错误说找不到该类,但是当调用该方法时它不会向日志中写入任何内容。所以我假设发生这种情况是因为该方法是私有(private)的,但我不确定。
最佳答案
根据 xposed 桥源 ( https://github.com/rovo89/XposedBridge/blob/art/app/src/main/java/de/robv/android/xposed/XposedHelpers.java ),findAndHookMethod 调用 getDeclaredMethod 并将其结果设置为可访问。这意味着该函数应该适用于任何方法,无论是否公开。
你能hook同一个类的public方法吗?
关于android - 使用 Xposed 在另一个应用程序中 Hook 私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37259755/