どのようにすればxposedをフックすることができますか?
どのようにすればxposedをフックすることができますか? 私はいくつかのアプリのすべてのメソッドをフックするためにde.robv.android.XposedBridge.handleHookedMethod
をフックすることにしました。
package com.kyunggi.logcalls;
import android.util.*;
import de.robv.android.xposed.*;
import de.robv.android.xposed.callbacks.XC_LoadPackage.*;
import java.lang.reflect.*;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
public class Main implements IXposedHookLoadPackage
{
private String TAG="LogCall";
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("com.android.bluetooth"))
{
Log.i(TAG,"Not: "+lpparam.packageName);
return;
}
Log.i(TAG,"Yes "+lpparam.packageName);
findAndHookMethod("de.robv.android.xposed.XposedBridge", lpparam.classLoader, "handleHookedMethod", Member.class, int.class,Object.class,Object.class,Object[].class,new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
Method method=(Method)param.args[0];
Log.v(TAG, "className " + method.getClass().getName() + ",methodName " + method.getName());
}
});
}
}
ところが、ClassNotFoundException
が発生します。クラスローダーの問題だとおもって、どうすれば解決できますか?
de.robv.android.xposed.XposedHelpers$ClassNotFoundError:
java.lang.ClassNotFoundException: de.robv.android.xposed.XposedBridge