diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md index 96cabbdf..68c8336f 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md @@ -38,7 +38,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa

PRIORITY_DEFAULT - field

-**变更记录** +**Change Records** `v1.0.80` `added` @@ -48,7 +48,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa

PRIORITY_LOWEST - field

-**变更记录** +**Change Records** `v1.0.80` `added` @@ -58,7 +58,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa

PRIORITY_HIGHEST - field

-**变更记录** +**Change Records** `v1.0.80` `added` @@ -66,11 +66,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa 请迁移到 `YukiHookPriority` -## instanceClass - field - -```kotlin:no-line-numbers -val instanceClass: Class<*> -``` +

instanceClass - field

**Change Records** @@ -80,15 +76,9 @@ val instanceClass: Class<*> ~~`thisClass`~~ 更名为 `instanceClass` -**Function Illustrate** +`v1.2.0` `deprecated` -> 得到当前被 Hook 的 `Class`。 - -::: danger - -不推荐直接使用,万一得不到 **Class** 对象则会无法处理异常导致崩溃。 - -::: +不再推荐使用

injectMember - method

@@ -109,7 +99,7 @@ val instanceClass: Class<*> ## injectMember - method ```kotlin:no-line-numbers -inline fun injectMember(priority: YukiHookPriority, initiate: MemberHookCreator.() -> Unit): MemberHookCreator.Result +inline fun injectMember(priority: YukiHookPriority, initiate: MemberHookCreator.LegacyCreator.() -> Unit): MemberHookCreator.Result ``` **Change Records** @@ -120,31 +110,15 @@ inline fun injectMember(priority: YukiHookPriority, initiate: MemberHookCreator. > 注入要 Hook 的 `Method`、`Constructor`。 -## useDangerousOperation - method - -```kotlin:no-line-numbers -fun useDangerousOperation(option: String) -``` +

useDangerousOperation - method

**Change Records** `v1.1.0` `added` -**Function Illustrate** +`v1.2.0` `deprecated` -> 允许 Hook 过程中的所有危险行为。 - -请在 `option` 中键入 `Yes do as I say!` 代表你同意允许所有危险行为。 - -你还需要在整个调用域中声明注解 `DangerousHookOperation` 以消除警告。 - -若你只需要 Hook `ClassLoader` 的 `loadClass` 方法,请参考 [ClassLoader.onLoadClass](../factory/ReflectionFactory#classloader-onloadclass-ext-method)。 - -::: danger - -若你不知道允许此功能会带来何种后果,请勿使用。 - -::: +此功能已被弃用 ## MemberHookCreator - class @@ -182,158 +156,6 @@ inner class MemberHookCreator internal constructor(private val priority: YukiHoo > Hook 核心功能实现类,查找和处理需要 Hook 的 `Method`、`Constructor`。 -

member - field

- -**Change Records** - -`v1.0` `first` - -`v1.1.0` `removed` - -请迁移到 `members` - -### members - method - -```kotlin:no-line-numbers -fun members(vararg member: Member?) -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 手动指定要 Hook 的 `Method`、`Constructor`。 - -::: warning - -不建议使用此方法设置目标需要 Hook 的 **Member** 对象,你可以使用 **method** 或 **constructor** 方法。 - -::: - -

allMethods - method

- -**Change Records** - -`v1.0` `first` - -`v1.1.0` `deprecated` - -请使用 `method { name = /** name */ }.all()` 来取代它 - -

allConstructors - method

- -**Change Records** - -`v1.0` `first` - -`v1.1.0` `deprecated` - -请使用 `allMembers(MembersType.CONSTRUCTOR)` 来取代它 - -### allMembers - method - -```kotlin:no-line-numbers -fun allMembers(type: MembersType) -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 查找并 Hook `hookClass` 中的全部 `Method`、`Constructor`。 - -::: warning - -无法准确处理每个 **Member** 的返回值和 **param**,建议使用 **method** or **constructor** 对每个 **Member** 单独 Hook。 - -::: - -### method - method - -```kotlin:no-line-numbers -inline fun method(initiate: MethodConditions): MethodFinder.Result -``` - -**Change Records** - -`v1.0` `first` - -`v1.0.80` `modified` - -将方法体进行 inline - -**Function Illustrate** - -> 查找当前 `Class` 需要 Hook 的 `Method`。 - -### constructor - method - -```kotlin:no-line-numbers -inline fun constructor(initiate: ConstructorConditions): ConstructorFinder.Result -``` - -**Change Records** - -`v1.0` `first` - -`v1.0.80` `modified` - -将方法体进行 inline - -**Function Illustrate** - -> 查找当前 `Class` 需要 Hook 的 `Constructor`。 - -

HookParam.field - i-ext-method

- -**Change Records** - -`v1.0` `first` - -`v1.0.80` `modified` - -将方法体进行 inline - -`v1.2.0` `removed` - -

HookParam.method - i-ext-method

- -**Change Records** - -`v1.0.2` `added` - -`v1.0.80` `modified` - -将方法体进行 inline - -`v1.2.0` `removed` - -

HookParam.constructor - i-ext-method

- -**Change Records** - -`v1.0.2` `added` - -`v1.0.80` `modified` - -将方法体进行 inline - -`v1.2.0` `removed` - -

HookParam.injectMember - i-ext-method

- -**Change Records** - -`v1.0.88` `added` - -`v1.2.0` `deprecated` - -嵌套 Hook 功能已弃用 - ### before - method ```kotlin:no-line-numbers @@ -362,34 +184,6 @@ fun after(initiate: HookParam.() -> Unit): HookCallback > 在 `Member` 执行完成后 Hook。 -

beforeHook - method

- -**Change Records** - -`v1.0` `first` - -`v1.1.0` `modified` - -新增 `HookCallback` 返回类型 - -`v1.2.0` `deprecated` - -请迁移到 `before` - -

afterHook - method

- -**Change Records** - -`v1.0` `first` - -`v1.1.0` `modified` - -新增 `HookCallback` 返回类型 - -`v1.2.0` `deprecated` - -请迁移到 `after` - ### replaceAny - method ```kotlin:no-line-numbers @@ -514,6 +308,26 @@ fun removeSelf(result: (Boolean) -> Unit) ::: +### LegacyCreator - class + +```kotlin:no-line-numbers +inner class LegacyCreator internal constructor() +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 使用 `injectMember` 创建的 Hook 核心功能实现类 (旧版本)。 + +::: warning + +大部分旧版 API 已被迁移至此处,将不再特殊说明其中包含的旧版 API。 + +::: + ### HookCallback - class ```kotlin:no-line-numbers diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md index a5c7ec20..690db20c 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md @@ -123,17 +123,27 @@ val instanceOrNull: Any? ## instanceClass - field ```kotlin:no-line-numbers -val instanceClass: Class<*> +val instanceClass: Class<*>? ``` **Change Records** `v1.0` `first` +`v1.2.0` `modified` + +加入可空类型 (空安全) + **Function Illustrate** > 获取当前 Hook 实例的类对象。 +::: danger + +如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。 + +::: + ## member - field ```kotlin:no-line-numbers diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md index 255982f0..58d7d52e 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md @@ -613,7 +613,7 @@ inline fun searchClass(name: String, async: Boolean, initiate: ClassConditions): 建议启用 **async** 或设置 **name** 参数,**name** 参数将在 Hook APP (宿主) 不同版本中自动进行本地缓存以提升效率。 -此功能尚在试验阶段,性能与稳定性可能仍然存在问题,使用过程遇到问题请向我们报告并帮助我们改进。 +此功能尚在实验阶段,性能与稳定性可能仍然存在问题,使用过程遇到问题请向我们报告并帮助我们改进。 ::: @@ -957,7 +957,7 @@ inline fun BaseFinder.BaseResult.hook(priority: YukiHookPriority, initiate: Yuki ::: warning -此功能尚在试验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。 +此功能尚在实验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。 ::: @@ -997,7 +997,7 @@ inline fun BaseFinder.BaseResult.hookAll(priority: YukiHookPriority, initiate: Y ::: warning -此功能尚在试验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。 +此功能尚在实验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。 ::: diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md index a7e50ada..0d203b72 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md @@ -58,11 +58,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa 请迁移到 `YukiHookPriority` -## instanceClass - field - -```kotlin:no-line-numbers -val instanceClass: Class<*> -``` +

instanceClass - field

**变更记录** @@ -72,15 +68,9 @@ val instanceClass: Class<*> ~~`thisClass`~~ 更名为 `instanceClass` -**功能描述** +`v1.2.0` `作废` -> 得到当前被 Hook 的 `Class`。 - -::: danger - -不推荐直接使用,万一得不到 **Class** 对象则会无法处理异常导致崩溃。 - -::: +不再推荐使用

injectMember - method

@@ -101,7 +91,7 @@ val instanceClass: Class<*> ## injectMember - method ```kotlin:no-line-numbers -inline fun injectMember(priority: YukiHookPriority, initiate: MemberHookCreator.() -> Unit): MemberHookCreator.Result +inline fun injectMember(priority: YukiHookPriority, initiate: MemberHookCreator.LegacyCreator.() -> Unit): MemberHookCreator.Result ``` **变更记录** @@ -112,31 +102,15 @@ inline fun injectMember(priority: YukiHookPriority, initiate: MemberHookCreator. > 注入要 Hook 的 `Method`、`Constructor`。 -## useDangerousOperation - method - -```kotlin:no-line-numbers -fun useDangerousOperation(option: String) -``` +

useDangerousOperation - method

**变更记录** `v1.1.0` `新增` -**功能描述** +`v1.2.0` `作废` -> 允许 Hook 过程中的所有危险行为。 - -请在 `option` 中键入 `Yes do as I say!` 代表你同意允许所有危险行为。 - -你还需要在整个调用域中声明注解 `DangerousHookOperation` 以消除警告。 - -若你只需要 Hook `ClassLoader` 的 `loadClass` 方法,请参考 [ClassLoader.onLoadClass](../factory/ReflectionFactory#classloader-onloadclass-ext-method)。 - -::: danger - -若你不知道允许此功能会带来何种后果,请勿使用。 - -::: +此功能已被弃用 ## MemberHookCreator - class @@ -174,158 +148,6 @@ inner class MemberHookCreator internal constructor(private val priority: YukiHoo > Hook 核心功能实现类,查找和处理需要 Hook 的 `Method`、`Constructor`。 -

member - field

- -**变更记录** - -`v1.0` `添加` - -`v1.1.0` `移除` - -请迁移到 `members` - -### members - method - -```kotlin:no-line-numbers -fun members(vararg member: Member?) -``` - -**变更记录** - -`v1.1.0` `新增` - -**功能描述** - -> 手动指定要 Hook 的 `Method`、`Constructor`。 - -::: warning - -不建议使用此方法设置目标需要 Hook 的 **Member** 对象,你可以使用 **method** 或 **constructor** 方法。 - -::: - -

allMethods - method

- -**变更记录** - -`v1.0` `添加` - -`v1.1.0` `作废` - -请使用 `method { name = /** name */ }.all()` 来取代它 - -

allConstructors - method

- -**变更记录** - -`v1.0` `添加` - -`v1.1.0` `作废` - -请使用 `allMembers(MembersType.CONSTRUCTOR)` 来取代它 - -### allMembers - method - -```kotlin:no-line-numbers -fun allMembers(type: MembersType) -``` - -**变更记录** - -`v1.1.0` `新增` - -**功能描述** - -> 查找并 Hook `hookClass` 中的全部 `Method`、`Constructor`。 - -::: warning - -无法准确处理每个 **Member** 的返回值和 **param**,建议使用 **method** or **constructor** 对每个 **Member** 单独 Hook。 - -::: - -### method - method - -```kotlin:no-line-numbers -inline fun method(initiate: MethodConditions): MethodFinder.Result -``` - -**变更记录** - -`v1.0` `添加` - -`v1.0.80` `修改` - -将方法体进行 inline - -**功能描述** - -> 查找当前 `Class` 需要 Hook 的 `Method`。 - -### constructor - method - -```kotlin:no-line-numbers -inline fun constructor(initiate: ConstructorConditions): ConstructorFinder.Result -``` - -**变更记录** - -`v1.0` `添加` - -`v1.0.80` `修改` - -将方法体进行 inline - -**功能描述** - -> 查找当前 `Class` 需要 Hook 的 `Constructor`。 - -

HookParam.field - i-ext-method

- -**变更记录** - -`v1.0` `添加` - -`v1.0.80` `修改` - -将方法体进行 inline - -`v1.2.0` `移除` - -

HookParam.method - i-ext-method

- -**变更记录** - -`v1.0.2` `新增` - -`v1.0.80` `修改` - -将方法体进行 inline - -`v1.2.0` `移除` - -

HookParam.constructor - i-ext-method

- -**变更记录** - -`v1.0.2` `新增` - -`v1.0.80` `修改` - -将方法体进行 inline - -`v1.2.0` `移除` - -

HookParam.injectMember - i-ext-method

- -**变更记录** - -`v1.0.88` `新增` - -`v1.2.0` `作废` - -嵌套 Hook 功能已弃用 - ### before - method ```kotlin:no-line-numbers @@ -354,34 +176,6 @@ fun after(initiate: HookParam.() -> Unit): HookCallback > 在 `Member` 执行完成后 Hook。 -

beforeHook - method

- -**变更记录** - -`v1.0` `添加` - -`v1.1.0` `修改` - -新增 `HookCallback` 返回类型 - -`v1.2.0` `作废` - -请迁移到 `before` - -

afterHook - method

- -**变更记录** - -`v1.0` `添加` - -`v1.1.0` `修改` - -新增 `HookCallback` 返回类型 - -`v1.2.0` `作废` - -请迁移到 `after` - ### replaceAny - method ```kotlin:no-line-numbers @@ -506,6 +300,26 @@ fun removeSelf(result: (Boolean) -> Unit) ::: +### LegacyCreator - class + +```kotlin:no-line-numbers +inner class LegacyCreator internal constructor() +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 使用 `injectMember` 创建的 Hook 核心功能实现类 (旧版本)。 + +::: warning + +大部分旧版 API 已被迁移至此处,将不再特殊说明其中包含的旧版 API。 + +::: + ### HookCallback - class ```kotlin:no-line-numbers diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md index 15c56e7c..4f2de3e1 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md @@ -115,17 +115,27 @@ val instanceOrNull: Any? ## instanceClass - field ```kotlin:no-line-numbers -val instanceClass: Class<*> +val instanceClass: Class<*>? ``` **变更记录** `v1.0` `添加` +`v1.2.0` `修改` + +加入可空类型 (空安全) + **功能描述** > 获取当前 Hook 实例的类对象。 +::: danger + +如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。 + +::: + ## member - field ```kotlin:no-line-numbers diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md index 58d0f4af..58ac7b77 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md @@ -601,7 +601,7 @@ inline fun searchClass(name: String, async: Boolean, initiate: ClassConditions): 建议启用 **async** 或设置 **name** 参数,**name** 参数将在 Hook APP (宿主) 不同版本中自动进行本地缓存以提升效率。 -此功能尚在试验阶段,性能与稳定性可能仍然存在问题,使用过程遇到问题请向我们报告并帮助我们改进。 +此功能尚在实验阶段,性能与稳定性可能仍然存在问题,使用过程遇到问题请向我们报告并帮助我们改进。 ::: @@ -945,7 +945,7 @@ inline fun BaseFinder.BaseResult.hook(priority: YukiHookPriority, initiate: Yuki ::: warning -此功能尚在试验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。 +此功能尚在实验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。 ::: @@ -985,7 +985,7 @@ inline fun BaseFinder.BaseResult.hookAll(priority: YukiHookPriority, initiate: Y ::: warning -此功能尚在试验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。 +此功能尚在实验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。 :::