新增防止恢复电池优化白名单

This commit is contained in:
乌堆小透明
2022-03-02 01:50:52 +08:00
parent 4fab274f36
commit 2475e469f4
4 changed files with 67 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.hook.app.powerkeeper.LockMaxFps
import com.lt2333.simplicitytools.hook.app.powerkeeper.PreventRecoveryOfBatteryOptimizationWhitelist
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.XposedBridge
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam
@@ -11,6 +12,8 @@ class PowerKeeper : IXposedHookLoadPackage {
XposedBridge.log("成功Hook: "+javaClass.simpleName)
//锁定最高刷新率
LockMaxFps().handleLoadPackage(lpparam)
//防止恢复电池优化白名单
PreventRecoveryOfBatteryOptimizationWhitelist().handleLoadPackage(lpparam)
}
}

View File

@@ -0,0 +1,31 @@
package com.lt2333.simplicitytools.hook.app.powerkeeper
import com.lt2333.simplicitytools.util.XSPUtils
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 PreventRecoveryOfBatteryOptimizationWhitelist : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
val classIfExists = XposedHelpers.findClassIfExists(
"com.miui.powerkeeper.statemachine.ForceDozeController",
lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"restoreWhiteListAppsIfQuitForceIdle",
object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) {
super.beforeHookedMethod(param)
if (XSPUtils.getBoolean(
"prevent_recovery_of_battery_optimization_white_list",
false
)
) {
param.result = null
}
}
})
}
}