From b13779c8fbed278a01dc77b77a136c864d849926 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Fri, 30 Dec 2022 01:45:01 +0800 Subject: [PATCH] Modify change registerModuleAppActivities function minimum support Android 7.0 (API 24) in YukiHookFactory, AppParasitics --- .../highcapable/yukihookapi/hook/factory/YukiHookFactory.md | 6 ++++++ .../highcapable/yukihookapi/hook/factory/YukiHookFactory.md | 6 ++++++ .../highcapable/yukihookapi/hook/factory/YukiHookFactory.kt | 5 +++++ .../yukihookapi/hook/xposed/parasitic/AppParasitics.kt | 4 ++++ 4 files changed, 21 insertions(+) diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.md index 7cf0d4c0..4b60f89f 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.md +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.md @@ -164,6 +164,10 @@ fun Context.registerModuleAppActivities(proxy: Any?) `v1.1.0` `added` +`v1.1.5` `modified` + +加入最低 API 版本限制 + **Function Illustrate** > 向 Hook APP (宿主) 注册当前 Xposed 模块的 `Activity`。 @@ -178,6 +182,8 @@ fun Context.registerModuleAppActivities(proxy: Any?) 只能在 (Xposed) 宿主环境使用此功能,其它环境下使用将不生效且会打印警告信息。 +最低支持 Android 7.0 (API 24)。 + ::: ## Context.applyModuleTheme - ext-method diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.md index 8e64df8a..b300760f 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.md @@ -156,6 +156,10 @@ fun Context.registerModuleAppActivities(proxy: Any?) `v1.1.0` `新增` +`v1.1.5` `修改` + +加入最低 API 版本限制 + **功能描述** > 向 Hook APP (宿主) 注册当前 Xposed 模块的 `Activity`。 @@ -170,6 +174,8 @@ fun Context.registerModuleAppActivities(proxy: Any?) 只能在 (Xposed) 宿主环境使用此功能,其它环境下使用将不生效且会打印警告信息。 +最低支持 Android 7.0 (API 24)。 + ::: ## Context.applyModuleTheme - ext-method diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.kt index 2896b872..1bc0a531 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.kt @@ -35,10 +35,12 @@ import android.content.Intent import android.content.res.Configuration import android.content.res.Resources import android.net.Uri +import android.os.Build import android.os.Bundle import android.os.Process import android.view.ContextThemeWrapper import android.widget.ImageView +import androidx.annotation.RequiresApi import androidx.annotation.StyleRes import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker @@ -153,8 +155,11 @@ fun Resources.injectModuleAppResources() = AppParasitics.injectModuleAppResource * For English version, see [Register Module App's Activity](https://fankes.github.io/YukiHookAPI/en/api/special-features/host-inject#register-module-app-s-activity) * * - ❗只能在 (Xposed) 宿主环境使用此功能 - 其它环境下使用将不生效且会打印警告信息 + * + * - ❗最低支持 Android 7.0 (API 24) * @param proxy 代理的 [Activity] - 必须存在于宿主的 AndroidMainifest 清单中 - 不填使用默认 [Activity] */ +@RequiresApi(Build.VERSION_CODES.N) fun Context.registerModuleAppActivities(proxy: Any? = null) = AppParasitics.registerModuleAppActivities(context = this, proxy) /** diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/parasitic/AppParasitics.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/parasitic/AppParasitics.kt index 42e2c255..e04b0feb 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/parasitic/AppParasitics.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/parasitic/AppParasitics.kt @@ -38,7 +38,9 @@ import android.content.* import android.content.pm.PackageManager import android.content.res.Configuration import android.content.res.Resources +import android.os.Build import android.os.Handler +import androidx.annotation.RequiresApi import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.hook.factory.* import com.highcapable.yukihookapi.hook.log.loggerE @@ -303,10 +305,12 @@ internal object AppParasitics { * @param context 当前 [Context] * @param proxy 代理的 [Activity] */ + @RequiresApi(Build.VERSION_CODES.N) internal fun registerModuleAppActivities(context: Context, proxy: Any?) { if (isActivityProxyRegistered) return if (YukiHookBridge.hasXposedBridge.not()) return yLoggerW(msg = "You can only register Activity Proxy in Xposed Environment") if (context.packageName == YukiHookBridge.modulePackageName) return yLoggerE(msg = "You cannot register Activity Proxy into yourself") + if (Build.VERSION.SDK_INT < 24) return yLoggerE(msg = "Activity Proxy only support for Android 7.0 (API 24) or higher") runCatching { ActivityProxyConfig.apply { proxyIntentName = "${YukiHookBridge.modulePackageName}.ACTIVITY_PROXY_INTENT"