Open NULL0B opened 3 years ago
Test success in OnePlus 8T Hydrogen OS 11 Android 11, Magisk 21.4, Riru 23.4, EdXposed 0.5.2.2_4683 (YAHFA).
It can work without XposedHelpers.getStaticObjectField(findClass, "mReason");
.
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
if (lpparam.packageName.equals("android")) {
Class<?> findClass = XposedHelpers.findClass("com.android.server.power.ShutdownThread", lpparam.classLoader);
// Both findAndHookMethod and hookAllMethods work
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java;l=232
// XposedHelpers.findAndHookMethod(findClass, "reboot", Context.class, String.class, boolean.class, new XC_MethodHook() {
XposedBridge.hookAllMethods(findClass, "reboot", new XC_MethodHook() {
public void beforeHookedMethod(XC_MethodHook.MethodHookParam methodHookParam) {
XposedBridge.log("FFK: before reboot ");
String str = (String) methodHookParam.args[1];
XposedBridge.log("FFK: reason = " + str);
if (str.equals("userrequested")) {
XposedBridge.log("FFK: Changing reason to recovery");
methodHookParam.args[1] = "recovery";
}
// Test for prevents reboot
methodHookParam.setResult(false);
}
});
}
}
Result:
02-25 12:10:50.998 1725 1735 I EdXposed-Bridge: FFK: brfore reboot
02-25 12:10:50.998 1725 1735 I EdXposed-Bridge: FFK: reason = userrequested
02-25 12:10:50.998 1725 1735 I EdXposed-Bridge: FFK: Changing reason to recovery
The restart request is then blocked.
There is only one method with the reboot name in the source code.
I prefer to think that it is a ROM problem. It is recommended to check whether ROM has modified the related methods.
Hi Im using Android 11 One UI 3.0. Magisk 21.4 Riru v23.5 and EdXposed-v0.5.2.2_4683-master-release.zip
Consider the following snnipet That works only if the Dummy line is pressent (it has to be edxposed api call) . I have no errors in logs also only "hooking success". i got the same behavior in both variants snadhook and yahfa.