63 lines
2.6 KiB
Java
63 lines
2.6 KiB
Java
package me.yingtongli.gcastnoauth;
|
|
|
|
import de.robv.android.xposed.IXposedHookLoadPackage;
|
|
import de.robv.android.xposed.XC_MethodHook;
|
|
import de.robv.android.xposed.XposedBridge;
|
|
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
|
|
|
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
|
|
|
|
public class GCastNoAuth implements IXposedHookLoadPackage {
|
|
@Override
|
|
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
|
|
if (!lpparam.packageName.equals("com.google.android.gms")) {
|
|
return;
|
|
}
|
|
|
|
XposedBridge.log("[GCastNoAuth] Loaded into com.google.android.gms");
|
|
|
|
// Hook debug logging function to show logs
|
|
/*
|
|
findAndHookMethod("qco", lpparam.classLoader, "a", String.class, "[Ljava.lang.Object;", new XC_MethodHook() {
|
|
@Override
|
|
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
|
String logMessage = (String) callMethod(param.thisObject, "e", new Class<?>[] {String.class, Class.forName("[Ljava.lang.Object;")}, param.args);
|
|
XposedBridge.log("[GCastNoAuth] [Debug] " + logMessage);
|
|
}
|
|
});
|
|
*/
|
|
|
|
// Hook certificate check function
|
|
/*
|
|
findAndHookMethod("ptd", lpparam.classLoader, "a", "[B", new XC_MethodHook() {
|
|
@Override
|
|
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
|
XposedBridge.log("[GCastNoAuth] beforeHookedMethod");
|
|
byte[] arg = (byte[]) param.args[0];
|
|
XposedBridge.log(Arrays.toString(arg));
|
|
}
|
|
|
|
@Override
|
|
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
|
|
XposedBridge.log("[GCastNoAuth] afterHookedMethod");
|
|
if (param.hasThrowable()) {
|
|
XposedBridge.log("[GCastNoAuth] An exception was raised");
|
|
XposedBridge.log(param.getThrowable());
|
|
} else {
|
|
XposedBridge.log("[GCastNoAuth] No throwable");
|
|
}
|
|
}
|
|
});*/
|
|
|
|
// Hook certificate post-check function
|
|
findAndHookMethod("ptd", lpparam.classLoader, "a", int.class, Exception.class, new XC_MethodHook() {
|
|
@Override
|
|
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
|
XposedBridge.log("[GCastNoAuth] beforeHookedMethod in ptd.a(int,Exception)");
|
|
// Force success
|
|
param.args[0] = 0;
|
|
}
|
|
});
|
|
}
|
|
}
|