diff --git a/app/src/main/java/com/lt2333/simplicitytools/hooks/rules/all/android/DisableFlagSecureForAll.kt b/app/src/main/java/com/lt2333/simplicitytools/hooks/rules/all/android/DisableFlagSecureForAll.kt index e7c91d55..a7b95461 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hooks/rules/all/android/DisableFlagSecureForAll.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hooks/rules/all/android/DisableFlagSecureForAll.kt @@ -1,13 +1,14 @@ package com.lt2333.simplicitytools.hooks.rules.all.android +import android.os.Build import com.github.kyuubiran.ezxhelper.utils.findMethod +import com.github.kyuubiran.ezxhelper.utils.hookAllConstructorBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.lt2333.simplicitytools.utils.hasEnable import com.lt2333.simplicitytools.utils.xposed.base.HookRegister object DisableFlagSecureForAll : HookRegister() { override fun init() { - // TODO: 23.1.30及之后的版本无法在部分场景生效,疑似MIUI做了修改 findMethod("com.android.server.wm.WindowState") { name == "isSecureLocked" }.hookBefore { @@ -15,6 +16,19 @@ object DisableFlagSecureForAll : HookRegister() { it.result = false } } - } + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.TIRAMISU) { + findMethod("com.android.server.wm.WindowSurfaceController") { + name == "setSecure" + }.hookBefore { + it.args[0] = false + } + hookAllConstructorBefore("com.android.server.wm.WindowSurfaceController") { + var flags = it.args[2] as Int + val secureFlag = 128 + flags = flags and secureFlag.inv() + it.args[2] = flags + } + } + } } \ No newline at end of file