Modify decoupling Xposed API

- Remove YukiBridgeFactory, merge it to hook/core/api/*
- Remove YukiHookBridge, merge it to YukiXposedModule
- Remove the direct call function of Xposed API
- Change hook entry class way of injecting
- Fix some bugs in LoggerFactory, YukiXposedModule (formerly YukiHookBridge), AppParasitics
This commit is contained in:
2023-01-12 00:42:03 +08:00
parent 1efbd2e836
commit 5e478fe285
61 changed files with 2229 additions and 1223 deletions

View File

@@ -60,7 +60,7 @@ const val API_VERSION_CODE: Int
`v1.0.91` `removed`
请转移到 `Status.executorName`
请转移到 `Status.Executor.name`
<h2 class="deprecated">executorVersion - field</h2>
@@ -70,7 +70,7 @@ const val API_VERSION_CODE: Int
`v1.0.91` `removed`
请转移到 `Status.executorVersion`
请转移到 `Status.Executor.apiLevel`、`Status.Executor.versionName`、`Status.Executor.versionCode`
## Status <span class="symbol">- object</span>
@@ -114,49 +114,25 @@ val isXposedEnvironment: Boolean
> 获取当前是否为 (Xposed) 宿主环境。
### executorName <span class="symbol">- field</span>
```kotlin:no-line-numbers
val executorName: String
```
<h3 class="deprecated">executorName - field</h3>
**Change Records**
`v1.0.91` `added`
**Function Illustrate**
`v1.1.5` `deprecated`
> 获取当前 Hook 框架的名称。
请转移到 `Executor.name`
无法获取会返回 `unknown``XposedBridge` 不存在会返回 `invalid`。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
### executorVersion <span class="symbol">- field</span>
```kotlin:no-line-numbers
val executorVersion: Int
```
<h3 class="deprecated">executorVersion - field</h3>
**Change Records**
`v1.0.91` `added`
**Function Illustrate**
`v1.1.5` `deprecated`
> 获取当前 Hook 框架的版本。
无法获取会返回 `-1`。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
请转移到 `Executor.apiLevel`、`Executor.versionName`、`Executor.versionCode`
### isModuleActive <span class="symbol">- field</span>
@@ -250,6 +226,100 @@ val isSupportResourcesHook: Boolean
:::
### Executor <span class="symbol">- object</span>
```kotlin:no-line-numbers
object Executor
```
**Change Records**
`v1.1.5` `added`
**Function Illustrate**
> 当前 `YukiHookAPI` 使用的 Hook 框架相关信息。
#### name <span class="symbol">- field</span>
```kotlin:no-line-numbers
val name: String
```
**Change Records**
`v1.1.5` `added`
**Function Illustrate**
> 获取当前 Hook 框架的名称。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
#### apiLevel <span class="symbol">- field</span>
```kotlin:no-line-numbers
val apiLevel: Int
```
**Change Records**
`v1.1.5` `added`
**Function Illustrate**
> 获取当前 Hook 框架的 API 版本。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
#### versionName <span class="symbol">- field</span>
```kotlin:no-line-numbers
val versionName: String
```
**Change Records**
`v1.1.5` `added`
**Function Illustrate**
> 获取当前 Hook 框架的版本名称。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
#### versionCode <span class="symbol">- field</span>
```kotlin:no-line-numbers
val versionCode: Int
```
**Change Records**
`v1.1.5` `added`
**Function Illustrate**
> 获取当前 Hook 框架的版本号。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
## Configs <span class="symbol">- object</span>
```kotlin:no-line-numbers

View File

@@ -18,7 +18,7 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe
**Function Illustrate**
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 `XposedBridge.log` 打印日志的功能。
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 (Xposed) 宿主环境打印日志的功能。
## LoggerType <span class="symbol">- class</span>
@@ -50,19 +50,29 @@ LOGD
> 仅使用 `android.util.Log`。
### XPOSEDBRIDGE <span class="symbol">- enum</span>
```kotlin:no-line-numbers
XPOSEDBRIDGE
```
<h3 class="deprecated">XPOSEDBRIDGE - enum</h3>
**Change Records**
`v1.1.0` `added`
`v1.1.5` `deprecated`
请转移到 `XPOSED_ENVIRONMENT`
### XPOSED_ENVIRONMENT <span class="symbol">- enum</span>
```kotlin:no-line-numbers
XPOSED_ENVIRONMENT
```
**Change Records**
`v1.1.5` `added`
**Function Illustrate**
> 仅使用 `XposedBridge.log`
> 仅在 (Xposed) 宿主环境使用
::: danger
@@ -84,7 +94,7 @@ SCOPE
> 分区使用。
(Xposed) 宿主环境仅使用 `XPOSEDBRIDGE`。
(Xposed) 宿主环境仅使用 `XPOSED_ENVIRONMENT`。
模块环境仅使用 `LOGD`。
@@ -102,7 +112,7 @@ BOTH
> 同时使用。
(Xposed) 宿主环境使用 `LOGD` 与 `XPOSEDBRIDGE`。
(Xposed) 宿主环境使用 `LOGD` 与 `XPOSED_ENVIRONMENT`。
模块环境仅使用 `LOGD`。
@@ -415,7 +425,7 @@ fun elements(vararg item: Int)
> 自定义调试日志对外显示的元素。
只对日志记录和 `XposedBridge.log` 生效。
只对日志记录和 (Xposed) 宿主环境的日志生效。
日志元素的排列将按照你在 `item` 中设置的顺序进行显示。
@@ -473,7 +483,7 @@ fun loggerD(tag: String, msg: String, type: LoggerType)
**Function Illustrate**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `D`。
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `D`。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
@@ -493,7 +503,7 @@ fun loggerI(tag: String, msg: String, type: LoggerType)
**Function Illustrate**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `I`。
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `I`。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
@@ -513,7 +523,7 @@ fun loggerW(tag: String, msg: String, type: LoggerType)
**Function Illustrate**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `W`。
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `W`。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
@@ -533,6 +543,6 @@ fun loggerE(tag: String, msg: String, e: Throwable?, type: LoggerType)
**Function Illustrate**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。

View File

@@ -52,7 +52,7 @@ const val API_VERSION_CODE: Int
`v1.0.91` `移除`
请转移到 `Status.executorName`
请转移到 `Status.Executor.name`
<h2 class="deprecated">executorVersion - field</h2>
@@ -62,7 +62,7 @@ const val API_VERSION_CODE: Int
`v1.0.91` `移除`
请转移到 `Status.executorVersion`
请转移到 `Status.Executor.apiLevel`、`Status.Executor.versionName`、`Status.Executor.versionCode`
## Status <span class="symbol">- object</span>
@@ -106,49 +106,25 @@ val isXposedEnvironment: Boolean
> 获取当前是否为 (Xposed) 宿主环境。
### executorName <span class="symbol">- field</span>
```kotlin:no-line-numbers
val executorName: String
```
<h3 class="deprecated">executorName - field</h3>
**变更记录**
`v1.0.91` `新增`
**功能描述**
`v1.1.5` `作废`
> 获取当前 Hook 框架的名称。
请转移到 `Executor.name`
无法获取会返回 `unknown``XposedBridge` 不存在会返回 `invalid`。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
### executorVersion <span class="symbol">- field</span>
```kotlin:no-line-numbers
val executorVersion: Int
```
<h3 class="deprecated">executorVersion - field</h3>
**变更记录**
`v1.0.91` `新增`
**功能描述**
`v1.1.5` `作废`
> 获取当前 Hook 框架的版本。
无法获取会返回 `-1`。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
请转移到 `Executor.apiLevel`、`Executor.versionName`、`Executor.versionCode`
### isModuleActive <span class="symbol">- field</span>
@@ -242,6 +218,100 @@ val isSupportResourcesHook: Boolean
:::
### Executor <span class="symbol">- object</span>
```kotlin:no-line-numbers
object Executor
```
**变更记录**
`v1.1.5` `新增`
**功能描述**
> 当前 `YukiHookAPI` 使用的 Hook 框架相关信息。
#### name <span class="symbol">- field</span>
```kotlin:no-line-numbers
val name: String
```
**变更记录**
`v1.1.5` `新增`
**功能描述**
> 获取当前 Hook 框架的名称。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
#### apiLevel <span class="symbol">- field</span>
```kotlin:no-line-numbers
val apiLevel: Int
```
**变更记录**
`v1.1.5` `新增`
**功能描述**
> 获取当前 Hook 框架的 API 版本。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
#### versionName <span class="symbol">- field</span>
```kotlin:no-line-numbers
val versionName: String
```
**变更记录**
`v1.1.5` `新增`
**功能描述**
> 获取当前 Hook 框架的版本名称。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
#### versionCode <span class="symbol">- field</span>
```kotlin:no-line-numbers
val versionCode: Int
```
**变更记录**
`v1.1.5` `新增`
**功能描述**
> 获取当前 Hook 框架的版本号。
::: warning
在模块环境中需要启用 **Configs.isEnableHookModuleStatus**。
:::
## Configs <span class="symbol">- object</span>
```kotlin:no-line-numbers

View File

@@ -10,7 +10,7 @@ pageClass: code-page
**功能描述**
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 `XposedBridge.log` 打印日志的功能。
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 (Xposed) 宿主环境打印日志的功能。
## LoggerType <span class="symbol">- class</span>
@@ -42,19 +42,29 @@ LOGD
> 仅使用 `android.util.Log`。
### XPOSEDBRIDGE <span class="symbol">- enum</span>
```kotlin:no-line-numbers
XPOSEDBRIDGE
```
<h3 class="deprecated">XPOSEDBRIDGE - enum</h3>
**变更记录**
`v1.1.0` `新增`
`v1.1.5` `作废`
请转移到 `XPOSED_ENVIRONMENT`
### XPOSED_ENVIRONMENT <span class="symbol">- enum</span>
```kotlin:no-line-numbers
XPOSED_ENVIRONMENT
```
**变更记录**
`v1.1.5` `新增`
**功能描述**
> 仅使用 `XposedBridge.log`
> 仅在 (Xposed) 宿主环境使用
::: danger
@@ -76,7 +86,7 @@ SCOPE
> 分区使用。
(Xposed) 宿主环境仅使用 `XPOSEDBRIDGE`。
(Xposed) 宿主环境仅使用 `XPOSED_ENVIRONMENT`。
模块环境仅使用 `LOGD`。
@@ -94,7 +104,7 @@ BOTH
> 同时使用。
(Xposed) 宿主环境使用 `LOGD` 与 `XPOSEDBRIDGE`。
(Xposed) 宿主环境使用 `LOGD` 与 `XPOSED_ENVIRONMENT`。
模块环境仅使用 `LOGD`。
@@ -407,7 +417,7 @@ fun elements(vararg item: Int)
> 自定义调试日志对外显示的元素。
只对日志记录和 `XposedBridge.log` 生效。
只对日志记录和 (Xposed) 宿主环境的日志生效。
日志元素的排列将按照你在 `item` 中设置的顺序进行显示。
@@ -465,7 +475,7 @@ fun loggerD(tag: String, msg: String, type: LoggerType)
**功能描述**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `D`。
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `D`。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
@@ -485,7 +495,7 @@ fun loggerI(tag: String, msg: String, type: LoggerType)
**功能描述**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `I`。
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `I`。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
@@ -505,7 +515,7 @@ fun loggerW(tag: String, msg: String, type: LoggerType)
**功能描述**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `W`。
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `W`。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
@@ -525,6 +535,6 @@ fun loggerE(tag: String, msg: String, e: Throwable?, type: LoggerType)
**功能描述**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。
> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。