From c170eb5a8b525a882ec6ae689791f331f8f57547 Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Tue, 13 Jan 2026 10:16:19 +0100 Subject: [PATCH 1/9] Initial AntiWakeLock bringup --- AntiWakeLock/Readme.md | 1 + AntiWakeLock/build.gradle.kts | 13 +++++++ AntiWakeLock/src/main/AndroidManifest.xml | 20 ++++++++++ AntiWakeLock/src/main/assets/xposed_init | 1 + .../AntiWakeLock/PowerManagerHook.kt | 37 +++++++++++++++++++ .../en-US/full_description.txt | 0 .../en-US/short_description.txt | 0 .../en-US/title.txt | 0 modules.gradle.kts | 1 + 9 files changed, 73 insertions(+) create mode 100644 AntiWakeLock/Readme.md create mode 100644 AntiWakeLock/build.gradle.kts create mode 100644 AntiWakeLock/src/main/AndroidManifest.xml create mode 100644 AntiWakeLock/src/main/assets/xposed_init create mode 100644 AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt create mode 100644 metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt create mode 100644 metadata/com.programminghoch10.AntiWakeLock/en-US/short_description.txt create mode 100644 metadata/com.programminghoch10.AntiWakeLock/en-US/title.txt diff --git a/AntiWakeLock/Readme.md b/AntiWakeLock/Readme.md new file mode 100644 index 0000000..c296a5f --- /dev/null +++ b/AntiWakeLock/Readme.md @@ -0,0 +1 @@ +# Template diff --git a/AntiWakeLock/build.gradle.kts b/AntiWakeLock/build.gradle.kts new file mode 100644 index 0000000..d08b401 --- /dev/null +++ b/AntiWakeLock/build.gradle.kts @@ -0,0 +1,13 @@ +plugins { + alias(libs.plugins.buildlogic.android.application) + alias(libs.plugins.buildlogic.kotlin.android) +} + +android { + namespace = "com.programminghoch10.AntiWakeLock" + + defaultConfig { + minSdk = 1 + targetSdk = 36 + } +} diff --git a/AntiWakeLock/src/main/AndroidManifest.xml b/AntiWakeLock/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b22e0f2 --- /dev/null +++ b/AntiWakeLock/src/main/AndroidManifest.xml @@ -0,0 +1,20 @@ + + + + + + + + + + diff --git a/AntiWakeLock/src/main/assets/xposed_init b/AntiWakeLock/src/main/assets/xposed_init new file mode 100644 index 0000000..c376e3b --- /dev/null +++ b/AntiWakeLock/src/main/assets/xposed_init @@ -0,0 +1 @@ +com.programminghoch10.AntiWakeLock.PowerManagerHook diff --git a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt new file mode 100644 index 0000000..c5deb21 --- /dev/null +++ b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt @@ -0,0 +1,37 @@ +package com.programminghoch10.AntiWakeLock + +import java.util.concurrent.* +import android.os.Build +import android.os.PowerManager +import android.os.WorkSource +import de.robv.android.xposed.IXposedHookLoadPackage +import de.robv.android.xposed.XC_MethodReplacement.DO_NOTHING +import de.robv.android.xposed.XC_MethodReplacement.returnConstant +import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class PowerManagerHook : IXposedHookLoadPackage { + override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { + XposedHelpers.findAndHookMethod(PowerManager::class.java, "acquire", DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager::class.java, "acquire", Int::class.java, DO_NOTHING) + + // optional hooks for completeness + XposedHelpers.findAndHookMethod(PowerManager::class.java, "isHeld", returnConstant(false)) + XposedHelpers.findAndHookMethod(PowerManager::class.java, "release", DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager::class.java, "release", Int::class.java, DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager::class.java, "setReferenceCounted", Boolean::class.java, DO_NOTHING) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) XposedHelpers.findAndHookMethod( + PowerManager::class.java, + "setStateListener", + Executor::class.java, + PowerManager.WakeLockStateListener::class.java, + DO_NOTHING, + ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) XposedHelpers.findAndHookMethod( + PowerManager::class.java, + "setWorkSource", + WorkSource::class.java, + DO_NOTHING, + ) + } +} diff --git a/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt b/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt new file mode 100644 index 0000000..e69de29 diff --git a/metadata/com.programminghoch10.AntiWakeLock/en-US/short_description.txt b/metadata/com.programminghoch10.AntiWakeLock/en-US/short_description.txt new file mode 100644 index 0000000..e69de29 diff --git a/metadata/com.programminghoch10.AntiWakeLock/en-US/title.txt b/metadata/com.programminghoch10.AntiWakeLock/en-US/title.txt new file mode 100644 index 0000000..e69de29 diff --git a/modules.gradle.kts b/modules.gradle.kts index 9b3782e..5b7a484 100644 --- a/modules.gradle.kts +++ b/modules.gradle.kts @@ -1,6 +1,7 @@ include(":AlwaysAllowChargingFeedback") include(":AnimationScaleMod") include(":AntiBrightnessChange") +include(":AntiWakeLock") include(":AutomaticAdvancedSettingsExpander") include(":BetterBluetoothDeviceSort") include(":BetterVerboseWiFiLogging") From 5c2e3f2fec8c959b286a564527eb49e5d0bba358 Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Tue, 13 Jan 2026 10:40:34 +0100 Subject: [PATCH 2/9] add Window hook hooks the KEEP_SCREEN_ON_FLAG for applications --- AntiWakeLock/src/main/assets/xposed_init | 1 + .../AntiWakeLock/WindowHook.kt | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt diff --git a/AntiWakeLock/src/main/assets/xposed_init b/AntiWakeLock/src/main/assets/xposed_init index c376e3b..d27b9d9 100644 --- a/AntiWakeLock/src/main/assets/xposed_init +++ b/AntiWakeLock/src/main/assets/xposed_init @@ -1 +1,2 @@ com.programminghoch10.AntiWakeLock.PowerManagerHook +com.programminghoch10.AntiWakeLock.WindowHook diff --git a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt new file mode 100644 index 0000000..bb7b42f --- /dev/null +++ b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt @@ -0,0 +1,29 @@ +package com.programminghoch10.AntiWakeLock + +import android.util.Log +import android.view.Window +import android.view.WindowManager +import de.robv.android.xposed.IXposedHookLoadPackage +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class WindowHook : IXposedHookLoadPackage { + fun filterKeepScreenOnFlag(flags: Int) : Int { + return flags and WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON.inv() + } + + override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { + XposedHelpers.findAndHookMethod(Window::class.java, "addFlags", Int::class.java, object: XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + param.args[0] = filterKeepScreenOnFlag(param.args[0] as Int) + } + }) + XposedHelpers.findAndHookMethod(Window::class.java, "setFlags", Int::class.java, Int::class.java, object: XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + param.args[0] = filterKeepScreenOnFlag(param.args[0] as Int) + param.args[1] = filterKeepScreenOnFlag(param.args[1] as Int) + } + }) + } +} From fb5d6a3d480f66879f6b4764a0078ab8a3c39000 Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Tue, 13 Jan 2026 11:11:56 +0100 Subject: [PATCH 3/9] implement disable applyKeepScreenOnFlag --- AntiWakeLock/build.gradle.kts | 4 + .../AntiWakeLock/WindowHook.kt | 73 ++++++++++++++++--- 2 files changed, 65 insertions(+), 12 deletions(-) diff --git a/AntiWakeLock/build.gradle.kts b/AntiWakeLock/build.gradle.kts index d08b401..327b7e9 100644 --- a/AntiWakeLock/build.gradle.kts +++ b/AntiWakeLock/build.gradle.kts @@ -11,3 +11,7 @@ android { targetSdk = 36 } } + +dependencies { + implementation(project(":logger")) +} diff --git a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt index bb7b42f..d165dfb 100644 --- a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt +++ b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt @@ -1,29 +1,78 @@ package com.programminghoch10.AntiWakeLock -import android.util.Log +import android.os.Build +import android.view.SurfaceView +import android.view.View import android.view.Window import android.view.WindowManager +import de.binarynoise.logger.Logger.log import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XC_MethodReplacement.DO_NOTHING import de.robv.android.xposed.XposedHelpers import de.robv.android.xposed.callbacks.XC_LoadPackage class WindowHook : IXposedHookLoadPackage { - fun filterKeepScreenOnFlag(flags: Int) : Int { + fun filterKeepScreenOnFlag(flags: Int): Int { return flags and WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON.inv() } - + override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedHelpers.findAndHookMethod(Window::class.java, "addFlags", Int::class.java, object: XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - param.args[0] = filterKeepScreenOnFlag(param.args[0] as Int) + XposedHelpers.findAndHookMethod( + Window::class.java, + "addFlags", + Int::class.java, + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + log("removing FLAG_KEEP_SCREEN_ON from addFlags") + param.args[0] = filterKeepScreenOnFlag(param.args[0] as Int) + } + }, + ) + XposedHelpers.findAndHookMethod( + Window::class.java, + "setFlags", Int::class.java, Int::class.java, + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + log("removing FLAG_KEEP_SCREEN_ON from setFlags") + param.args[0] = filterKeepScreenOnFlag(param.args[0] as Int) + param.args[1] = filterKeepScreenOnFlag(param.args[1] as Int) + } + }, + ) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + try { + val AttachInfoClass = Class.forName(View::class.java.name + "\$AttachInfo", false, lpparam.classLoader) + XposedHelpers.findAndHookMethod( + SurfaceView::class.java, + "performCollectViewAttributes", + AttachInfoClass, + Int::class.java, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + val attachInfo = param.args[0] + XposedHelpers.setBooleanField(attachInfo, "mKeepScreenOn", false) + } + }, + ) + } catch (e: Throwable) { + log("failed to hook SurfaceView.performCollectViewAttributes", e) } - }) - XposedHelpers.findAndHookMethod(Window::class.java, "setFlags", Int::class.java, Int::class.java, object: XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - param.args[0] = filterKeepScreenOnFlag(param.args[0] as Int) - param.args[1] = filterKeepScreenOnFlag(param.args[1] as Int) + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + try { + val ViewRootImplClass = Class.forName("android.view.ViewRootImpl", false, lpparam.classLoader) + XposedHelpers.findAndHookMethod( + ViewRootImplClass, + "applyKeepScreenOnFlag", + WindowManager.LayoutParams::class.java, + DO_NOTHING, + ) + } catch (e: Throwable) { + log("failed to hook ViewRootImpl.applyKeepScreenOnFlag", e) } - }) + } } } From 2a2d5801cfa5992083bb19bf84a943cb646878fe Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Tue, 13 Jan 2026 12:01:28 +0100 Subject: [PATCH 4/9] add AntiWakeLock metadata --- AntiWakeLock/Readme.md | 6 +++++- .../en-US/full_description.txt | 3 +++ .../en-US/short_description.txt | 1 + metadata/com.programminghoch10.AntiWakeLock/en-US/title.txt | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/AntiWakeLock/Readme.md b/AntiWakeLock/Readme.md index c296a5f..28d567b 100644 --- a/AntiWakeLock/Readme.md +++ b/AntiWakeLock/Readme.md @@ -1 +1,5 @@ -# Template +# AntiWakeLock + +Disable WAKE_LOCK and FLAG_KEEP_SCREEN_ON. + +Applies to selected apps only. diff --git a/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt b/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt index e69de29..d432b5b 100644 --- a/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt +++ b/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt @@ -0,0 +1,3 @@ +Disable WAKE_LOCK and FLAG_KEEP_SCREEN_ON. + +Applies to selected apps only. diff --git a/metadata/com.programminghoch10.AntiWakeLock/en-US/short_description.txt b/metadata/com.programminghoch10.AntiWakeLock/en-US/short_description.txt index e69de29..65159ab 100644 --- a/metadata/com.programminghoch10.AntiWakeLock/en-US/short_description.txt +++ b/metadata/com.programminghoch10.AntiWakeLock/en-US/short_description.txt @@ -0,0 +1 @@ +Disable WAKE_LOCK and FLAG_KEEP_SCREEN_ON. diff --git a/metadata/com.programminghoch10.AntiWakeLock/en-US/title.txt b/metadata/com.programminghoch10.AntiWakeLock/en-US/title.txt index e69de29..9d50a4c 100644 --- a/metadata/com.programminghoch10.AntiWakeLock/en-US/title.txt +++ b/metadata/com.programminghoch10.AntiWakeLock/en-US/title.txt @@ -0,0 +1 @@ +AntiWakeLock From bff006a1e6a32efc9bb5119f3f51a4fcd481d4d7 Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Fri, 23 Jan 2026 11:02:25 +0100 Subject: [PATCH 5/9] fix AntiWakeLock PowerManager Hook targeting the wrong class --- .../AntiWakeLock/PowerManagerHook.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt index c5deb21..ee44ab0 100644 --- a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt +++ b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt @@ -12,23 +12,23 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage class PowerManagerHook : IXposedHookLoadPackage { override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedHelpers.findAndHookMethod(PowerManager::class.java, "acquire", DO_NOTHING) - XposedHelpers.findAndHookMethod(PowerManager::class.java, "acquire", Int::class.java, DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "acquire", DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "acquire", Int::class.java, DO_NOTHING) // optional hooks for completeness - XposedHelpers.findAndHookMethod(PowerManager::class.java, "isHeld", returnConstant(false)) - XposedHelpers.findAndHookMethod(PowerManager::class.java, "release", DO_NOTHING) - XposedHelpers.findAndHookMethod(PowerManager::class.java, "release", Int::class.java, DO_NOTHING) - XposedHelpers.findAndHookMethod(PowerManager::class.java, "setReferenceCounted", Boolean::class.java, DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "isHeld", returnConstant(false)) + XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "release", DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "release", Int::class.java, DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "setReferenceCounted", Boolean::class.java, DO_NOTHING) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) XposedHelpers.findAndHookMethod( - PowerManager::class.java, + PowerManager.WakeLock::class.java, "setStateListener", Executor::class.java, PowerManager.WakeLockStateListener::class.java, DO_NOTHING, ) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) XposedHelpers.findAndHookMethod( - PowerManager::class.java, + PowerManager.WakeLock::class.java, "setWorkSource", WorkSource::class.java, DO_NOTHING, From b5dd99e3d8ae8f46195143db64eb5587d08bc4a8 Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:00:46 +0100 Subject: [PATCH 6/9] fixup! PowerManagerHook --- .../java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt index ee44ab0..d832091 100644 --- a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt +++ b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerHook.kt @@ -13,7 +13,7 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage class PowerManagerHook : IXposedHookLoadPackage { override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "acquire", DO_NOTHING) - XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "acquire", Int::class.java, DO_NOTHING) + XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "acquire", Long::class.java, DO_NOTHING) // optional hooks for completeness XposedHelpers.findAndHookMethod(PowerManager.WakeLock::class.java, "isHeld", returnConstant(false)) From 654046f243a52b5d9afb66713c67771be179cdc0 Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:07:19 +0100 Subject: [PATCH 7/9] add AntiWakeLock PowerManagerService hooks --- AntiWakeLock/src/main/assets/xposed_init | 1 + .../AntiWakeLock/PowerManagerServiceHook.kt | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt diff --git a/AntiWakeLock/src/main/assets/xposed_init b/AntiWakeLock/src/main/assets/xposed_init index d27b9d9..db2ca61 100644 --- a/AntiWakeLock/src/main/assets/xposed_init +++ b/AntiWakeLock/src/main/assets/xposed_init @@ -1,2 +1,3 @@ com.programminghoch10.AntiWakeLock.PowerManagerHook +com.programminghoch10.AntiWakeLock.PowerManagerServiceHook com.programminghoch10.AntiWakeLock.WindowHook diff --git a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt new file mode 100644 index 0000000..b877b7d --- /dev/null +++ b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt @@ -0,0 +1,38 @@ +package com.programminghoch10.AntiWakeLock + +import android.os.Build +import de.robv.android.xposed.IXposedHookLoadPackage +import de.robv.android.xposed.XC_MethodReplacement +import de.robv.android.xposed.XposedBridge +import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class PowerManagerServiceHook : IXposedHookLoadPackage { + fun disableMethodByName(clazz: Class<*>, name: String) { + val method = clazz.declaredMethods.single { it.name == "name" } + XposedBridge.hookMethod(method, XC_MethodReplacement.DO_NOTHING) + } + + override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { + if (lpparam.packageName != "android") return + + val PowerManagerServiceClass = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) XposedHelpers.findClass("com.android.server.power.PowerManagerService", lpparam.classLoader) + else XposedHelpers.findClass("com.android.server.PowerManagerService", lpparam.classLoader) + + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) { + disableMethodByName(PowerManagerServiceClass, "acquireWakeLock") + disableMethodByName(PowerManagerServiceClass, "releaseWakeLock") + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + disableMethodByName(PowerManagerServiceClass, "acquireWakeLockInternal") + disableMethodByName(PowerManagerServiceClass, "releaseWakeLockInternal") + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + val BinderServiceClass = XposedHelpers.findClass("${PowerManagerServiceClass.name}\$BinderService", lpparam.classLoader) + disableMethodByName(BinderServiceClass, "acquireWakeLock") + disableMethodByName(BinderServiceClass, "releaseWakeLock") + } + } +} From f24bd2be4ba1def6a0d8582f253aac12e3b4d1dd Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:09:36 +0100 Subject: [PATCH 8/9] fixup! PowerManagerServiceHook --- AntiWakeLock/Readme.md | 2 +- .../programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt | 2 +- .../en-US/full_description.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/AntiWakeLock/Readme.md b/AntiWakeLock/Readme.md index 28d567b..a806757 100644 --- a/AntiWakeLock/Readme.md +++ b/AntiWakeLock/Readme.md @@ -2,4 +2,4 @@ Disable WAKE_LOCK and FLAG_KEEP_SCREEN_ON. -Applies to selected apps only. +Can be applied to selected apps or the whole system. diff --git a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt index b877b7d..49976b3 100644 --- a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt +++ b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/PowerManagerServiceHook.kt @@ -9,7 +9,7 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage class PowerManagerServiceHook : IXposedHookLoadPackage { fun disableMethodByName(clazz: Class<*>, name: String) { - val method = clazz.declaredMethods.single { it.name == "name" } + val method = clazz.declaredMethods.single { it.name == name } XposedBridge.hookMethod(method, XC_MethodReplacement.DO_NOTHING) } diff --git a/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt b/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt index d432b5b..462eca9 100644 --- a/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt +++ b/metadata/com.programminghoch10.AntiWakeLock/en-US/full_description.txt @@ -1,3 +1,3 @@ Disable WAKE_LOCK and FLAG_KEEP_SCREEN_ON. -Applies to selected apps only. +Can be applied to selected apps or the whole system. From 9b913b2383bc47bda46a7c39937f0b39cbff29ff Mon Sep 17 00:00:00 2001 From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:11:52 +0100 Subject: [PATCH 9/9] fixup! add log statement --- .../main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt index d165dfb..cd42e5f 100644 --- a/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt +++ b/AntiWakeLock/src/main/java/com/programminghoch10/AntiWakeLock/WindowHook.kt @@ -70,6 +70,7 @@ class WindowHook : IXposedHookLoadPackage { WindowManager.LayoutParams::class.java, DO_NOTHING, ) + log("hooked applyKeepScreenOnFlag to do nothing") } catch (e: Throwable) { log("failed to hook ViewRootImpl.applyKeepScreenOnFlag", e) }