Java 为Xposed模块查找钩子的方法
我正在尝试制作一个Xposed模块。 我首先读了一篇教程,里面有操作时钟的说明。 代码如下:Java 为Xposed模块查找钩子的方法,java,android,xposed-framework,Java,Android,Xposed Framework,我正在尝试制作一个Xposed模块。 我首先读了一篇教程,里面有操作时钟的说明。 代码如下: package de.robv.android.xposed.mods.tutorial; import static de.robv.android.xposed.XposedHelpers.findAndHookMethod; import android.graphics.Color; import android.widget.TextView; import de.robv.android.
package de.robv.android.xposed.mods.tutorial;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
import android.graphics.Color;
import android.widget.TextView;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
public class Tutorial implements IXposedHookLoadPackage {
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("com.android.systemui"))
return;
findAndHookMethod("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader, "updateClock", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
TextView tv = (TextView) param.thisObject;
String text = tv.getText().toString();
tv.setText(text + " :)");
tv.setTextColor(Color.RED);
}
});
}
}
我想现在制作我自己的模块,在输入模式锁后,我必须在其中执行一些操作。输入模式后,我想读取模式并根据模式执行一些操作。
请在这方面帮助我。
我甚至无法识别钩子的方法。
我试图在以下位置找到它:
谢谢 我在android git上的keyguard源代码中搜索了一下,发现了一个方法,它的特点是您应该钩住的方法。在这种方法中,您可以在正确的时间直接访问模式
findAndHookMethod("com.android.internal.widget.LockPatternUtils", lpparam.classLoader, "checkPattern", List.class /*You need to name the attribute's data type, I'm still not sure if List.class is enough, as the type is List<LockPatternView.Cell>*/, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
List<?> pattern = param.args[0];
// Proceed…
}
});
我找到了一些类。不确定这是否有帮助:[1]:[2]:
Class[] c = new Class[1];
c[0] = List.class;
XposedHelpers.callStaticMethod(XposedHelpers.findClass("com.android.internal.widget.LockPatternUtils", lpparam.classLoader), "patternToString", c, pattern);