Modify change registerModuleAppActivities function minimum support Android 7.0 (API 24) in YukiHookFactory, AppParasitics

This commit is contained in:
2022-12-30 01:45:01 +08:00
parent 1fb4ca6bcf
commit b13779c8fb
4 changed files with 21 additions and 0 deletions

View File

@@ -164,6 +164,10 @@ fun Context.registerModuleAppActivities(proxy: Any?)
`v1.1.0` `added` `v1.1.0` `added`
`v1.1.5` `modified`
加入最低 API 版本限制
**Function Illustrate** **Function Illustrate**
> 向 Hook APP (宿主) 注册当前 Xposed 模块的 `Activity`。 > 向 Hook APP (宿主) 注册当前 Xposed 模块的 `Activity`。
@@ -178,6 +182,8 @@ fun Context.registerModuleAppActivities(proxy: Any?)
只能在 (Xposed) 宿主环境使用此功能,其它环境下使用将不生效且会打印警告信息。 只能在 (Xposed) 宿主环境使用此功能,其它环境下使用将不生效且会打印警告信息。
最低支持 Android 7.0 (API 24)。
::: :::
## Context.applyModuleTheme <span class="symbol">- ext-method</span> ## Context.applyModuleTheme <span class="symbol">- ext-method</span>

View File

@@ -156,6 +156,10 @@ fun Context.registerModuleAppActivities(proxy: Any?)
`v1.1.0` `新增` `v1.1.0` `新增`
`v1.1.5` `修改`
加入最低 API 版本限制
**功能描述** **功能描述**
> 向 Hook APP (宿主) 注册当前 Xposed 模块的 `Activity`。 > 向 Hook APP (宿主) 注册当前 Xposed 模块的 `Activity`。
@@ -170,6 +174,8 @@ fun Context.registerModuleAppActivities(proxy: Any?)
只能在 (Xposed) 宿主环境使用此功能,其它环境下使用将不生效且会打印警告信息。 只能在 (Xposed) 宿主环境使用此功能,其它环境下使用将不生效且会打印警告信息。
最低支持 Android 7.0 (API 24)。
::: :::
## Context.applyModuleTheme <span class="symbol">- ext-method</span> ## Context.applyModuleTheme <span class="symbol">- ext-method</span>

View File

@@ -35,10 +35,12 @@ import android.content.Intent
import android.content.res.Configuration import android.content.res.Configuration
import android.content.res.Resources import android.content.res.Resources
import android.net.Uri import android.net.Uri
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Process import android.os.Process
import android.view.ContextThemeWrapper import android.view.ContextThemeWrapper
import android.widget.ImageView import android.widget.ImageView
import androidx.annotation.RequiresApi
import androidx.annotation.StyleRes import androidx.annotation.StyleRes
import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.YukiHookAPI
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker 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) * 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) 宿主环境使用此功能 - 其它环境下使用将不生效且会打印警告信息 * - ❗只能在 (Xposed) 宿主环境使用此功能 - 其它环境下使用将不生效且会打印警告信息
*
* - ❗最低支持 Android 7.0 (API 24)
* @param proxy 代理的 [Activity] - 必须存在于宿主的 AndroidMainifest 清单中 - 不填使用默认 [Activity] * @param proxy 代理的 [Activity] - 必须存在于宿主的 AndroidMainifest 清单中 - 不填使用默认 [Activity]
*/ */
@RequiresApi(Build.VERSION_CODES.N)
fun Context.registerModuleAppActivities(proxy: Any? = null) = AppParasitics.registerModuleAppActivities(context = this, proxy) fun Context.registerModuleAppActivities(proxy: Any? = null) = AppParasitics.registerModuleAppActivities(context = this, proxy)
/** /**

View File

@@ -38,7 +38,9 @@ import android.content.*
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.content.res.Configuration import android.content.res.Configuration
import android.content.res.Resources import android.content.res.Resources
import android.os.Build
import android.os.Handler import android.os.Handler
import androidx.annotation.RequiresApi
import com.highcapable.yukihookapi.YukiHookAPI import com.highcapable.yukihookapi.YukiHookAPI
import com.highcapable.yukihookapi.hook.factory.* import com.highcapable.yukihookapi.hook.factory.*
import com.highcapable.yukihookapi.hook.log.loggerE import com.highcapable.yukihookapi.hook.log.loggerE
@@ -303,10 +305,12 @@ internal object AppParasitics {
* @param context 当前 [Context] * @param context 当前 [Context]
* @param proxy 代理的 [Activity] * @param proxy 代理的 [Activity]
*/ */
@RequiresApi(Build.VERSION_CODES.N)
internal fun registerModuleAppActivities(context: Context, proxy: Any?) { internal fun registerModuleAppActivities(context: Context, proxy: Any?) {
if (isActivityProxyRegistered) return if (isActivityProxyRegistered) return
if (YukiHookBridge.hasXposedBridge.not()) return yLoggerW(msg = "You can only register Activity Proxy in Xposed Environment") 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 (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 { runCatching {
ActivityProxyConfig.apply { ActivityProxyConfig.apply {
proxyIntentName = "${YukiHookBridge.modulePackageName}.ACTIVITY_PROXY_INTENT" proxyIntentName = "${YukiHookBridge.modulePackageName}.ACTIVITY_PROXY_INTENT"