Merge YukiHookModuleStatus to YukiHookAPI.Status

This commit is contained in:
2022-05-29 03:41:22 +08:00
parent 17225c3ad4
commit 57331234c3
13 changed files with 258 additions and 163 deletions

View File

@@ -8,8 +8,6 @@
[filename](public/HookParam.md ':include')
[filename](public/YukiHookModuleStatus.md ':include')
[filename](public/InjectYukiHookWithXposed.md ':include')
[filename](public/IYukiHookXposedInit.md ':include')

View File

@@ -26,6 +26,8 @@ open class ModuleApplication: Application()
- 在模块中使用系统隐藏 API核心技术引用了开源项目 [FreeReflection](https://github.com/tiann/FreeReflection)
- 在模块中使用 `YukiHookAPI.Status.isTaiChiModuleActive` 判断太极、无极激活状态
**功能示例**
将此类继承到你的自定义 `Application` 上。

View File

@@ -40,7 +40,41 @@ const val API_VERSION_CODE: Int
> 获取当前 `YukiHookAPI` 的版本号。
### executorName [field]
### ~~executorName [field]~~ <!-- {docsify-ignore} -->
**变更记录**
`v1.0.5` `新增`
`v1.0.91` `移除`
请转移到 `Status.executorName`
### ~~executorVersion [field]~~ <!-- {docsify-ignore} -->
**变更记录**
`v1.0.5` `新增`
`v1.0.91` `移除`
请转移到 `Status.executorVersion`
### Status [object]
```kotlin
object Status
```
**变更记录**
`v1.0.91` `新增`
**功能描述**
> 当前 `YukiHookAPI` 的状态。
#### executorName [field]
```kotlin
val executorName: String
@@ -48,7 +82,7 @@ val executorName: String
**变更记录**
`v1.0.5` `新增`
`v1.0.91` `新增`
**功能描述**
@@ -56,7 +90,9 @@ val executorName: String
无法获取会返回 `unknown``XposedBridge` 不存在会返回 `invalid`
### executorVersion [field]
!> 在模块环境中需要启用 `Configs.isEnableHookModuleStatus`
#### executorVersion [field]
```kotlin
val executorVersion: Int
@@ -64,7 +100,7 @@ val executorVersion: Int
**变更记录**
`v1.0.5` `新增`
`v1.0.91` `新增`
**功能描述**
@@ -72,6 +108,82 @@ val executorVersion: Int
无法获取会返回 `-1`
!> 在模块环境中需要启用 `Configs.isEnableHookModuleStatus`
#### isModuleActive [field]
```kotlin
val isModuleActive: Boolean
```
**变更记录**
`v1.0.91` `新增`
**功能描述**
> 判断模块是否在 Xposed 或太极、无极中激活。
!> 在模块环境中你需要将 `Application` 继承于 `ModuleApplication`
!> 在模块环境中需要启用 `Configs.isEnableHookModuleStatus`
!> 在 Xposed 环境中仅返回非 `isTaiChiModuleActive` 的激活状态。
#### isXposedModuleActive [field]
```kotlin
val isXposedModuleActive: Boolean
```
**变更记录**
`v1.0.91` `新增`
**功能描述**
> 仅判断模块是否在 Xposed 中激活。
!> 在模块环境中需要启用 `Configs.isEnableHookModuleStatus`
!> 在 Xposed 环境中始终返回 true。
#### isTaiChiModuleActive [field]
```kotlin
val isTaiChiModuleActive: Boolean
```
**变更记录**
`v1.0.91` `新增`
**功能描述**
> 仅判断模块是否在太极、无极中激活。
!> 在模块环境中你需要将 `Application` 继承于 `ModuleApplication`
!> 在 Xposed 环境中始终返回 false。
#### isSupportResourcesHook [field]
```kotlin
val isSupportResourcesHook: Boolean
```
**变更记录**
`v1.0.91` `新增`
**功能描述**
> 判断当前 Hook Framework 是否支持资源钩子(Resources Hook)。
!> 在模块环境中需要启用 `Configs.isEnableHookModuleStatus`
!> 在 Xposed 环境中可能会延迟等待事件回调后才会返回 true。
### Configs [object]
```kotlin
@@ -188,7 +300,7 @@ var isEnableHookModuleStatus: Boolean
为原生支持 Xposed 模块激活状态检测,此功能默认启用。
!> 关闭后你将不能再使用 `YukiHookModuleStatus` 中的功能。
!> 关闭后你将不能再在模块环境中使用 `YukiHookAPI.Status` 中的功能。
#### isEnableDataChannel [field]

View File

@@ -108,58 +108,52 @@ val Context.processName: String
> 获取当前进程名称。
### isSupportResourcesHook [field]
```kotlin
val Any?.isSupportResourcesHook: Boolean
```
### ~~isSupportResourcesHook [field]~~ <!-- {docsify-ignore} -->
**变更记录**
`v1.0.80` `新增`
**功能描述**
`v1.0.91` `移除`
> 判断当前 Hook Framework 是否支持资源钩子(Resources Hook)。
请转移到 `YukiHookAPI.Status.isSupportResourcesHook`
### isModuleActive [field]
```kotlin
val Context.isModuleActive: Boolean
```
### ~~isModuleActive [field]~~ <!-- {docsify-ignore} -->
**变更记录**
`v1.0.6` `新增`
**功能描述**
`v1.0.91` `移除`
> 判断模块是否在 Xposed 或太极、无极中激活。
请转移到 `YukiHookAPI.Status.isModuleActive`
### isXposedModuleActive [field]
```kotlin
val Any?.isXposedModuleActive: Boolean
```
### ~~isXposedModuleActive [field]~~ <!-- {docsify-ignore} -->
**变更记录**
`v1.0.6` `新增`
**功能描述**
`v1.0.91` `移除`
> 仅判断模块是否在 Xposed 中激活。
请转移到 `YukiHookAPI.Status.isXposedModuleActive`
### isTaiChiModuleActive [field]
```kotlin
val Context.isTaiChiModuleActive: Boolean
```
### ~~isTaiChiModuleActive [field]~~ <!-- {docsify-ignore} -->
**变更记录**
`v1.0` `添加`
**功能描述**
`v1.0.91` `移除`
> 仅判断模块是否在太极、无极中激活。
请转移到 `YukiHookAPI.Status.isTaiChiModuleActive`
## ~~YukiHookModuleStatus [class]~~ <!-- {docsify-ignore} -->
**变更记录**
`v1.0` `添加`
`v1.0.91` `作废`
请转移到 `YukiHookAPI.Status`

View File

@@ -1,55 +0,0 @@
## YukiHookModuleStatus [class]
```kotlin
object YukiHookModuleStatus
```
**变更记录**
`v1.0` `添加`
**功能描述**
> 这是一个 Xposed 模块 Hook 状态类。
### executorName [field]
```kotlin
val executorName: String
```
**变更记录**
`v1.0.5` `新增`
**功能描述**
> 获取当前 Hook 框架的名称。
模块未激活会返回 `unknown`,获取过程发生错误会返回 `invalid`
### executorVersion [field]
```kotlin
val executorVersion: Int
```
**变更记录**
`v1.0.5` `新增`
**功能描述**
> 获取当前 Hook 框架的版本。
模块未激活会返回 `-1`
### ~~isActive [method]~~ <!-- {docsify-ignore} -->
**变更记录**
`v1.0` `添加`
`v1.0.6` `作废`
请使用 `isModuleActive``isXposedModuleActive``isTaiChiModuleActive`

View File

@@ -454,41 +454,43 @@ override fun onHook() = encase {
`YukiHookAPI` 中你完全不需要再这么做了,`YukiHookAPI` 已经帮你封装好了这个操作,你可以直接进行使用。
现在,你可以直接使用 `isXposedModuleActive` 在模块中判断自身是否被激活。
现在,你可以直接使用 `YukiHookAPI.Status.isXposedModuleActive` 在模块中判断自身是否被激活。
> 示例如下
```kotlin
if(isXposedModuleActive) {
if(YukiHookAPI.Status.isXposedModuleActive) {
// Your code here.
}
```
由于一些特殊原因,在太极、无极中的模块无法使用标准方法检测激活状态。
此时你可以 `Activity` 中使用 `isTaiChiModuleActive` 判断自身是否被激活。
此时你可以使用 `YukiHookAPI.Status.isTaiChiModuleActive` 判断自身是否被激活。
> 示例如下
```kotlin
if(isTaiChiModuleActive) {
if(YukiHookAPI.Status.isTaiChiModuleActive) {
// Your code here.
}
```
若你想使用两者得兼的判断方案,`YukiHookAPI` 同样为你封装了便捷的方式。
此时你可以 `Activity` 中使用 `isModuleActive` 判断自身是否在 Xposed 或太极、无极中被激活。
此时你可以使用 `YukiHookAPI.Status.isModuleActive` 判断自身是否在 Xposed 或太极、无极中被激活。
> 示例如下
```kotlin
if(isModuleActive) {
if(YukiHookAPI.Status.isModuleActive) {
// Your code here.
}
```
若要了解更多可 [点击这里](api/document?id=ismoduleactive-field) 进行查看。
若要了解更多可 [点击这里](api/document?id=status-object) 进行查看。
!> 新版本的 API 修改了激活逻辑判断方式,现在你可以在模块与 Hook APP(宿主)中同时使用此 API。
!> 需要确保 `YukiHookAPI.Configs.isEnableHookModuleStatus` 是启用状态。