mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-05 18:25:28 +08:00
Added type function in YukiHookAPI.Status.Executor and add ExecutorType
This commit is contained in:
@@ -53,6 +53,7 @@ const navigationLinks = {
|
|||||||
baseApiPath + 'hook/factory/ReflectionFactory',
|
baseApiPath + 'hook/factory/ReflectionFactory',
|
||||||
baseApiPath + 'hook/factory/YukiHookFactory',
|
baseApiPath + 'hook/factory/YukiHookFactory',
|
||||||
baseApiPath + 'hook/entity/YukiBaseHooker',
|
baseApiPath + 'hook/entity/YukiBaseHooker',
|
||||||
|
baseApiPath + 'hook/core/api/compat/type/ExecutorType',
|
||||||
baseApiPath + 'hook/core/YukiMemberHookCreator',
|
baseApiPath + 'hook/core/YukiMemberHookCreator',
|
||||||
baseApiPath + 'hook/core/YukiResourcesHookCreator',
|
baseApiPath + 'hook/core/YukiResourcesHookCreator',
|
||||||
baseApiPath + 'hook/core/finder/members/MethodFinder',
|
baseApiPath + 'hook/core/finder/members/MethodFinder',
|
||||||
|
@@ -260,6 +260,26 @@ val name: String
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
#### type <span class="symbol">- field</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
val type: ExecutorType
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change Records**
|
||||||
|
|
||||||
|
`v1.1.9` `added`
|
||||||
|
|
||||||
|
**Function Illustrate**
|
||||||
|
|
||||||
|
> 获取当前 Hook Framework 类型。
|
||||||
|
|
||||||
|
::: warning
|
||||||
|
|
||||||
|
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
#### apiLevel <span class="symbol">- field</span>
|
#### apiLevel <span class="symbol">- field</span>
|
||||||
|
|
||||||
```kotlin:no-line-numbers
|
```kotlin:no-line-numbers
|
||||||
|
@@ -0,0 +1,115 @@
|
|||||||
|
---
|
||||||
|
pageClass: code-page
|
||||||
|
---
|
||||||
|
|
||||||
|
::: warning
|
||||||
|
|
||||||
|
The English translation of this page has not been completed, you are welcome to contribute translations to us.
|
||||||
|
|
||||||
|
You can use the **Chrome Translation Plugin** to translate entire pages for reference.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
# ExecutorType <span class="symbol">- class</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
enum class ExecutorType
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change Records**
|
||||||
|
|
||||||
|
`v1.1.9` `added`
|
||||||
|
|
||||||
|
**Function Illustrate**
|
||||||
|
|
||||||
|
> Hook Framework 类型定义。
|
||||||
|
|
||||||
|
定义了目前已知使用频率较高的 Hook Framework。
|
||||||
|
|
||||||
|
后期根据 Hook Framework 特征和使用情况将会继续添加新的类型。
|
||||||
|
|
||||||
|
无法识别的 Hook Framework 将被定义为 `UNKNOWN`。
|
||||||
|
|
||||||
|
## UNKNOWN <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
UNKNOWN
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change Records**
|
||||||
|
|
||||||
|
`v1.1.9` `added`
|
||||||
|
|
||||||
|
**Function Illustrate**
|
||||||
|
|
||||||
|
> 未知类型。
|
||||||
|
|
||||||
|
## XPOSED <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
XPOSED
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change Records**
|
||||||
|
|
||||||
|
`v1.1.9` `added`
|
||||||
|
|
||||||
|
**Function Illustrate**
|
||||||
|
|
||||||
|
> 原版、第三方 Xposed。
|
||||||
|
|
||||||
|
## LSPOSED_LSPATCH <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
LSPOSED_LSPATCH
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change Records**
|
||||||
|
|
||||||
|
`v1.1.9` `added`
|
||||||
|
|
||||||
|
**Function Illustrate**
|
||||||
|
|
||||||
|
> LSPosed、LSPatch。
|
||||||
|
|
||||||
|
## ED_XPOSED <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
ED_XPOSED
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change Records**
|
||||||
|
|
||||||
|
`v1.1.9` `added`
|
||||||
|
|
||||||
|
**Function Illustrate**
|
||||||
|
|
||||||
|
> EdXposed。
|
||||||
|
|
||||||
|
## TAICHI_XPOSED <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
TAICHI_XPOSED
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change Records**
|
||||||
|
|
||||||
|
`v1.1.9` `added`
|
||||||
|
|
||||||
|
**Function Illustrate**
|
||||||
|
|
||||||
|
> TaiChi (太极)。
|
||||||
|
|
||||||
|
## BUG_XPOSED <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
BUG_XPOSED
|
||||||
|
```
|
||||||
|
|
||||||
|
**Change Records**
|
||||||
|
|
||||||
|
`v1.1.9` `added`
|
||||||
|
|
||||||
|
**Function Illustrate**
|
||||||
|
|
||||||
|
> BugXposed (应用转生)。
|
@@ -252,6 +252,26 @@ val name: String
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
#### type <span class="symbol">- field</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
val type: ExecutorType
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.1.9` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> 获取当前 Hook Framework 类型。
|
||||||
|
|
||||||
|
::: warning
|
||||||
|
|
||||||
|
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
#### apiLevel <span class="symbol">- field</span>
|
#### apiLevel <span class="symbol">- field</span>
|
||||||
|
|
||||||
```kotlin:no-line-numbers
|
```kotlin:no-line-numbers
|
||||||
|
@@ -0,0 +1,107 @@
|
|||||||
|
---
|
||||||
|
pageClass: code-page
|
||||||
|
---
|
||||||
|
|
||||||
|
# ExecutorType <span class="symbol">- class</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
enum class ExecutorType
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.1.9` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> Hook Framework 类型定义。
|
||||||
|
|
||||||
|
定义了目前已知使用频率较高的 Hook Framework。
|
||||||
|
|
||||||
|
后期根据 Hook Framework 特征和使用情况将会继续添加新的类型。
|
||||||
|
|
||||||
|
无法识别的 Hook Framework 将被定义为 `UNKNOWN`。
|
||||||
|
|
||||||
|
## UNKNOWN <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
UNKNOWN
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.1.9` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> 未知类型。
|
||||||
|
|
||||||
|
## XPOSED <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
XPOSED
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.1.9` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> 原版、第三方 Xposed。
|
||||||
|
|
||||||
|
## LSPOSED_LSPATCH <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
LSPOSED_LSPATCH
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.1.9` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> LSPosed、LSPatch。
|
||||||
|
|
||||||
|
## ED_XPOSED <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
ED_XPOSED
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.1.9` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> EdXposed。
|
||||||
|
|
||||||
|
## TAICHI_XPOSED <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
TAICHI_XPOSED
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.1.9` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> TaiChi (太极)。
|
||||||
|
|
||||||
|
## BUG_XPOSED <span class="symbol">- enum</span>
|
||||||
|
|
||||||
|
```kotlin:no-line-numbers
|
||||||
|
BUG_XPOSED
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.1.9` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> BugXposed (应用转生)。
|
@@ -39,6 +39,7 @@ import com.highcapable.yukihookapi.YukiHookAPI.encase
|
|||||||
import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
|
import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
|
||||||
import com.highcapable.yukihookapi.hook.core.api.compat.HookApiCategoryHelper
|
import com.highcapable.yukihookapi.hook.core.api.compat.HookApiCategoryHelper
|
||||||
import com.highcapable.yukihookapi.hook.core.api.compat.HookApiProperty
|
import com.highcapable.yukihookapi.hook.core.api.compat.HookApiProperty
|
||||||
|
import com.highcapable.yukihookapi.hook.core.api.compat.type.ExecutorType
|
||||||
import com.highcapable.yukihookapi.hook.core.finder.members.ConstructorFinder
|
import com.highcapable.yukihookapi.hook.core.finder.members.ConstructorFinder
|
||||||
import com.highcapable.yukihookapi.hook.core.finder.members.FieldFinder
|
import com.highcapable.yukihookapi.hook.core.finder.members.FieldFinder
|
||||||
import com.highcapable.yukihookapi.hook.core.finder.members.MethodFinder
|
import com.highcapable.yukihookapi.hook.core.finder.members.MethodFinder
|
||||||
@@ -193,6 +194,14 @@ object YukiHookAPI {
|
|||||||
else -> YukiXposedModuleStatus.executorName
|
else -> YukiXposedModuleStatus.executorName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前 Hook Framework 类型
|
||||||
|
*
|
||||||
|
* - ❗在模块环境中需要启用 [Configs.isEnableHookModuleStatus]
|
||||||
|
* @return [ExecutorType]
|
||||||
|
*/
|
||||||
|
val type get() = HookApiProperty.type.takeIf { isXposedEnvironment } ?: HookApiProperty.type(YukiXposedModuleStatus.executorName)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前 Hook Framework 的 API 版本
|
* 获取当前 Hook Framework 的 API 版本
|
||||||
*
|
*
|
||||||
|
@@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
package com.highcapable.yukihookapi.hook.core.api.compat
|
package com.highcapable.yukihookapi.hook.core.api.compat
|
||||||
|
|
||||||
|
import com.highcapable.yukihookapi.hook.core.api.compat.type.ExecutorType
|
||||||
import com.highcapable.yukihookapi.hook.factory.classOf
|
import com.highcapable.yukihookapi.hook.factory.classOf
|
||||||
import com.highcapable.yukihookapi.hook.factory.field
|
import com.highcapable.yukihookapi.hook.factory.field
|
||||||
import com.highcapable.yukihookapi.hook.factory.hasClass
|
import com.highcapable.yukihookapi.hook.factory.hasClass
|
||||||
@@ -40,6 +41,15 @@ import de.robv.android.xposed.XposedBridge
|
|||||||
*/
|
*/
|
||||||
internal object HookApiProperty {
|
internal object HookApiProperty {
|
||||||
|
|
||||||
|
/** Xposed 框架名称 */
|
||||||
|
internal const val XPOSED_NAME = "Xposed"
|
||||||
|
|
||||||
|
/** LSPosed 框架名称 */
|
||||||
|
internal const val LSPOSED_NAME = "LSPosed"
|
||||||
|
|
||||||
|
/** EdXposed 框架名称 */
|
||||||
|
internal const val ED_XPOSED_NAME = "EdXposed"
|
||||||
|
|
||||||
/** TaiChi (太极) Xposed 框架名称 */
|
/** TaiChi (太极) Xposed 框架名称 */
|
||||||
internal const val TAICHI_XPOSED_NAME = "TaiChi"
|
internal const val TAICHI_XPOSED_NAME = "TaiChi"
|
||||||
|
|
||||||
@@ -69,6 +79,26 @@ internal object HookApiProperty {
|
|||||||
HookApiCategory.UNKNOWN -> "unknown"
|
HookApiCategory.UNKNOWN -> "unknown"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前 Hook Framework 类型
|
||||||
|
* @return [ExecutorType]
|
||||||
|
*/
|
||||||
|
internal val type get() = type()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前 Hook Framework 类型
|
||||||
|
* @param executorName Hook Framework 名称 - 默认为 [name]
|
||||||
|
* @return [ExecutorType]
|
||||||
|
*/
|
||||||
|
internal fun type(executorName: String = name) = when (executorName) {
|
||||||
|
BUG_XPOSED_NAME -> ExecutorType.BUG_XPOSED
|
||||||
|
TAICHI_XPOSED_NAME -> ExecutorType.TAICHI_XPOSED
|
||||||
|
ED_XPOSED_NAME -> ExecutorType.ED_XPOSED
|
||||||
|
LSPOSED_NAME -> ExecutorType.LSPOSED_LSPATCH
|
||||||
|
XPOSED_NAME -> ExecutorType.XPOSED
|
||||||
|
else -> ExecutorType.UNKNOWN
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前 Hook Framework 的 API 版本
|
* 获取当前 Hook Framework 的 API 版本
|
||||||
* @return [Int] 无法获取会返回 -1
|
* @return [Int] 无法获取会返回 -1
|
||||||
|
@@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
* YukiHookAPI - An efficient Hook API and Xposed Module solution built in Kotlin.
|
||||||
|
* Copyright (C) 2019-2023 HighCapable
|
||||||
|
* https://github.com/fankes/YukiHookAPI
|
||||||
|
*
|
||||||
|
* MIT License
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
* This file is Created by fankes on 2023/4/16.
|
||||||
|
*/
|
||||||
|
package com.highcapable.yukihookapi.hook.core.api.compat.type
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hook Framework 类型定义
|
||||||
|
*
|
||||||
|
* 定义了目前已知使用频率较高的 Hook Framework
|
||||||
|
*
|
||||||
|
* 后期根据 Hook Framework 特征和使用情况将会继续添加新的类型
|
||||||
|
*
|
||||||
|
* 无法识别的 Hook Framework 将被定义为 [UNKNOWN]
|
||||||
|
*/
|
||||||
|
enum class ExecutorType {
|
||||||
|
/** 未知类型 */
|
||||||
|
UNKNOWN,
|
||||||
|
|
||||||
|
/** 原版、第三方 Xposed */
|
||||||
|
XPOSED,
|
||||||
|
|
||||||
|
/** LSPosed、LSPatch */
|
||||||
|
LSPOSED_LSPATCH,
|
||||||
|
|
||||||
|
/** EdXposed */
|
||||||
|
ED_XPOSED,
|
||||||
|
|
||||||
|
/** TaiChi (太极) */
|
||||||
|
TAICHI_XPOSED,
|
||||||
|
|
||||||
|
/** BugXposed (应用转生) */
|
||||||
|
BUG_XPOSED
|
||||||
|
}
|
Reference in New Issue
Block a user