Skip to content

Commit 654046f

Browse files
add AntiWakeLock PowerManagerService hooks
1 parent b5dd99e commit 654046f

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
com.programminghoch10.AntiWakeLock.PowerManagerHook
2+
com.programminghoch10.AntiWakeLock.PowerManagerServiceHook
23
com.programminghoch10.AntiWakeLock.WindowHook
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.programminghoch10.AntiWakeLock
2+
3+
import android.os.Build
4+
import de.robv.android.xposed.IXposedHookLoadPackage
5+
import de.robv.android.xposed.XC_MethodReplacement
6+
import de.robv.android.xposed.XposedBridge
7+
import de.robv.android.xposed.XposedHelpers
8+
import de.robv.android.xposed.callbacks.XC_LoadPackage
9+
10+
class PowerManagerServiceHook : IXposedHookLoadPackage {
11+
fun disableMethodByName(clazz: Class<*>, name: String) {
12+
val method = clazz.declaredMethods.single { it.name == "name" }
13+
XposedBridge.hookMethod(method, XC_MethodReplacement.DO_NOTHING)
14+
}
15+
16+
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
17+
if (lpparam.packageName != "android") return
18+
19+
val PowerManagerServiceClass = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) XposedHelpers.findClass("com.android.server.power.PowerManagerService", lpparam.classLoader)
20+
else XposedHelpers.findClass("com.android.server.PowerManagerService", lpparam.classLoader)
21+
22+
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
23+
disableMethodByName(PowerManagerServiceClass, "acquireWakeLock")
24+
disableMethodByName(PowerManagerServiceClass, "releaseWakeLock")
25+
}
26+
27+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
28+
disableMethodByName(PowerManagerServiceClass, "acquireWakeLockInternal")
29+
disableMethodByName(PowerManagerServiceClass, "releaseWakeLockInternal")
30+
}
31+
32+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
33+
val BinderServiceClass = XposedHelpers.findClass("${PowerManagerServiceClass.name}\$BinderService", lpparam.classLoader)
34+
disableMethodByName(BinderServiceClass, "acquireWakeLock")
35+
disableMethodByName(BinderServiceClass, "releaseWakeLock")
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)