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.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 <span class="symbol">- ext-method</span>

View File

@@ -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 <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.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)
/**

View File

@@ -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"