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

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

@@ -338,6 +338,35 @@ class SettingsActivity : MIUIActivity() {
SwitchV("unlock_unlimited_cropping")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.prevent_recovery_of_battery_optimization_white_list,
tipsId = R.string.failed_after_restart
),
SwitchV("prevent_recovery_of_battery_optimization_white_list")
)
)
add(
TextSummaryArrowV(
TextSummaryV(
textId = R.string.battery_optimization,
tipsId = R.string.battery_optimization_summary,
onClickListener = {
try {
val intent = Intent()
val comp = ComponentName(
"com.android.settings",
"com.android.settings.Settings\$HighPowerApplicationsActivity"
)
intent.component = comp
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "启动失败,可能是不支持", Toast.LENGTH_LONG).show()
}
})
)
)
add(LineV())
add(TitleTextV(resId = R.string.about))
add(

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
}
}
})
}
}

View File

@@ -80,5 +80,9 @@
<string name="third_party_open_source_statement">第三方开源声明</string>
<string name="corepacth">解除安装限制</string>
<string name="corepacth_summary">支持降级/不同签名/无签名安装</string>
<string name="prevent_recovery_of_battery_optimization_white_list">防止恢复电池优化白名单</string>
<string name="failed_after_restart">系统重启后仍会还原</string>
<string name="battery_optimization">电池优化</string>
<string name="battery_optimization_summary">快速打开被MIUI隐藏的电池优化功能</string>
</resources>