From 72fe0938886c01970144fd70f46fdc97e6b9a62d Mon Sep 17 00:00:00 2001 From: o0kam1 Date: Wed, 27 Dec 2023 19:13:36 +0800 Subject: [PATCH] feat: fake_non_multiwindow --- .../java/me/iacn/biliroaming/XposedInit.kt | 1 + .../iacn/biliroaming/hook/MultiWindowHook.kt | 21 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/prefs_setting.xml | 5 +++++ 4 files changed, 29 insertions(+) create mode 100644 app/src/main/java/me/iacn/biliroaming/hook/MultiWindowHook.kt diff --git a/app/src/main/java/me/iacn/biliroaming/XposedInit.kt b/app/src/main/java/me/iacn/biliroaming/XposedInit.kt index 9e2739253f..a1a037c4d9 100644 --- a/app/src/main/java/me/iacn/biliroaming/XposedInit.kt +++ b/app/src/main/java/me/iacn/biliroaming/XposedInit.kt @@ -127,6 +127,7 @@ class XposedInit : IXposedHookLoadPackage, IXposedHookZygoteInit { startHook(PublishToFollowingHook(lpparam.classLoader)) startHook(UposReplaceHook(lpparam.classLoader)) startHook(SpeedHook(lpparam.classLoader)) + startHook(MultiWindowHook(lpparam.classLoader)) } lpparam.processName.endsWith(":web") -> { diff --git a/app/src/main/java/me/iacn/biliroaming/hook/MultiWindowHook.kt b/app/src/main/java/me/iacn/biliroaming/hook/MultiWindowHook.kt new file mode 100644 index 0000000000..7044026e13 --- /dev/null +++ b/app/src/main/java/me/iacn/biliroaming/hook/MultiWindowHook.kt @@ -0,0 +1,21 @@ +package me.iacn.biliroaming.hook + +import android.app.Activity +import me.iacn.biliroaming.utils.Log +import me.iacn.biliroaming.utils.hookBeforeAllMethods +import me.iacn.biliroaming.utils.replaceMethod +import me.iacn.biliroaming.utils.sPrefs + +class MultiWindowHook(mClassLoader: ClassLoader) : BaseHook(mClassLoader) { + override fun startHook() { + if (sPrefs.getBoolean("fake_non_multiwindow", false).not()) return + Log.d("startHook: MultiWindowHook") + Activity::class.java + .getDeclaredMethod("isInMultiWindowMode") + .replaceMethod { false } + Activity::class.java + .hookBeforeAllMethods("onMultiWindowModeChanged") { param -> + param.args[0] = false + } + } +} \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 82c00bf0b8..4c0103d5f4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -290,4 +290,6 @@ 屏蔽指定等级以下用户评论 推荐封面比例 自定义首页推荐小卡(双列显示的)封面比例 + 伪装处于非多窗口模式 + 比如视频多窗口模式下全屏 diff --git a/app/src/main/res/xml/prefs_setting.xml b/app/src/main/res/xml/prefs_setting.xml index fab7ee11a3..31ed6b36e8 100644 --- a/app/src/main/res/xml/prefs_setting.xml +++ b/app/src/main/res/xml/prefs_setting.xml @@ -266,6 +266,11 @@ android:summary="@string/pegasus_cover_ratio_summary" android:title="@string/pegasus_cover_ratio_title" /> +