Merge document file

This commit is contained in:
2022-04-17 23:23:42 +08:00
parent fa120f4bee
commit 9fc69a751b
34 changed files with 744 additions and 744 deletions

View File

@@ -4,7 +4,7 @@
加入我们 [点击加入 Telegram 群组](https://t.me/YukiHookAPI) 加入我们 [点击加入 Telegram 群组](https://t.me/YukiHookAPI)
<b>酷安</b>找到我 [@星夜不荟](http://www.coolapk.com/u/876977) **酷安**找到我 [@星夜不荟](http://www.coolapk.com/u/876977)
## 助力维护 ## 助力维护

View File

@@ -4,11 +4,11 @@
inner class IndexTypeCondition(private val type: IndexConfigType) inner class IndexTypeCondition(private val type: IndexConfigType)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 字节码下标筛选实现类。 > 字节码下标筛选实现类。
@@ -18,11 +18,11 @@ inner class IndexTypeCondition(private val type: IndexConfigType)
fun index(num: Int) fun index(num: Int)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置下标。 > 设置下标。
@@ -36,11 +36,11 @@ fun index(num: Int)
fun index(): IndexTypeConditionSort fun index(): IndexTypeConditionSort
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 得到下标。 > 得到下标。
@@ -50,11 +50,11 @@ fun index(): IndexTypeConditionSort
inner class IndexTypeConditionSort inner class IndexTypeConditionSort
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 字节码下标排序实现类。 > 字节码下标排序实现类。
@@ -64,11 +64,11 @@ inner class IndexTypeConditionSort
fun first() fun first()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置满足条件的第一个。 > 设置满足条件的第一个。
@@ -78,11 +78,11 @@ fun first()
fun last() fun last()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置满足条件的最后一个。 > 设置满足条件的最后一个。
@@ -92,10 +92,10 @@ fun last()
fun reverse(num: Int) fun reverse(num: Int)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置倒序下标。 > 设置倒序下标。

View File

@@ -1,10 +1,10 @@
## ComponentTypeFactory [kt] ## ComponentTypeFactory [kt]
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关组件的 `Class` 内容,跟随版本更新会逐一进行增加。 > 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关组件的 `Class` 内容,跟随版本更新会逐一进行增加。

View File

@@ -4,7 +4,7 @@
class ConstructorFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder() class ConstructorFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -12,7 +12,7 @@ class ConstructorFinder(override val hookInstance: YukiHookCreater.MemberHookCre
合并到 `BaseFinder` 合并到 `BaseFinder`
<b>功能描述</b> **功能描述**
> `Constructor` 查找类。 > `Constructor` 查找类。
@@ -22,11 +22,11 @@ class ConstructorFinder(override val hookInstance: YukiHookCreater.MemberHookCre
var paramCount: Int var paramCount: Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Constructor` 参数个数。 > 设置 `Constructor` 参数个数。
@@ -40,11 +40,11 @@ var paramCount: Int
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Constructor` 标识符筛选条件。 > 设置 `Constructor` 标识符筛选条件。
@@ -58,11 +58,11 @@ fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
fun emptyParam(): IndexTypeCondition fun emptyParam(): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.75` `新增` `v1.0.75` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Constructor` 空参数、无参数。 > 设置 `Constructor` 空参数、无参数。
@@ -72,11 +72,11 @@ fun emptyParam(): IndexTypeCondition
fun param(vararg paramType: Any): IndexTypeCondition fun param(vararg paramType: Any): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置 `Constructor` 参数。 > 设置 `Constructor` 参数。
@@ -94,11 +94,11 @@ fun param(vararg paramType: Any): IndexTypeCondition
fun paramCount(num: Int): IndexTypeCondition fun paramCount(num: Int): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Constructor` 参数个数。 > 设置 `Constructor` 参数个数。
@@ -114,11 +114,11 @@ fun paramCount(num: Int): IndexTypeCondition
inner class RemedyPlan inner class RemedyPlan
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> `Constructor` 重查找实现类,可累计失败次数直到查找成功。 > `Constructor` 重查找实现类,可累计失败次数直到查找成功。
@@ -128,11 +128,11 @@ inner class RemedyPlan
fun constructor(initiate: ConstructorFinder.() -> Unit) fun constructor(initiate: ConstructorFinder.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 创建需要重新查找的 `Constructor`。 > 创建需要重新查找的 `Constructor`。
@@ -144,11 +144,11 @@ fun constructor(initiate: ConstructorFinder.() -> Unit)
inner class Result inner class Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.1` `新增` `v1.0.1` `新增`
<b>功能描述</b> **功能描述**
> `RemedyPlan` 结果实现类。 > `RemedyPlan` 结果实现类。
@@ -158,15 +158,15 @@ inner class Result
fun onFind(initiate: Constructor<*>.() -> Unit) fun onFind(initiate: Constructor<*>.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.1` `新增` `v1.0.1` `新增`
<b>功能描述</b> **功能描述**
> 当在 `RemedyPlan` 中找到结果时。 > 当在 `RemedyPlan` 中找到结果时。
<b>功能示例</b> **功能示例**
你可以方便地对重查找的 `Constructor` 实现 `onFind` 方法。 你可以方便地对重查找的 `Constructor` 实现 `onFind` 方法。
@@ -186,11 +186,11 @@ constructor {
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?) inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> `Constructor` 查找结果实现类。 > `Constructor` 查找结果实现类。
@@ -200,15 +200,15 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
fun result(initiate: Result.() -> Unit): Result fun result(initiate: Result.() -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 创建监听结果事件方法体。 > 创建监听结果事件方法体。
<b>功能示例</b> **功能示例**
你可以使用 `lambda` 形式创建 `Result` 类。 你可以使用 `lambda` 形式创建 `Result` 类。
@@ -230,17 +230,17 @@ constructor {
fun get(): Instance fun get(): Instance
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 获得 `Constructor` 实例处理类。 > 获得 `Constructor` 实例处理类。
!> 若你设置了 `remedys` 请使用 `wait` 回调结果方法。 !> 若你设置了 `remedys` 请使用 `wait` 回调结果方法。
<b>功能示例</b> **功能示例**
你可以通过获得方法所在实例来执行构造方法创建新的实例对象。 你可以通过获得方法所在实例来执行构造方法创建新的实例对象。
@@ -278,11 +278,11 @@ constructor {
fun give(): Constructor<*>? fun give(): Constructor<*>?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 得到构造方法本身。 > 得到构造方法本身。
@@ -292,11 +292,11 @@ fun give(): Constructor<*>?
fun wait(initiate: Instance.() -> Unit) fun wait(initiate: Instance.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 获得 `Constructor` 实例处理类,配合 `RemedyPlan` 使用。 > 获得 `Constructor` 实例处理类,配合 `RemedyPlan` 使用。
@@ -310,15 +310,15 @@ fun wait(initiate: Instance.() -> Unit)
fun remedys(initiate: RemedyPlan.() -> Unit): Result fun remedys(initiate: RemedyPlan.() -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 创建构造方法重查找功能。 > 创建构造方法重查找功能。
<b>功能示例</b> **功能示例**
当你遇到一种构造方法可能存在不同形式的存在时,可以使用 `RemedyPlan` 重新查找它,而没有必要使用 `onNoSuchConstructor` 捕获异常二次查找构造方法。 当你遇到一种构造方法可能存在不同形式的存在时,可以使用 `RemedyPlan` 重新查找它,而没有必要使用 `onNoSuchConstructor` 捕获异常二次查找构造方法。
@@ -345,11 +345,11 @@ constructor {
fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 监听找不到构造方法时。 > 监听找不到构造方法时。
@@ -361,11 +361,11 @@ fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result
fun ignoredError(): Result fun ignoredError(): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.3` `新增` `v1.0.3` `新增`
<b>功能描述</b> **功能描述**
> 忽略任何错误发出的警告。 > 忽略任何错误发出的警告。
@@ -377,11 +377,11 @@ fun ignoredError(): Result
inner class Instance inner class Instance
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> `Constructor` 实例处理类。 > `Constructor` 实例处理类。
@@ -391,11 +391,11 @@ inner class Instance
fun call(vararg param: Any?): Any? fun call(vararg param: Any?): Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 执行构造方法创建目标实例,不指定目标实例类型。 > 执行构造方法创建目标实例,不指定目标实例类型。
@@ -405,10 +405,10 @@ fun call(vararg param: Any?): Any?
fun <T> newInstance(vararg param: Any?): T? fun <T> newInstance(vararg param: Any?): T?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 执行构造方法创建目标实例 ,指定 `T` 目标实例类型。 > 执行构造方法创建目标实例 ,指定 `T` 目标实例类型。

View File

@@ -4,11 +4,11 @@
class CurrentClass(private val instance: Class<*>, private val self: Any) class CurrentClass(private val instance: Class<*>, private val self: Any)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 当前实例的类操作对象。 > 当前实例的类操作对象。
@@ -18,11 +18,11 @@ class CurrentClass(private val instance: Class<*>, private val self: Any)
fun field(initiate: FieldFinder.() -> Unit): FieldFinder.Result.Instance fun field(initiate: FieldFinder.() -> Unit): FieldFinder.Result.Instance
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 调用当前实例中的变量。 > 调用当前实例中的变量。
@@ -32,10 +32,10 @@ fun field(initiate: FieldFinder.() -> Unit): FieldFinder.Result.Instance
fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result.Instance fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result.Instance
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 调用当前实例中的方法。 > 调用当前实例中的方法。

View File

@@ -4,7 +4,7 @@
class FieldFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>?) : BaseFinder() class FieldFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>?) : BaseFinder()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -12,13 +12,13 @@ class FieldFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?,
合并到 `BaseFinder` 合并到 `BaseFinder`
<b>功能描述</b> **功能描述**
> `Field` 查找类。 > `Field` 查找类。
### ~~classSet [field]~~ <!-- {docsify-ignore} --> ### ~~classSet [field]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -30,7 +30,7 @@ class FieldFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?,
var name: String var name: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -38,7 +38,7 @@ var name: String
允许不填写名称 允许不填写名称
<b>功能描述</b> **功能描述**
> 设置 `Field` 名称。 > 设置 `Field` 名称。
@@ -50,11 +50,11 @@ var name: String
var type: Any? var type: Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置 `Field` 类型。 > 设置 `Field` 类型。
@@ -66,11 +66,11 @@ var type: Any?
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Field` 标识符筛选条件。 > 设置 `Field` 标识符筛选条件。
@@ -84,11 +84,11 @@ fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
fun order(): IndexTypeCondition fun order(): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 顺序筛选字节码的下标。 > 顺序筛选字节码的下标。
@@ -98,11 +98,11 @@ fun order(): IndexTypeCondition
fun name(value: String): IndexTypeCondition fun name(value: String): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Field` 名称。 > 设置 `Field` 名称。
@@ -116,11 +116,11 @@ fun name(value: String): IndexTypeCondition
fun type(value: Any): IndexTypeCondition fun type(value: Any): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Field` 类型。 > 设置 `Field` 类型。
@@ -134,11 +134,11 @@ fun type(value: Any): IndexTypeCondition
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?) inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> `Field` 查找结果实现类。 > `Field` 查找结果实现类。
@@ -148,15 +148,15 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
fun result(initiate: Result.() -> Unit): Result fun result(initiate: Result.() -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 创建监听结果事件方法体。 > 创建监听结果事件方法体。
<b>功能示例</b> **功能示例**
你可以使用 `lambda` 形式创建 `Result` 类。 你可以使用 `lambda` 形式创建 `Result` 类。
@@ -179,15 +179,15 @@ field {
```kotlin ```kotlin
fun get(instance: Any?): Instance fun get(instance: Any?): Instance
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 得到变量实例处理类。 > 得到变量实例处理类。
<b>功能示例</b> **功能示例**
你可以轻松地得到 `Field` 的实例以及使用它进行设置实例。 你可以轻松地得到 `Field` 的实例以及使用它进行设置实例。
@@ -215,11 +215,11 @@ field {
fun give(): Field? fun give(): Field?
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 得到变量本身。 > 得到变量本身。
@@ -229,11 +229,11 @@ fun give(): Field?
fun onNoSuchField(initiate: (Throwable) -> Unit): Result fun onNoSuchField(initiate: (Throwable) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 监听找不到变量时。 > 监听找不到变量时。
@@ -243,11 +243,11 @@ fun onNoSuchField(initiate: (Throwable) -> Unit): Result
fun ignoredError(): Result fun ignoredError(): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.3` `新增` `v1.0.3` `新增`
<b>功能描述</b> **功能描述**
> 忽略任何错误发出的警告。 > 忽略任何错误发出的警告。
@@ -259,11 +259,11 @@ fun ignoredError(): Result
inner class Instance(private val instance: Any?, val self: Any?) inner class Instance(private val instance: Any?, val self: Any?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> `Field` 实例变量处理类。 > `Field` 实例变量处理类。
@@ -273,7 +273,7 @@ inner class Instance(private val instance: Any?, val self: Any?)
fun <T> cast(): T? fun <T> cast(): T?
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -283,7 +283,7 @@ fun <T> cast(): T?
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量实例。 > 得到变量实例。
@@ -293,11 +293,11 @@ fun <T> cast(): T?
fun byte(): Byte? fun byte(): Byte?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 得到变量 Byte 实例。 > 得到变量 Byte 实例。
@@ -307,7 +307,7 @@ fun byte(): Byte?
fun int(): Int fun int(): Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -317,7 +317,7 @@ fun int(): Int
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量 Int 实例。 > 得到变量 Int 实例。
@@ -327,7 +327,7 @@ fun int(): Int
fun long(): Long fun long(): Long
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -337,7 +337,7 @@ fun long(): Long
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量 Long 实例。 > 得到变量 Long 实例。
@@ -346,7 +346,7 @@ fun long(): Long
```kotlin ```kotlin
fun short(): Short fun short(): Short
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -356,7 +356,7 @@ fun short(): Short
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量 Short 实例。 > 得到变量 Short 实例。
@@ -366,7 +366,7 @@ fun short(): Short
fun double(): Double fun double(): Double
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -376,7 +376,7 @@ fun double(): Double
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量 Double 实例。 > 得到变量 Double 实例。
@@ -385,7 +385,7 @@ fun double(): Double
```kotlin ```kotlin
fun float(): Float fun float(): Float
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -395,7 +395,7 @@ fun float(): Float
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量 Float 实例。 > 得到变量 Float 实例。
@@ -405,7 +405,7 @@ fun float(): Float
fun string(): String fun string(): String
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -415,7 +415,7 @@ fun string(): String
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量 String 实例。 > 得到变量 String 实例。
@@ -425,11 +425,11 @@ fun string(): String
fun char(): Char fun char(): Char
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 得到变量 Char 实例。 > 得到变量 Char 实例。
@@ -439,7 +439,7 @@ fun char(): Char
fun boolean(): Boolean fun boolean(): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -449,7 +449,7 @@ fun boolean(): Boolean
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量 Boolean 实例。 > 得到变量 Boolean 实例。
@@ -458,7 +458,7 @@ fun boolean(): Boolean
```kotlin ```kotlin
fun any(): Any? fun any(): Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -468,7 +468,7 @@ fun any(): Any?
移动方法到 `Instance` 移动方法到 `Instance`
<b>功能描述</b> **功能描述**
> 得到变量 Any 实例。 > 得到变量 Any 实例。
@@ -478,11 +478,11 @@ fun any(): Any?
inline fun <reified T> array(): Array<T> inline fun <reified T> array(): Array<T>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 得到变量 Array 实例。 > 得到变量 Array 实例。
@@ -492,11 +492,11 @@ inline fun <reified T> array(): Array<T>
inline fun <reified T> list(): List<T> inline fun <reified T> list(): List<T>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 得到变量 List 实例。 > 得到变量 List 实例。
@@ -506,11 +506,11 @@ inline fun <reified T> list(): List<T>
fun set(any: Any?) fun set(any: Any?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置变量实例。 > 设置变量实例。
@@ -519,11 +519,11 @@ fun set(any: Any?)
```kotlin ```kotlin
fun setTrue() fun setTrue()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置变量实例为 `true`。 > 设置变量实例为 `true`。
@@ -535,11 +535,11 @@ fun setTrue()
fun setFalse() fun setFalse()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置变量实例为 `false`。 > 设置变量实例为 `false`。
@@ -551,10 +551,10 @@ fun setFalse()
fun setNull() fun setNull()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置变量实例为 `null` > 设置变量实例为 `null`

View File

@@ -1,10 +1,10 @@
## GraphicsTypeFactory [kt] ## GraphicsTypeFactory [kt]
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关 `Graphics` 的 `Class` 内容,跟随版本更新会逐一进行增加。 > 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关 `Graphics` 的 `Class` 内容,跟随版本更新会逐一进行增加。

View File

@@ -4,11 +4,11 @@
class HookClass(var instance: Class<*>?, var name: String, var throwable: Throwable?) class HookClass(var instance: Class<*>?, var name: String, var throwable: Throwable?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 创建一个当前 Hook 的 `Class` 接管类。 > 创建一个当前 Hook 的 `Class` 接管类。

View File

@@ -4,11 +4,11 @@
class HookParam(private val createrInstance: YukiHookCreater, private val wrapper: HookParamWrapper) class HookParam(private val createrInstance: YukiHookCreater, private val wrapper: HookParamWrapper)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> Hook 方法、构造类的目标对象实现类。 > Hook 方法、构造类的目标对象实现类。
@@ -18,17 +18,17 @@ class HookParam(private val createrInstance: YukiHookCre
val args: Array<Any?> val args: Array<Any?>
``` ```
<b>变更记录</b> **变更记录**
`v1.0` 添加 `v1.0` 添加
<b>功能描述</b> **功能描述**
> 获取当前 Hook 对象 `member` 或 `constructor` 的参数对象数组。 > 获取当前 Hook 对象 `member` 或 `constructor` 的参数对象数组。
### ~~firstArgs [field]~~ <!-- {docsify-ignore} --> ### ~~firstArgs [field]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -38,7 +38,7 @@ val args: Array<Any?>
### ~~lastArgs [field]~~ <!-- {docsify-ignore} --> ### ~~lastArgs [field]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -52,11 +52,11 @@ val args: Array<Any?>
val instance: Any val instance: Any
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 实例的对象。 > 获取当前 Hook 实例的对象。
@@ -68,11 +68,11 @@ val instance: Any
val instanceClass: Class<*> val instanceClass: Class<*>
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 实例的类对象。 > 获取当前 Hook 实例的类对象。
@@ -82,11 +82,11 @@ val instanceClass: Class<*>
val method: Method val method: Method
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 对象的方法。 > 获取当前 Hook 对象的方法。
@@ -96,11 +96,11 @@ val method: Method
val constructor: Constructor val constructor: Constructor
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 对象的构造方法。 > 获取当前 Hook 对象的构造方法。
@@ -110,11 +110,11 @@ val constructor: Constructor
var result: Any? var result: Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取、设置当前 Hook 对象的 `method` 或 `constructor` 的返回值。 > 获取、设置当前 Hook 对象的 `method` 或 `constructor` 的返回值。
@@ -124,17 +124,17 @@ var result: Any?
inline fun <reified T> result(): T? inline fun <reified T> result(): T?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.75` `新增` `v1.0.75` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 对象的 `method` 或 `constructor` 的返回值 `T`。 > 获取当前 Hook 对象的 `method` 或 `constructor` 的返回值 `T`。
### ~~firstArgs [method]~~ <!-- {docsify-ignore} --> ### ~~firstArgs [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -142,7 +142,7 @@ inline fun <reified T> result(): T?
### ~~lastArgs [method]~~ <!-- {docsify-ignore} --> ### ~~lastArgs [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -154,15 +154,15 @@ inline fun <reified T> result(): T?
inline fun <reified T> instance(): T inline fun <reified T> instance(): T
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 实例的对象 `T`。 > 获取当前 Hook 实例的对象 `T`。
<b>功能示例</b> **功能示例**
你可以通过 `instance` 方法轻松使用泛型 `cast` 为目标对象的类型。 你可以通过 `instance` 方法轻松使用泛型 `cast` 为目标对象的类型。
@@ -178,11 +178,11 @@ instance<Activity>().finish()
fun args(): ArgsIndexCondition fun args(): ArgsIndexCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.75` `新增` `v1.0.75` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 对象的 `method` or `constructor` 的参数数组下标实例化类。 > 获取当前 Hook 对象的 `method` or `constructor` 的参数数组下标实例化类。
@@ -192,7 +192,7 @@ fun args(): ArgsIndexCondition
fun args(index: Int): ArgsModifyer fun args(index: Int): ArgsModifyer
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -200,11 +200,11 @@ fun args(index: Int): ArgsModifyer
默认值 `index = 0` 移动到新的使用方法 `args().first()` 默认值 `index = 0` 移动到新的使用方法 `args().first()`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 对象的 `method` 或 `constructor` 的参数实例化对象类。 > 获取当前 Hook 对象的 `method` 或 `constructor` 的参数实例化对象类。
<b>功能示例</b> **功能示例**
你可以通过 `args` 方法修改当前 Hook 实例的方法、构造方法的参数内容。 你可以通过 `args` 方法修改当前 Hook 实例的方法、构造方法的参数内容。
@@ -268,15 +268,15 @@ args(index = 1).setFalse()
fun <T> Member.invokeOriginal(vararg args: Any?): Any? fun <T> Member.invokeOriginal(vararg args: Any?): Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 执行原始 `Member`。 > 执行原始 `Member`。
<b>功能实例</b> **功能实例**
此方法可以 `invoke` 原始未经 Hook 的 `Member` 对象,取决于原始 `Member` 的参数和类型。 此方法可以 `invoke` 原始未经 Hook 的 `Member` 对象,取决于原始 `Member` 的参数和类型。
@@ -292,11 +292,11 @@ member.invokeOriginal("test value")
fun resultTrue() fun resultTrue()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置当前 Hook 对象方法的 `result` 返回值为 `true`。 > 设置当前 Hook 对象方法的 `result` 返回值为 `true`。
@@ -308,11 +308,11 @@ fun resultTrue()
fun resultFalse() fun resultFalse()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置当前 Hook 对象方法的 `result` 返回值为 `false`。 > 设置当前 Hook 对象方法的 `result` 返回值为 `false`。
@@ -324,11 +324,11 @@ fun resultFalse()
fun resultNull() fun resultNull()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
!> 此方法将强制设置 Hook 对象方法的 `result``null` !> 此方法将强制设置 Hook 对象方法的 `result``null`
@@ -338,11 +338,11 @@ fun resultNull()
inner class ArgsIndexCondition inner class ArgsIndexCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.75` `新增` `v1.0.75` `新增`
<b>功能描述</b> **功能描述**
> 对方法参数的数组下标进行实例化类。 > 对方法参数的数组下标进行实例化类。
@@ -352,11 +352,11 @@ inner class ArgsIndexCondition
fun first(): ArgsModifyer fun first(): ArgsModifyer
``` ```
<b>变更记录</b> **变更记录**
`v1.0.75` `新增` `v1.0.75` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 对象的 `method` or `constructor` 的参数数组第一位。 > 获取当前 Hook 对象的 `method` or `constructor` 的参数数组第一位。
@@ -366,11 +366,11 @@ fun first(): ArgsModifyer
fun last(): ArgsModifyer fun last(): ArgsModifyer
``` ```
<b>变更记录</b> **变更记录**
`v1.0.75` `新增` `v1.0.75` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 对象的 `method` or `constructor` 的参数数组最后一位。 > 获取当前 Hook 对象的 `method` or `constructor` 的参数数组最后一位。
@@ -380,11 +380,11 @@ fun last(): ArgsModifyer
inner class ArgsModifyer(private val index: Int) inner class ArgsModifyer(private val index: Int)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 对方法参数的修改进行实例化类。 > 对方法参数的修改进行实例化类。
@@ -394,7 +394,7 @@ inner class ArgsModifyer(private val index: Int)
fun <T> cast(): T? fun <T> cast(): T?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -402,7 +402,7 @@ fun <T> cast(): T?
修改 ~~`of`~~`cast` 修改 ~~`of`~~`cast`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 `T`。 > 得到方法参数的实例对象 `T`。
@@ -412,11 +412,11 @@ fun <T> cast(): T?
fun byte(): Byte? fun byte(): Byte?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Byte。 > 得到方法参数的实例对象 Byte。
@@ -426,7 +426,7 @@ fun byte(): Byte?
fun int(): Int fun int(): Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -434,7 +434,7 @@ fun int(): Int
修改 ~~`ofInt`~~`int` 修改 ~~`ofInt`~~`int`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Int。 > 得到方法参数的实例对象 Int。
@@ -444,7 +444,7 @@ fun int(): Int
fun long(): Long fun long(): Long
``` ```
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -452,7 +452,7 @@ fun long(): Long
修改 ~~`ofLong`~~`long` 修改 ~~`ofLong`~~`long`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Long。 > 得到方法参数的实例对象 Long。
@@ -462,7 +462,7 @@ fun long(): Long
fun short(): Short fun short(): Short
``` ```
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -470,7 +470,7 @@ fun short(): Short
修改 ~~`ofShort`~~`short` 修改 ~~`ofShort`~~`short`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Short。 > 得到方法参数的实例对象 Short。
@@ -480,7 +480,7 @@ fun short(): Short
fun double(): Double fun double(): Double
``` ```
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -488,7 +488,7 @@ fun double(): Double
修改 ~~`ofDouble`~~`double` 修改 ~~`ofDouble`~~`double`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Double。 > 得到方法参数的实例对象 Double。
@@ -498,7 +498,7 @@ fun double(): Double
fun float(): Float fun float(): Float
``` ```
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -506,7 +506,7 @@ fun float(): Float
修改 ~~`ofFloat`~~`float` 修改 ~~`ofFloat`~~`float`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Float。 > 得到方法参数的实例对象 Float。
@@ -516,7 +516,7 @@ fun float(): Float
fun string(): String fun string(): String
``` ```
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -524,7 +524,7 @@ fun string(): String
修改 ~~`ofString`~~`string` 修改 ~~`ofString`~~`string`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 String。 > 得到方法参数的实例对象 String。
@@ -534,11 +534,11 @@ fun string(): String
fun char(): Char fun char(): Char
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Char。 > 得到方法参数的实例对象 Char。
@@ -548,7 +548,7 @@ fun char(): Char
fun boolean(): Boolean fun boolean(): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.66` `新增` `v1.0.66` `新增`
@@ -556,7 +556,7 @@ fun boolean(): Boolean
修改 ~~`ofBoolean`~~`boolean` 修改 ~~`ofBoolean`~~`boolean`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Boolean。 > 得到方法参数的实例对象 Boolean。
@@ -566,11 +566,11 @@ fun boolean(): Boolean
fun any(): Any? fun any(): Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.77` `新增` `v1.0.77` `新增`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Any。 > 得到方法参数的实例对象 Any。
@@ -580,11 +580,11 @@ fun any(): Any?
inline fun <reified T> array(): Array<T> inline fun <reified T> array(): Array<T>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 Array。 > 得到方法参数的实例对象 Array。
@@ -593,11 +593,11 @@ inline fun <reified T> array(): Array<T>
inline fun <reified T> list(): List<T> inline fun <reified T> list(): List<T>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 得到方法参数的实例对象 List。 > 得到方法参数的实例对象 List。
@@ -607,11 +607,11 @@ inline fun <reified T> list(): List<T>
fun <T> set(any: T?) fun <T> set(any: T?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置方法参数的实例对象。 > 设置方法参数的实例对象。
@@ -621,11 +621,11 @@ fun <T> set(any: T?)
fun setNull() fun setNull()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置方法参数的实例对象为 `null`。 > 设置方法参数的实例对象为 `null`。
@@ -635,11 +635,11 @@ fun setNull()
fun setTrue() fun setTrue()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置方法参数的实例对象为 `true`。 > 设置方法参数的实例对象为 `true`。
@@ -651,11 +651,11 @@ fun setTrue()
fun setFalse() fun setFalse()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置方法参数的实例对象为 `false`。 > 设置方法参数的实例对象为 `false`。

View File

@@ -4,14 +4,14 @@
annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePackageName: String) annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePackageName: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 标识 `YukiHookAPI` 注入 Xposed 入口的类注解。 > 标识 `YukiHookAPI` 注入 Xposed 入口的类注解。
<b>功能示例</b> **功能示例**
详情请参考 [InjectYukiHookWithXposed 注解](config/xposed-using?id=injectyukihookwithxposed-注解)。 详情请参考 [InjectYukiHookWithXposed 注解](config/xposed-using?id=injectyukihookwithxposed-注解)。

View File

@@ -1,10 +1,10 @@
## LoggerFactory [kt] ## LoggerFactory [kt]
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 `XposedBridge.log` 打印日志的功能。 > 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 `XposedBridge.log` 打印日志的功能。
@@ -14,11 +14,11 @@
fun loggerD(tag: String, msg: String) fun loggerD(tag: String, msg: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `D`。 > 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `D`。
@@ -30,11 +30,11 @@ fun loggerD(tag: String, msg: String)
fun loggerI(tag: String, msg: String) fun loggerI(tag: String, msg: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `I`。 > 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `I`。
@@ -46,11 +46,11 @@ fun loggerI(tag: String, msg: String)
fun loggerW(tag: String, msg: String) fun loggerW(tag: String, msg: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `W`。 > 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `W`。
@@ -62,11 +62,11 @@ fun loggerW(tag: String, msg: String)
fun loggerE(tag: String, msg: String, e: Throwable?) fun loggerE(tag: String, msg: String, e: Throwable?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。 > 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。

View File

@@ -4,7 +4,7 @@
class MethodFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder() class MethodFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -12,7 +12,7 @@ class MethodFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?
合并到 `BaseFinder` 合并到 `BaseFinder`
<b>功能描述</b> **功能描述**
> `Method` 查找类。 > `Method` 查找类。
@@ -22,7 +22,7 @@ class MethodFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?
var name: String var name: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -30,7 +30,7 @@ var name: String
允许不填写名称 允许不填写名称
<b>功能描述</b> **功能描述**
> 设置 `Method` 名称。 > 设置 `Method` 名称。
@@ -42,11 +42,11 @@ var name: String
var paramCount: Int var paramCount: Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Method` 参数个数。 > 设置 `Method` 参数个数。
@@ -60,11 +60,11 @@ var paramCount: Int
var returnType: Any? var returnType: Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置 `Method` 返回值,可不填写返回值,默认模糊查找并取第一个匹配的 `Method`。 > 设置 `Method` 返回值,可不填写返回值,默认模糊查找并取第一个匹配的 `Method`。
@@ -74,11 +74,11 @@ var returnType: Any?
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Method` 标识符筛选条件。 > 设置 `Method` 标识符筛选条件。
@@ -92,11 +92,11 @@ fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
fun emptyParam(): IndexTypeCondition fun emptyParam(): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.75` `新增` `v1.0.75` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Method` 空参数、无参数。 > 设置 `Method` 空参数、无参数。
@@ -106,11 +106,11 @@ fun emptyParam(): IndexTypeCondition
fun param(vararg paramType: Any): IndexTypeCondition fun param(vararg paramType: Any): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 设置 `Method` 参数。 > 设置 `Method` 参数。
@@ -128,11 +128,11 @@ fun param(vararg paramType: Any): IndexTypeCondition
fun order(): IndexTypeCondition fun order(): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 顺序筛选字节码的下标。 > 顺序筛选字节码的下标。
@@ -142,11 +142,11 @@ fun order(): IndexTypeCondition
fun name(value: String): IndexTypeCondition fun name(value: String): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Method` 名称。 > 设置 `Method` 名称。
@@ -160,11 +160,11 @@ fun name(value: String): IndexTypeCondition
fun paramCount(num: Int): IndexTypeCondition fun paramCount(num: Int): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Method` 参数个数。 > 设置 `Method` 参数个数。
@@ -180,11 +180,11 @@ fun paramCount(num: Int): IndexTypeCondition
fun returnType(value: Any): IndexTypeCondition fun returnType(value: Any): IndexTypeCondition
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 设置 `Method` 返回值。 > 设置 `Method` 返回值。
@@ -198,11 +198,11 @@ fun returnType(value: Any): IndexTypeCondition
inner class RemedyPlan inner class RemedyPlan
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> `Method` 重查找实现类,可累计失败次数直到查找成功。 > `Method` 重查找实现类,可累计失败次数直到查找成功。
@@ -212,11 +212,11 @@ inner class RemedyPlan
fun method(initiate: MethodFinder.() -> Unit): Result fun method(initiate: MethodFinder.() -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 创建需要重新查找的 `Method`。 > 创建需要重新查找的 `Method`。
@@ -228,11 +228,11 @@ fun method(initiate: MethodFinder.() -> Unit): Result
inner class Result inner class Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.1` `新增` `v1.0.1` `新增`
<b>功能描述</b> **功能描述**
> `RemedyPlan` 结果实现类。 > `RemedyPlan` 结果实现类。
@@ -242,15 +242,15 @@ inner class Result
fun onFind(initiate: Method.() -> Unit) fun onFind(initiate: Method.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.1` `新增` `v1.0.1` `新增`
<b>功能描述</b> **功能描述**
> 当在 `RemedyPlan` 中找到结果时。 > 当在 `RemedyPlan` 中找到结果时。
<b>功能示例</b> **功能示例**
你可以方便地对重查找的 `Method` 实现 `onFind` 方法。 你可以方便地对重查找的 `Method` 实现 `onFind` 方法。
@@ -270,11 +270,11 @@ method {
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?) inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> `Method` 查找结果实现类。 > `Method` 查找结果实现类。
@@ -284,15 +284,15 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
fun result(initiate: Result.() -> Unit): Result fun result(initiate: Result.() -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 创建监听结果事件方法体。 > 创建监听结果事件方法体。
<b>功能示例</b> **功能示例**
你可以使用 `lambda` 形式创建 `Result` 类。 你可以使用 `lambda` 形式创建 `Result` 类。
@@ -314,17 +314,17 @@ method {
fun get(instance: Any?): Instance fun get(instance: Any?): Instance
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 获得 `Method` 实例处理类。 > 获得 `Method` 实例处理类。
!> 若你设置了 `remedys` 请使用 `wait` 回调结果方法。 !> 若你设置了 `remedys` 请使用 `wait` 回调结果方法。
<b>功能示例</b> **功能示例**
你可以通过获得方法所在实例来执行方法。 你可以通过获得方法所在实例来执行方法。
@@ -352,11 +352,11 @@ method {
fun give(): Method? fun give(): Method?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 得到方法本身。 > 得到方法本身。
@@ -366,11 +366,11 @@ fun give(): Method?
fun wait(instance: Any?, initiate: Instance.() -> Unit) fun wait(instance: Any?, initiate: Instance.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 获得 `Method` 实例处理类,配合 `RemedyPlan` 使用。 > 获得 `Method` 实例处理类,配合 `RemedyPlan` 使用。
@@ -384,15 +384,15 @@ fun wait(instance: Any?, initiate: Instance.() -> Unit)
fun remedys(initiate: RemedyPlan.() -> Unit): Result fun remedys(initiate: RemedyPlan.() -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 创建方法重查找功能。 > 创建方法重查找功能。
<b>功能示例</b> **功能示例**
当你遇到一种方法可能存在不同形式的存在时,可以使用 `RemedyPlan` 重新查找它,而没有必要使用 `onNoSuchMethod` 捕获异常二次查找方法。 当你遇到一种方法可能存在不同形式的存在时,可以使用 `RemedyPlan` 重新查找它,而没有必要使用 `onNoSuchMethod` 捕获异常二次查找方法。
@@ -419,11 +419,11 @@ method {
fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 监听找不到方法时。 > 监听找不到方法时。
@@ -435,11 +435,11 @@ fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result
fun ignoredError(): Result fun ignoredError(): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.3` `新增` `v1.0.3` `新增`
<b>功能描述</b> **功能描述**
> 忽略任何错误发出的警告。 > 忽略任何错误发出的警告。
@@ -451,11 +451,11 @@ fun ignoredError(): Result
inner class Instance(private val instance: Any?) inner class Instance(private val instance: Any?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> `Method` 实例处理类。 > `Method` 实例处理类。
@@ -465,11 +465,11 @@ inner class Instance(private val instance: Any?)
fun call(vararg param: Any?): Any? fun call(vararg param: Any?): Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 执行方法,不指定返回值类型。 > 执行方法,不指定返回值类型。
@@ -479,11 +479,11 @@ fun call(vararg param: Any?): Any?
fun <T> invoke(vararg param: Any?): T? fun <T> invoke(vararg param: Any?): T?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 执行方法,指定 `T` 返回值类型。 > 执行方法,指定 `T` 返回值类型。
@@ -493,11 +493,11 @@ fun <T> invoke(vararg param: Any?): T?
fun byte(vararg param: Any?): Byte? fun byte(vararg param: Any?): Byte?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Byte 返回值类型。 > 执行方法,指定 Byte 返回值类型。
@@ -507,7 +507,7 @@ fun byte(vararg param: Any?): Byte?
fun int(vararg param: Any?): Int fun int(vararg param: Any?): Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -515,7 +515,7 @@ fun int(vararg param: Any?): Int
修改 ~~`callInt`~~`int` 修改 ~~`callInt`~~`int`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Int 返回值类型。 > 执行方法,指定 Int 返回值类型。
@@ -525,7 +525,7 @@ fun int(vararg param: Any?): Int
fun long(vararg param: Any?): Long fun long(vararg param: Any?): Long
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -533,7 +533,7 @@ fun long(vararg param: Any?): Long
修改 ~~`callLong`~~`long` 修改 ~~`callLong`~~`long`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Long 返回值类型。 > 执行方法,指定 Long 返回值类型。
@@ -543,7 +543,7 @@ fun long(vararg param: Any?): Long
fun short(vararg param: Any?): Short fun short(vararg param: Any?): Short
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -551,7 +551,7 @@ fun short(vararg param: Any?): Short
修改 ~~`callShort`~~`short` 修改 ~~`callShort`~~`short`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Short 返回值类型。 > 执行方法,指定 Short 返回值类型。
@@ -561,7 +561,7 @@ fun short(vararg param: Any?): Short
fun double(vararg param: Any?): Double fun double(vararg param: Any?): Double
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -569,7 +569,7 @@ fun double(vararg param: Any?): Double
修改 ~~`callDouble`~~`double` 修改 ~~`callDouble`~~`double`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Double 返回值类型。 > 执行方法,指定 Double 返回值类型。
@@ -579,7 +579,7 @@ fun double(vararg param: Any?): Double
fun float(vararg param: Any?): Float fun float(vararg param: Any?): Float
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -587,7 +587,7 @@ fun float(vararg param: Any?): Float
修改 ~~`callFloat`~~`float` 修改 ~~`callFloat`~~`float`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Float 返回值类型。 > 执行方法,指定 Float 返回值类型。
@@ -597,7 +597,7 @@ fun float(vararg param: Any?): Float
fun string(vararg param: Any?): String fun string(vararg param: Any?): String
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -605,7 +605,7 @@ fun string(vararg param: Any?): String
修改 ~~`callString`~~`string` 修改 ~~`callString`~~`string`
<b>功能描述</b> **功能描述**
> 执行方法,指定 String 返回值类型。 > 执行方法,指定 String 返回值类型。
@@ -615,11 +615,11 @@ fun string(vararg param: Any?): String
fun char(vararg param: Any?): Char fun char(vararg param: Any?): Char
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Char 返回值类型。 > 执行方法,指定 Char 返回值类型。
@@ -629,7 +629,7 @@ fun char(vararg param: Any?): Char
fun boolean(vararg param: Any?): Boolean fun boolean(vararg param: Any?): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.65` `新增` `v1.0.65` `新增`
@@ -637,7 +637,7 @@ fun boolean(vararg param: Any?): Boolean
修改 ~~`callBoolean`~~`boolean` 修改 ~~`callBoolean`~~`boolean`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Boolean 返回值类型。 > 执行方法,指定 Boolean 返回值类型。
@@ -647,11 +647,11 @@ fun boolean(vararg param: Any?): Boolean
inline fun <reified T> array(vararg param: Any?): Array<T> inline fun <reified T> array(vararg param: Any?): Array<T>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 执行方法,指定 Array 返回值类型。 > 执行方法,指定 Array 返回值类型。
@@ -661,10 +661,10 @@ inline fun <reified T> array(vararg param: Any?): Array<T>
inline fun <reified T> list(vararg param: Any?): List<T> inline fun <reified T> list(vararg param: Any?): List<T>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 执行方法,指定 List 返回值类型。 > 执行方法,指定 List 返回值类型。

View File

@@ -4,11 +4,11 @@
class ModifierRules class ModifierRules
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 这是一个 `Member` 描述符定义类。 > 这是一个 `Member` 描述符定义类。
@@ -20,11 +20,11 @@ class ModifierRules
fun asPublic() fun asPublic()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `public`。 > 添加描述 `Member` 类型包含 `public`。
@@ -34,11 +34,11 @@ fun asPublic()
fun asPrivate() fun asPrivate()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `private`。 > 添加描述 `Member` 类型包含 `private`。
@@ -48,11 +48,11 @@ fun asPrivate()
fun asProtected() fun asProtected()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `protected`。 > 添加描述 `Member` 类型包含 `protected`。
@@ -62,11 +62,11 @@ fun asProtected()
fun asStatic() fun asStatic()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `static`。 > 添加描述 `Member` 类型包含 `static`。
@@ -80,11 +80,11 @@ fun asStatic()
fun asFinal() fun asFinal()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `final`。 > 添加描述 `Member` 类型包含 `final`。
@@ -96,11 +96,11 @@ fun asFinal()
fun asSynchronized() fun asSynchronized()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `synchronized`。 > 添加描述 `Member` 类型包含 `synchronized`。
@@ -110,11 +110,11 @@ fun asSynchronized()
fun asVolatile() fun asVolatile()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `volatile`。 > 添加描述 `Member` 类型包含 `volatile`。
@@ -124,11 +124,11 @@ fun asVolatile()
fun asTransient() fun asTransient()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `transient`。 > 添加描述 `Member` 类型包含 `transient`。
@@ -138,11 +138,11 @@ fun asTransient()
fun asNative() fun asNative()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `native`。 > 添加描述 `Member` 类型包含 `native`。
@@ -154,11 +154,11 @@ fun asNative()
fun asInterface() fun asInterface()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `interface`。 > 添加描述 `Member` 类型包含 `interface`。
@@ -168,11 +168,11 @@ fun asInterface()
fun asAbstract() fun asAbstract()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `abstract`。 > 添加描述 `Member` 类型包含 `abstract`。
@@ -184,10 +184,10 @@ fun asAbstract()
fun asStrict() fun asStrict()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 添加描述 `Member` 类型包含 `strict` > 添加描述 `Member` 类型包含 `strict`

View File

@@ -4,11 +4,11 @@
open class ModuleApplication: Application() open class ModuleApplication: Application()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.77` `新增` `v1.0.77` `新增`
<b>功能描述</b> **功能描述**
> 这是对使用 `YukiHookAPI` Xposed 模块实现中的一个扩展功能。 > 这是对使用 `YukiHookAPI` Xposed 模块实现中的一个扩展功能。
@@ -24,7 +24,7 @@ open class ModuleApplication: Application()
- 在模块中使用系统隐藏 API核心技术引用了开源项目 [FreeReflection](https://github.com/tiann/FreeReflection) - 在模块中使用系统隐藏 API核心技术引用了开源项目 [FreeReflection](https://github.com/tiann/FreeReflection)
<b>功能示例</b> **功能示例**
将此类继承到你的自定义 `Application` 上。 将此类继承到你的自定义 `Application` 上。
@@ -67,10 +67,10 @@ class MyApplication: ModuleApplication() {
val appContext: ModuleApplication val appContext: ModuleApplication
``` ```
<b>变更记录</b> **变更记录**
`v1.0.77` `新增` `v1.0.77` `新增`
<b>功能描述</b> **功能描述**
> 全局静态 `Application` 实例。 > 获取全局静态 `Application` 实例。

View File

@@ -4,11 +4,11 @@
open class PackageParam(private var wrapper: PackageParamWrapper?) open class PackageParam(private var wrapper: PackageParamWrapper?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 装载 Hook 的目标 APP 入口对象实现类。 > 装载 Hook 的目标 APP 入口对象实现类。
@@ -18,11 +18,11 @@ open class PackageParam(private var wrapper: PackageParamWrapper?)
val appClassLoaderClassLoader val appClassLoaderClassLoader
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook APP 的 `ClassLoader`。 > 获取当前 Hook APP 的 `ClassLoader`。
@@ -32,11 +32,11 @@ val appClassLoaderClassLoader
val appInfo: ApplicationInfo val appInfo: ApplicationInfo
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook APP 的 `ApplicationInfo`。 > 获取当前 Hook APP 的 `ApplicationInfo`。
@@ -46,11 +46,11 @@ val appInfo: ApplicationInfo
val appContext: Application val appContext: Application
``` ```
<b>变更记录</b> **变更记录**
`v1.0.72` `新增` `v1.0.72` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook APP 的 `Application`。 > 获取当前 Hook APP 的 `Application`。
@@ -60,11 +60,11 @@ val appContext: Application
val processName: String val processName: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook APP 的进程名称。 > 获取当前 Hook APP 的进程名称。
@@ -74,11 +74,11 @@ val processName: String
val packageName: String val packageName: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook APP 的包名。 > 获取当前 Hook APP 的包名。
@@ -88,11 +88,11 @@ val packageName: String
val isFirstApplication: Boolean val isFirstApplication: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前 Hook APP 是否为第一个 `Application`。 > 获取当前 Hook APP 是否为第一个 `Application`。
@@ -102,11 +102,11 @@ val isFirstApplication: Boolean
val mainProcessName: String val mainProcessName: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook APP 的主进程名称。 > 获取当前 Hook APP 的主进程名称。
@@ -118,11 +118,11 @@ val mainProcessName: String
val prefs: YukiHookModulePrefs val prefs: YukiHookModulePrefs
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获得当前使用的存取数据对象缓存实例。 > 获得当前使用的存取数据对象缓存实例。
@@ -132,11 +132,11 @@ val prefs: YukiHookModulePrefs
fun prefs(name: String): YukiHookModulePrefs fun prefs(name: String): YukiHookModulePrefs
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获得当前使用的存取数据对象缓存实例。 > 获得当前使用的存取数据对象缓存实例。
@@ -152,11 +152,11 @@ fun loadApp(name: String, initiate: PackageParam.() -> Unit)
fun loadApp(name: String, hooker: YukiBaseHooker) fun loadApp(name: String, hooker: YukiBaseHooker)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 装载并 Hook 指定包名的 APP。 > 装载并 Hook 指定包名的 APP。
@@ -172,11 +172,11 @@ fun withProcess(name: String, initiate: PackageParam.() -> Unit)
fun withProcess(name: String, hooker: YukiBaseHooker) fun withProcess(name: String, hooker: YukiBaseHooker)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 装载并 Hook APP 的指定进程。 > 装载并 Hook APP 的指定进程。
@@ -188,11 +188,11 @@ fun withProcess(name: String, hooker: YukiBaseHooker)
fun loadHooker(hooker: YukiBaseHooker) fun loadHooker(hooker: YukiBaseHooker)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 装载 Hook 子类。 > 装载 Hook 子类。
@@ -208,15 +208,15 @@ val String.clazz: Class<*>
val VariousClass.clazz: Class<*> val VariousClass.clazz: Class<*>
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 字符串、`VariousClass` 转换为实体类。 > 字符串、`VariousClass` 转换为实体类。
<b>功能示例</b> **功能示例**
你可以轻松地将 `String` 类型的 `Class` 包名转为 `Class` 实例。 你可以轻松地将 `String` 类型的 `Class` 包名转为 `Class` 实例。
@@ -250,15 +250,15 @@ VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").clazz
val String.hasClass: Boolean val String.hasClass: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 通过字符串使用当前 `appClassLoader` 查找类是否存在。 > 通过字符串使用当前 `appClassLoader` 查找类是否存在。
<b>功能示例</b> **功能示例**
你可以轻松的使用此方法判断字符串中的类是否存在。 你可以轻松的使用此方法判断字符串中的类是否存在。
@@ -280,7 +280,7 @@ fun findClass(name: String): HookClass
fun findClass(vararg name: String): VariousClass fun findClass(vararg name: String): VariousClass
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -288,11 +288,11 @@ fun findClass(vararg name: String): VariousClass
移除了 ~~`findClass(various: VariousClass)`~~ 方法 移除了 ~~`findClass(various: VariousClass)`~~ 方法
<b>功能描述</b> **功能描述**
> 通过完整包名+名称查找需要被 Hook 的 `Class`。 > 通过完整包名+名称查找需要被 Hook 的 `Class`。
<b>功能示例</b> **功能示例**
你可以使用三种方式查找你需要 Hook 的目标 `Class` 你可以使用三种方式查找你需要 Hook 的目标 `Class`
@@ -338,7 +338,7 @@ fun VariousClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.()
fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -358,11 +358,11 @@ fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() ->
新增 `isUseAppClassLoader` 参数 新增 `isUseAppClassLoader` 参数
<b>功能描述</b> **功能描述**
> 这是一切 Hook 的入口创建方法Hook 方法、构造类。 > 这是一切 Hook 的入口创建方法Hook 方法、构造类。
<b>功能示例</b> **功能示例**
如你所见Hook 方法体的创建可使用 4 种方式。 如你所见Hook 方法体的创建可使用 4 种方式。

View File

@@ -4,17 +4,17 @@
data class PrefsData<T>(var key: String, var value: T) data class PrefsData<T>(var key: String, var value: T)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 键值对存储构造类。 > 键值对存储构造类。
这个类是对 `YukiHookModulePrefs` 的一个扩展用法。 这个类是对 `YukiHookModulePrefs` 的一个扩展用法。
<b>功能示例</b> **功能示例**
建立一个模板类定义模块与宿主需要使用的键值数据。 建立一个模板类定义模块与宿主需要使用的键值数据。

View File

@@ -1,10 +1,10 @@
## ReflectionFactory [kt] ## ReflectionFactory [kt]
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是自定义 `Member` 和 `Class` 相关功能的查找匹配以及 `invoke` 的封装类。 > 这是自定义 `Member` 和 `Class` 相关功能的查找匹配以及 `invoke` 的封装类。
@@ -14,15 +14,15 @@
val String.hasClass: Boolean val String.hasClass: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 通过字符串查找类是否存在。 > 通过字符串查找类是否存在。
<b>功能示例</b> **功能示例**
你可以轻松的使用此方法判断字符串中的类是否存在。 你可以轻松的使用此方法判断字符串中的类是否存在。
@@ -42,11 +42,11 @@ if("com.example.demo.DemoClass".hasClass) {
val Class<*>.hookClass: HookClass val Class<*>.hookClass: HookClass
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 将 `Class` 转换为 `HookClass`。 > 将 `Class` 转换为 `HookClass`。
@@ -56,11 +56,11 @@ val Class<*>.hookClass: HookClass
val HookClass.normalClass: Class<*>? val HookClass.normalClass: Class<*>?
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 将 `HookClass` 转换为 `Class`。 > 将 `HookClass` 转换为 `Class`。
@@ -70,15 +70,15 @@ val HookClass.normalClass: Class<*>?
fun classOf(name: String, loader: ClassLoader?): Class<*> fun classOf(name: String, loader: ClassLoader?): Class<*>
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 通过字符串使用指定的 `ClassLoader` 转换为实体类。 > 通过字符串使用指定的 `ClassLoader` 转换为实体类。
<b>功能示例</b> **功能示例**
你可以直接填写你要查找的目标 `Class`,必须在当前 `ClassLoader` 下存在。 你可以直接填写你要查找的目标 `Class`,必须在当前 `ClassLoader` 下存在。
@@ -102,11 +102,11 @@ classOf(name = "com.example.demo.DemoClass", classLoader)
fun String.hasClass(loader: ClassLoader?): Boolean fun String.hasClass(loader: ClassLoader?): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 通过字符串使用指定的 `ClassLoader` 查找类是否存在。 > 通过字符串使用指定的 `ClassLoader` 查找类是否存在。
@@ -116,7 +116,7 @@ fun String.hasClass(loader: ClassLoader?): Boolean
fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.4` `新增` `v1.0.4` `新增`
@@ -124,7 +124,7 @@ fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
合并到 `FieldFinder` 合并到 `FieldFinder`
<b>功能描述</b> **功能描述**
> 查找变量是否存在。 > 查找变量是否存在。
@@ -134,7 +134,7 @@ fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -146,7 +146,7 @@ fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
合并到 `MethodFinder` 合并到 `MethodFinder`
<b>功能描述</b> **功能描述**
> 查找方法是否存在。 > 查找方法是否存在。
@@ -156,7 +156,7 @@ fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
@@ -164,7 +164,7 @@ fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
合并到 `ConstructorFinder` 合并到 `ConstructorFinder`
<b>功能描述</b> **功能描述**
> 查找构造方法是否存在。 > 查找构造方法是否存在。
@@ -174,17 +174,17 @@ fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 查询 `Member` 中匹配的描述符。 > 查询 `Member` 中匹配的描述符。
### ~~obtainStaticFieldAny [method]~~ <!-- {docsify-ignore} --> ### ~~obtainStaticFieldAny [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -192,7 +192,7 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
### ~~obtainFieldAny [method]~~ <!-- {docsify-ignore} --> ### ~~obtainFieldAny [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -200,7 +200,7 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
### ~~modifyStaticField [method]~~ <!-- {docsify-ignore} --> ### ~~modifyStaticField [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -208,7 +208,7 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
### ~~modifyField [method]~~ <!-- {docsify-ignore} --> ### ~~modifyField [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -220,11 +220,11 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
fun Class<*>.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result fun Class<*>.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `新增` `v1.0.2` `新增`
<b>功能描述</b> **功能描述**
> 查找并得到变量。 > 查找并得到变量。
@@ -234,7 +234,7 @@ fun Class<*>.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -248,7 +248,7 @@ fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
合并到 `MethodFinder` 方法体。 合并到 `MethodFinder` 方法体。
<b>功能描述</b> **功能描述**
> 查找并得到方法。 > 查找并得到方法。
@@ -258,7 +258,7 @@ fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -270,13 +270,13 @@ fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFin
合并到 `ConstructorFinder` 方法体。 合并到 `ConstructorFinder` 方法体。
<b>功能描述</b> **功能描述**
> 查找并得到构造类。 > 查找并得到构造类。
### ~~callStatic [method]~~ <!-- {docsify-ignore} --> ### ~~callStatic [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -288,7 +288,7 @@ fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFin
### ~~call [method]~~ <!-- {docsify-ignore} --> ### ~~call [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -304,11 +304,11 @@ fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFin
inline fun <reified T : Any> T.current(initiate: CurrentClass.() -> Unit): T inline fun <reified T : Any> T.current(initiate: CurrentClass.() -> Unit): T
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 获得当前实例的类操作对象。 > 获得当前实例的类操作对象。
@@ -318,11 +318,11 @@ inline fun <reified T : Any> T.current(initiate: CurrentClass.() -> Unit): T
fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): T? fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): T?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 通过构造方法创建新实例,指定类型 `T`。 > 通过构造方法创建新实例,指定类型 `T`。
@@ -332,11 +332,11 @@ fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorFinder.() -> U
fun Class<*>.buildOfAny(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): Any? fun Class<*>.buildOfAny(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): Any?
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 通过构造方法创建新实例,任意类型 `Any`。 > 通过构造方法创建新实例,任意类型 `Any`。
@@ -346,11 +346,11 @@ fun Class<*>.buildOfAny(vararg param: Any?, initiate: ConstructorFinder.() -> Un
fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit) fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 遍历当前类中的所有方法。 > 遍历当前类中的所有方法。
@@ -360,11 +360,11 @@ fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit)
fun Class<*>.allConstructors(callback: (index: Int, constructor: Constructor<*>) -> Unit) fun Class<*>.allConstructors(callback: (index: Int, constructor: Constructor<*>) -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 遍历当前类中的所有构造方法。 > 遍历当前类中的所有构造方法。
@@ -374,10 +374,10 @@ fun Class<*>.allConstructors(callback: (index: Int, constructor: Constructor<*>)
fun Class<*>.allFields(callback: (index: Int, field: Field) -> Unit) fun Class<*>.allFields(callback: (index: Int, field: Field) -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 遍历当前类中的所有变量。 > 遍历当前类中的所有变量。

View File

@@ -1,10 +1,10 @@
## VariableTypeFactory [kt] ## VariableTypeFactory [kt]
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是一个预置 Hook 类型的常量类,主要为 `Java` 相关基本变量类型的 `Class` 内容,跟随版本更新会逐一进行增加。 > 这是一个预置 Hook 类型的常量类,主要为 `Java` 相关基本变量类型的 `Class` 内容,跟随版本更新会逐一进行增加。

View File

@@ -4,11 +4,11 @@
class VariousClass(vararg var name: String) class VariousClass(vararg var name: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是一个不确定性 `Class` 类名装载器,通过 `name` 装载 `Class` 名称数组。 > 这是一个不确定性 `Class` 类名装载器,通过 `name` 装载 `Class` 名称数组。
@@ -18,11 +18,11 @@ class VariousClass(vararg var name: String)
fun get(loader: ClassLoader? = null): Class<*> fun get(loader: ClassLoader? = null): Class<*>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 获取匹配的实体类。 > 获取匹配的实体类。

View File

@@ -1,10 +1,10 @@
## ViewTypeFactory [kt] ## ViewTypeFactory [kt]
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关 `Widget` 的 `Class` 内容,跟随版本更新会逐一进行增加。 > 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关 `Widget` 的 `Class` 内容,跟随版本更新会逐一进行增加。

View File

@@ -4,11 +4,11 @@
abstract class YukiBaseHooker : PackageParam() abstract class YukiBaseHooker : PackageParam()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> `YukiHookAPI` 的子类 Hooker 实现。 > `YukiHookAPI` 的子类 Hooker 实现。
@@ -18,10 +18,10 @@ abstract class YukiBaseHooker : PackageParam()
fun onHook() fun onHook()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 子类 Hook 开始。 > 子类 Hook 开始。

View File

@@ -4,11 +4,11 @@
object YukiHookAPI object YukiHookAPI
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是 `YukiHookAPI` 的 API 调用总类Hook 相关功能的开始、Hook 相关功能的配置都在这里。 > 这是 `YukiHookAPI` 的 API 调用总类Hook 相关功能的开始、Hook 相关功能的配置都在这里。
@@ -18,11 +18,11 @@ object YukiHookAPI
const val API_VERSION_NAME: String const val API_VERSION_NAME: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0.4` `新增` `v1.0.4` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 `YukiHookAPI` 的版本。 > 获取当前 `YukiHookAPI` 的版本。
@@ -32,11 +32,11 @@ const val API_VERSION_NAME: String
const val API_VERSION_CODE: Int const val API_VERSION_CODE: Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0.4` `新增` `v1.0.4` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 `YukiHookAPI` 的版本号。 > 获取当前 `YukiHookAPI` 的版本号。
@@ -46,11 +46,11 @@ const val API_VERSION_CODE: Int
val executorName: String val executorName: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 框架的名称。 > 获取当前 Hook 框架的名称。
@@ -62,11 +62,11 @@ val executorName: String
val executorVersion: Int val executorVersion: Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 框架的版本。 > 获取当前 Hook 框架的版本。
@@ -78,11 +78,11 @@ val executorVersion: Int
object Configs object Configs
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 对 API 相关功能的配置类。 > 对 API 相关功能的配置类。
@@ -92,11 +92,11 @@ object Configs
var debugTag: String var debugTag: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 模块在调用 `logger` 时打印的日志 `TAG` 名称。 > 模块在调用 `logger` 时打印的日志 `TAG` 名称。
@@ -108,11 +108,11 @@ var debugTag: String
var isDebug: Boolean var isDebug: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 是否启用 DEBUG 模式。 > 是否启用 DEBUG 模式。
@@ -124,11 +124,11 @@ var isDebug: Boolean
var isAllowPrintingLogs: Boolean var isAllowPrintingLogs: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.4` `新增` `v1.0.4` `新增`
<b>功能描述</b> **功能描述**
> 是否启用调试日志的输出功能。 > 是否启用调试日志的输出功能。
@@ -140,11 +140,11 @@ var isAllowPrintingLogs: Boolean
var isEnableModulePrefsCache: Boolean var isEnableModulePrefsCache: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 是否启用 `YukiHookModulePrefs` 的键值缓存功能。 > 是否启用 `YukiHookModulePrefs` 的键值缓存功能。
@@ -158,11 +158,11 @@ var isEnableModulePrefsCache: Boolean
var isEnableMemberCache: Boolean var isEnableMemberCache: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.68` `新增` `v1.0.68` `新增`
<b>功能描述</b> **功能描述**
> 是否启用 `Member` 缓存功能。 > 是否启用 `Member` 缓存功能。
@@ -182,17 +182,17 @@ var isEnableMemberCache: Boolean
fun configs(initiate: Configs.() -> Unit) fun configs(initiate: Configs.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 对 `Configs` 类实现了一个 `lambda` 方法体。 > 对 `Configs` 类实现了一个 `lambda` 方法体。
你可以轻松的调用它进行配置。 你可以轻松的调用它进行配置。
<b>功能示例</b> **功能示例**
你可以在 `HookEntryClass``onInit` 方法中调用 `configs` 方法完成对 API 的功能配置,实时生效。 你可以在 `HookEntryClass``onInit` 方法中调用 `configs` 方法完成对 API 的功能配置,实时生效。
@@ -277,15 +277,15 @@ fun encase(baseContext: Context?, initiate: PackageParam.() -> Unit)
fun encase(baseContext: Context?, vararg hooker: YukiBaseHooker) fun encase(baseContext: Context?, vararg hooker: YukiBaseHooker)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 装载 Hook 入口的核心方法。 > 装载 Hook 入口的核心方法。
<b>功能示例</b> **功能示例**
详情请参考 详情请参考

View File

@@ -4,11 +4,11 @@
class YukiHookCreater(private val packageParam: PackageParam, private val hookClass: HookClass) class YukiHookCreater(private val packageParam: PackageParam, private val hookClass: HookClass)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> `YukiHookAPI` 核心 Hook 实现类。 > `YukiHookAPI` 核心 Hook 实现类。
@@ -18,7 +18,7 @@ class YukiHookCreater(private val packageParam: PackageParam, private val hookCl
val instanceClass: Class<*> val instanceClass: Class<*>
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -26,7 +26,7 @@ val instanceClass: Class<*>
~~`thisClass`~~ 更名为 `instanceClass` ~~`thisClass`~~ 更名为 `instanceClass`
<b>功能描述</b> **功能描述**
> 得到当前被 Hook 的 `Class`。 > 得到当前被 Hook 的 `Class`。
@@ -38,15 +38,15 @@ val instanceClass: Class<*>
fun injectMember(tag: String, initiate: MemberHookCreater.() -> Unit): MemberHookCreater.Result fun injectMember(tag: String, initiate: MemberHookCreater.() -> Unit): MemberHookCreater.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 注入要 Hook 的方法、构造类。 > 注入要 Hook 的方法、构造类。
<b>功能示例</b> **功能示例**
你可以注入任意方法与构造类,使用 `injectMember` 即可创建一个 `Hook` 对象。 你可以注入任意方法与构造类,使用 `injectMember` 即可创建一个 `Hook` 对象。
@@ -74,11 +74,11 @@ injectMember(tag = "KuriharaYuki") {
inner class MemberHookCreater(var tag: String) inner class MemberHookCreater(var tag: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> Hook 核心功能实现类,查找和处理需要 Hook 的方法、构造类。 > Hook 核心功能实现类,查找和处理需要 Hook 的方法、构造类。
@@ -88,17 +88,17 @@ inner class MemberHookCreater(var tag: String)
var member: Member? var member: Member?
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 手动指定要 Hook 的方法、构造类。 > 手动指定要 Hook 的方法、构造类。
!> 不建议使用此方法设置目标需要 Hook 的 `Member` 对象,你可以使用 `method``constructor` 方法。 !> 不建议使用此方法设置目标需要 Hook 的 `Member` 对象,你可以使用 `method``constructor` 方法。
<b>功能示例</b> **功能示例**
你可以调用 `instanceClass` 来手动查询要 Hook 的方法。 你可以调用 `instanceClass` 来手动查询要 Hook 的方法。
@@ -118,15 +118,15 @@ injectMember {
fun allMethods(name: String) fun allMethods(name: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 查找并 Hook 当前 `Class` 中指定 `name` 的全部方法。 > 查找并 Hook 当前 `Class` 中指定 `name` 的全部方法。
<b>功能示例</b> **功能示例**
使用此方法可将当前类的全部同名方法进行批量 Hook。 使用此方法可将当前类的全部同名方法进行批量 Hook。
@@ -148,15 +148,15 @@ injectMember {
fun allConstructors() fun allConstructors()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 查找并 Hook 当前 `Class` 中的全部构造方法。 > 查找并 Hook 当前 `Class` 中的全部构造方法。
<b>功能示例</b> **功能示例**
使用此方法可将当前类的全部构造方法进行批量 Hook。 使用此方法可将当前类的全部构造方法进行批量 Hook。
@@ -178,15 +178,15 @@ injectMember {
fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 查找当前 `Class` 需要 Hook 的方法。 > 查找当前 `Class` 需要 Hook 的方法。
<b>功能示例</b> **功能示例**
你可参考 [MethodFinder](#methodfinder-class) 查看详细用法。 你可参考 [MethodFinder](#methodfinder-class) 查看详细用法。
@@ -210,15 +210,15 @@ injectMember {
fun constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result fun constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 查找当前 `Class` 需要 Hook 的构造方法。 > 查找当前 `Class` 需要 Hook 的构造方法。
<b>功能示例</b> **功能示例**
你可参考 [ConstructorFinder](#constructorfinder-class) 查看详细用法。 你可参考 [ConstructorFinder](#constructorfinder-class) 查看详细用法。
@@ -238,15 +238,15 @@ injectMember {
fun HookParam.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result fun HookParam.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 使用当前 `hookClass` 查找并得到 `Field`。 > 使用当前 `hookClass` 查找并得到 `Field`。
<b>功能示例</b> **功能示例**
你可参考 [FieldFinder](#fieldfinder-class) 查看详细用法。 你可参考 [FieldFinder](#fieldfinder-class) 查看详细用法。
@@ -274,11 +274,11 @@ injectMember {
fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `添加` `v1.0.2` `添加`
<b>功能描述</b> **功能描述**
> 使用当前 `hookClass` 查找并得到方法。 > 使用当前 `hookClass` 查找并得到方法。
@@ -288,11 +288,11 @@ fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
fun HookParam.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result fun HookParam.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.2` `添加` `v1.0.2` `添加`
<b>功能描述</b> **功能描述**
> 使用当前 `hookClass` 查找并得到构造方法。 > 使用当前 `hookClass` 查找并得到构造方法。
@@ -302,11 +302,11 @@ fun HookParam.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFi
fun beforeHook(initiate: HookParam.() -> Unit) fun beforeHook(initiate: HookParam.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 在方法执行完成前 Hook。 > 在方法执行完成前 Hook。
@@ -316,11 +316,11 @@ fun beforeHook(initiate: HookParam.() -> Unit)
fun afterHook(initiate: HookParam.() -> Unit) fun afterHook(initiate: HookParam.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 在方法执行完成后 Hook。 > 在方法执行完成后 Hook。
@@ -330,11 +330,11 @@ fun afterHook(initiate: HookParam.() -> Unit)
fun replaceAny(initiate: HookParam.() -> Any?) fun replaceAny(initiate: HookParam.() -> Any?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 拦截并替换此方法内容,给出返回值。 > 拦截并替换此方法内容,给出返回值。
@@ -344,11 +344,11 @@ fun replaceAny(initiate: HookParam.() -> Any?)
fun replaceUnit(initiate: HookParam.() -> Unit) fun replaceUnit(initiate: HookParam.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 拦截并替换此方法内容,没有返回值,可以称为 `Void`。 > 拦截并替换此方法内容,没有返回值,可以称为 `Void`。
@@ -358,11 +358,11 @@ fun replaceUnit(initiate: HookParam.() -> Unit)
fun replaceTo(any: Any?) fun replaceTo(any: Any?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 拦截并替换方法返回值。 > 拦截并替换方法返回值。
@@ -372,11 +372,11 @@ fun replaceTo(any: Any?)
fun replaceToTrue() fun replaceToTrue()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 拦截并替换方法返回值为 `true`。 > 拦截并替换方法返回值为 `true`。
@@ -388,11 +388,11 @@ fun replaceToTrue()
fun replaceToFalse() fun replaceToFalse()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 拦截并替换方法返回值为 `false`。 > 拦截并替换方法返回值为 `false`。
@@ -404,11 +404,11 @@ fun replaceToFalse()
fun intercept() fun intercept()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 拦截此方法。 > 拦截此方法。
@@ -420,11 +420,11 @@ fun intercept()
inner class Result inner class Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 监听 Hook 结果实现类。 > 监听 Hook 结果实现类。
@@ -434,7 +434,7 @@ inner class Result
fun result(initiate: Result.() -> Unit): Result fun result(initiate: Result.() -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
@@ -442,11 +442,11 @@ fun result(initiate: Result.() -> Unit): Result
~~`failures`~~ 修改为 `result` ~~`failures`~~ 修改为 `result`
<b>功能描述</b> **功能描述**
> 创建监听失败事件方法体。 > 创建监听失败事件方法体。
<b>功能示例</b> **功能示例**
你可以使用此方法为 `Result` 类创建 `lambda` 方法体。 你可以使用此方法为 `Result` 类创建 `lambda` 方法体。
@@ -469,11 +469,11 @@ injectMember {
fun by(initiate: () -> Boolean): Result fun by(initiate: () -> Boolean): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。 > 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
@@ -483,11 +483,11 @@ fun by(initiate: () -> Boolean): Result
fun onHooked(initiate: (Member) -> Unit): Result fun onHooked(initiate: (Member) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 监听 `member` Hook 成功的回调方法。 > 监听 `member` Hook 成功的回调方法。
@@ -499,11 +499,11 @@ fun onHooked(initiate: (Member) -> Unit): Result
fun onNoSuchMemberFailure(initiate: (Throwable) -> Unit): Result fun onNoSuchMemberFailure(initiate: (Throwable) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 监听 `member` 不存在发生错误的回调方法。 > 监听 `member` 不存在发生错误的回调方法。
@@ -513,11 +513,11 @@ fun onNoSuchMemberFailure(initiate: (Throwable) -> Unit): Result
fun onConductFailure(initiate: (HookParam, Throwable) -> Unit): Result fun onConductFailure(initiate: (HookParam, Throwable) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 监听 Hook 进行过程中发生错误的回调方法。 > 监听 Hook 进行过程中发生错误的回调方法。
@@ -527,11 +527,11 @@ fun onConductFailure(initiate: (HookParam, Throwable) -> Unit): Result
fun onHookingFailure(initiate: (Throwable) -> Unit): Result fun onHookingFailure(initiate: (Throwable) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 监听 Hook 开始时发生的错误的回调方法。 > 监听 Hook 开始时发生的错误的回调方法。
@@ -541,11 +541,11 @@ fun onHookingFailure(initiate: (Throwable) -> Unit): Result
fun onAllFailure(initiate: (Throwable) -> Unit): Result fun onAllFailure(initiate: (Throwable) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 监听全部 Hook 过程发生错误的回调方法。 > 监听全部 Hook 过程发生错误的回调方法。
@@ -555,11 +555,11 @@ fun onAllFailure(initiate: (Throwable) -> Unit): Result
fun ignoredNoSuchMemberFailure(): Result fun ignoredNoSuchMemberFailure(): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 忽略 `member` 不存在发生的错误。 > 忽略 `member` 不存在发生的错误。
@@ -569,11 +569,11 @@ fun ignoredNoSuchMemberFailure(): Result
fun ignoredConductFailure(): Result fun ignoredConductFailure(): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 忽略 Hook 进行过程中发生的错误。 > 忽略 Hook 进行过程中发生的错误。
@@ -583,11 +583,11 @@ fun ignoredConductFailure(): Result
fun ignoredHookingFailure(): Result fun ignoredHookingFailure(): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 忽略 Hook 开始时发生的错误。 > 忽略 Hook 开始时发生的错误。
@@ -597,11 +597,11 @@ fun ignoredHookingFailure(): Result
fun ignoredAllFailure(): Result fun ignoredAllFailure(): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 忽略全部 Hook 过程发生的错误。 > 忽略全部 Hook 过程发生的错误。
@@ -611,11 +611,11 @@ fun ignoredAllFailure(): Result
inner class Result inner class Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.3` `新增` `v1.0.3` `新增`
<b>功能描述</b> **功能描述**
> 监听全部 Hook 结果实现类。 > 监听全部 Hook 结果实现类。
@@ -625,7 +625,7 @@ inner class Result
fun result(initiate: Result.() -> Unit): Result fun result(initiate: Result.() -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.3` `新增` `v1.0.3` `新增`
@@ -633,7 +633,7 @@ fun result(initiate: Result.() -> Unit): Result
~~`failures`~~ 修改为 `result` ~~`failures`~~ 修改为 `result`
<b>功能描述</b> **功能描述**
> 创建监听事件方法体。 > 创建监听事件方法体。
@@ -643,11 +643,11 @@ fun result(initiate: Result.() -> Unit): Result
fun by(initiate: () -> Boolean): Result fun by(initiate: () -> Boolean): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。 > 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
@@ -657,11 +657,11 @@ fun by(initiate: () -> Boolean): Result
fun onPrepareHook(initiate: () -> Unit): Result fun onPrepareHook(initiate: () -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.70` `新增` `v1.0.70` `新增`
<b>功能描述</b> **功能描述**
> 监听 `hookClass` 存在时准备开始 Hook 的操作。 > 监听 `hookClass` 存在时准备开始 Hook 的操作。
@@ -671,11 +671,11 @@ fun onPrepareHook(initiate: () -> Unit): Result
fun onHookClassNotFoundFailure(initiate: (Throwable) -> Unit): Result fun onHookClassNotFoundFailure(initiate: (Throwable) -> Unit): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.3` `新增` `v1.0.3` `新增`
<b>功能描述</b> **功能描述**
> 监听 `hookClass` 找不到时发生错误的回调方法。 > 监听 `hookClass` 找不到时发生错误的回调方法。
@@ -685,10 +685,10 @@ fun onHookClassNotFoundFailure(initiate: (Throwable) -> Unit): Result
fun ignoredHookClassNotFoundFailure(): Result fun ignoredHookClassNotFoundFailure(): Result
``` ```
<b>变更记录</b> **变更记录**
`v1.0.3` `新增` `v1.0.3` `新增`
<b>功能描述</b> **功能描述**
> 忽略 `hookClass` 找不到时出现的错误。 > 忽略 `hookClass` 找不到时出现的错误。

View File

@@ -1,10 +1,10 @@
## YukiHookFactory [kt] ## YukiHookFactory [kt]
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是 `YukiHookAPI` 相关 `lambda` 方法的封装类以及部分 API 用法。 > 这是 `YukiHookAPI` 相关 `lambda` 方法的封装类以及部分 API 用法。
@@ -14,11 +14,11 @@
fun YukiHookXposedInitProxy.configs(initiate: YukiHookAPI.Configs.() -> Unit) fun YukiHookXposedInitProxy.configs(initiate: YukiHookAPI.Configs.() -> Unit)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.1` `新增` `v1.0.1` `新增`
<b>功能描述</b> **功能描述**
> 在 `YukiHookXposedInitProxy` 中配置 `Configs`。 > 在 `YukiHookXposedInitProxy` 中配置 `Configs`。
@@ -32,11 +32,11 @@ fun YukiHookXposedInitProxy.encase(initiate: PackageParam.() -> Unit)
fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker) fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 在 `YukiHookXposedInitProxy` 中装载 `YukiHookAPI`。 > 在 `YukiHookXposedInitProxy` 中装载 `YukiHookAPI`。
@@ -46,11 +46,11 @@ fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker)
val Context.modulePrefs: YukiHookModulePrefs val Context.modulePrefs: YukiHookModulePrefs
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取模块的存取对象。 > 获取模块的存取对象。
@@ -60,11 +60,11 @@ val Context.modulePrefs: YukiHookModulePrefs
fun Context.modulePrefs(name: String): YukiHookModulePrefs fun Context.modulePrefs(name: String): YukiHookModulePrefs
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取模块的存取对象,可设置 `name` 为自定义 Sp 存储名称。 > 获取模块的存取对象,可设置 `name` 为自定义 Sp 存储名称。
@@ -74,11 +74,11 @@ fun Context.modulePrefs(name: String): YukiHookModulePrefs
val Context.processName: String val Context.processName: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取当前进程名称。 > 获取当前进程名称。
@@ -88,11 +88,11 @@ val Context.processName: String
val Context.isModuleActive: Boolean val Context.isModuleActive: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.6` `新增` `v1.0.6` `新增`
<b>功能描述</b> **功能描述**
> 判断模块是否在 Xposed 或太极、无极中激活。 > 判断模块是否在 Xposed 或太极、无极中激活。
@@ -102,11 +102,11 @@ val Context.isModuleActive: Boolean
val Any?.isXposedModuleActive: Boolean val Any?.isXposedModuleActive: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0.6` `新增` `v1.0.6` `新增`
<b>功能描述</b> **功能描述**
> 仅判断模块是否在 Xposed 中激活。 > 仅判断模块是否在 Xposed 中激活。
@@ -116,10 +116,10 @@ val Any?.isXposedModuleActive: Boolean
val Context.isTaiChiModuleActive: Boolean val Context.isTaiChiModuleActive: Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 仅判断模块是否在太极、无极中激活。 > 仅判断模块是否在太极、无极中激活。

View File

@@ -4,11 +4,11 @@
class YukiHookModulePrefs(private val context: Context?) class YukiHookModulePrefs(private val context: Context?)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 实现 Xposed 模块的数据存取,对接 `SharedPreferences` 和 `XSharedPreferences`。 > 实现 Xposed 模块的数据存取,对接 `SharedPreferences` 和 `XSharedPreferences`。
@@ -32,15 +32,15 @@ class YukiHookModulePrefs(private val context: Context?)
fun name(name: String): YukiHookModulePrefs fun name(name: String): YukiHookModulePrefs
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 自定义 Sp 存储名称。 > 自定义 Sp 存储名称。
<b>功能示例</b> **功能示例**
`Activity` 中的使用方法。 `Activity` 中的使用方法。
@@ -64,11 +64,11 @@ prefs("custom_name").getString("custom_key")
fun direct(): YukiHookModulePrefs fun direct(): YukiHookModulePrefs
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 忽略缓存直接读取键值。 > 忽略缓存直接读取键值。
@@ -82,11 +82,11 @@ fun direct(): YukiHookModulePrefs
fun getString(key: String, value: String): String fun getString(key: String, value: String): String
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取 `String` 键值。 > 获取 `String` 键值。
@@ -96,11 +96,11 @@ fun getString(key: String, value: String): String
fun getStringSet(key: String, value: Set<String>): Set<String> fun getStringSet(key: String, value: Set<String>): Set<String>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.77` `新增` `v1.0.77` `新增`
<b>功能描述</b> **功能描述**
> 获取 `Set<String>` 键值。 > 获取 `Set<String>` 键值。
@@ -110,11 +110,11 @@ fun getStringSet(key: String, value: Set<String>): Set<String>
fun getBoolean(key: String, value: Boolean): Boolean fun getBoolean(key: String, value: Boolean): Boolean
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取 `Boolean` 键值。 > 获取 `Boolean` 键值。
@@ -124,11 +124,11 @@ fun getBoolean(key: String, value: Boolean): Boolean
fun getInt(key: String, value: Int): Int fun getInt(key: String, value: Int): Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取 `Int` 键值。 > 获取 `Int` 键值。
@@ -138,11 +138,11 @@ fun getInt(key: String, value: Int): Int
fun getLong(key: String, value: Long): Long fun getLong(key: String, value: Long): Long
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取 `Long` 键值。 > 获取 `Long` 键值。
@@ -152,11 +152,11 @@ fun getLong(key: String, value: Long): Long
fun getFloat(key: String, value: Float): Float fun getFloat(key: String, value: Float): Float
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 获取 `Float` 键值。 > 获取 `Float` 键值。
@@ -166,11 +166,11 @@ fun getFloat(key: String, value: Float): Float
fun all(): HashMap<String, Any?> fun all(): HashMap<String, Any?>
``` ```
<b>变更记录</b> **变更记录**
`v1.0.77` `新增` `v1.0.77` `新增`
<b>功能描述</b> **功能描述**
> 获取全部存储的键值数据。 > 获取全部存储的键值数据。
@@ -184,11 +184,11 @@ fun all(): HashMap<String, Any?>
fun remove(key: String) fun remove(key: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 移除全部包含 `key` 的存储数据。 > 移除全部包含 `key` 的存储数据。
@@ -200,11 +200,11 @@ fun remove(key: String)
inline fun <reified T> remove(prefs: PrefsData<T>) inline fun <reified T> remove(prefs: PrefsData<T>)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 移除 `PrefsData.key` 的存储数据。 > 移除 `PrefsData.key` 的存储数据。
@@ -216,11 +216,11 @@ inline fun <reified T> remove(prefs: PrefsData<T>)
fun clear() fun clear()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.77` `新增` `v1.0.77` `新增`
<b>功能描述</b> **功能描述**
> 移除全部存储数据。 > 移除全部存储数据。
@@ -232,11 +232,11 @@ fun clear()
fun putString(key: String, value: String) fun putString(key: String, value: String)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 存储 `String` 键值。 > 存储 `String` 键值。
@@ -248,11 +248,11 @@ fun putString(key: String, value: String)
fun putStringSet(key: String, value: Set<String>) fun putStringSet(key: String, value: Set<String>)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.77` `新增` `v1.0.77` `新增`
<b>功能描述</b> **功能描述**
> 存储 `Set<String>` 键值。 > 存储 `Set<String>` 键值。
@@ -264,11 +264,11 @@ fun putStringSet(key: String, value: Set<String>)
fun putBoolean(key: String, value: Boolean) fun putBoolean(key: String, value: Boolean)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 存储 `Boolean` 键值。 > 存储 `Boolean` 键值。
@@ -280,11 +280,11 @@ fun putBoolean(key: String, value: Boolean)
fun putInt(key: String, value: Int) fun putInt(key: String, value: Int)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 存储 `Int` 键值。 > 存储 `Int` 键值。
@@ -296,11 +296,11 @@ fun putInt(key: String, value: Int)
fun putLong(key: String, value: Long) fun putLong(key: String, value: Long)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 存储 `Long` 键值。 > 存储 `Long` 键值。
@@ -312,11 +312,11 @@ fun putLong(key: String, value: Long)
fun putFloat(key: String, value: Float) fun putFloat(key: String, value: Float)
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 存储 `Float` 键值。 > 存储 `Float` 键值。
@@ -328,11 +328,11 @@ fun putFloat(key: String, value: Float)
inline fun <reified T> get(prefs: PrefsData<T>, value: T): T inline fun <reified T> get(prefs: PrefsData<T>, value: T): T
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 智能获取指定类型的键值。 > 智能获取指定类型的键值。
@@ -342,11 +342,11 @@ inline fun <reified T> get(prefs: PrefsData<T>, value: T): T
inline fun <reified T> put(prefs: PrefsData<T>, value: T) inline fun <reified T> put(prefs: PrefsData<T>, value: T)
``` ```
<b>变更记录</b> **变更记录**
`v1.0.67` `新增` `v1.0.67` `新增`
<b>功能描述</b> **功能描述**
> 智能存储指定类型的键值。 > 智能存储指定类型的键值。
@@ -358,11 +358,11 @@ inline fun <reified T> put(prefs: PrefsData<T>, value: T)
fun clearCache() fun clearCache()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 清除 `XSharedPreferences` 中缓存的键值数据。 > 清除 `XSharedPreferences` 中缓存的键值数据。

View File

@@ -4,11 +4,11 @@
object YukiHookModuleStatus object YukiHookModuleStatus
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> 这是一个 Xposed 模块 Hook 状态类。 > 这是一个 Xposed 模块 Hook 状态类。
@@ -18,11 +18,11 @@ object YukiHookModuleStatus
val executorName: String val executorName: String
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 框架的名称。 > 获取当前 Hook 框架的名称。
@@ -34,11 +34,11 @@ val executorName: String
val executorVersion: Int val executorVersion: Int
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 获取当前 Hook 框架的版本。 > 获取当前 Hook 框架的版本。
@@ -46,7 +46,7 @@ val executorVersion: Int
### ~~isActive [method]~~ <!-- {docsify-ignore} --> ### ~~isActive [method]~~ <!-- {docsify-ignore} -->
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`

View File

@@ -4,11 +4,11 @@
interface YukiHookXposedInitProxy interface YukiHookXposedInitProxy
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> YukiHookAPI 的 Xposed 装载 API 调用接口。 > YukiHookAPI 的 Xposed 装载 API 调用接口。
@@ -18,11 +18,11 @@ interface YukiHookXposedInitProxy
fun onInit() fun onInit()
``` ```
<b>变更记录</b> **变更记录**
`v1.0.5` `新增` `v1.0.5` `新增`
<b>功能描述</b> **功能描述**
> 配置 `YukiHookAPI.Configs` 的初始化方法。 > 配置 `YukiHookAPI.Configs` 的初始化方法。
@@ -36,10 +36,10 @@ fun onInit()
fun onHook() fun onHook()
``` ```
<b>变更记录</b> **变更记录**
`v1.0` `添加` `v1.0` `添加`
<b>功能描述</b> **功能描述**
> Xposed API 的模块装载调用入口方法。 > Xposed API 的模块装载调用入口方法。

View File

@@ -8,7 +8,7 @@
!> `loggerE` You cannot loading a hooker in "onInit" method! Aborted !> `loggerE` You cannot loading a hooker in "onInit" method! Aborted
<b>异常原因</b> **异常原因**
你尝试在继承 `YukiHookXposedInitProxy` 的 Hook 入口类的 `onInit` 方法中装载了 `encase` 方法。 你尝试在继承 `YukiHookXposedInitProxy` 的 Hook 入口类的 `onInit` 方法中装载了 `encase` 方法。
@@ -30,7 +30,7 @@ class HookEntry : YukiHookXposedInitProxy {
} }
``` ```
<b>解决方案</b> **解决方案**
请在 `onHook` 方法中装载 `encase` 方法。 请在 `onHook` 方法中装载 `encase` 方法。
@@ -57,47 +57,47 @@ class HookEntry : YukiHookXposedInitProxy {
!> `loggerE` YukiHookAPI try to load HookEntryClass failed !> `loggerE` YukiHookAPI try to load HookEntryClass failed
<b>异常原因</b> **异常原因**
`YukiHookAPI` 在尝试装载 Hook 入口类 `onInit``onHook` 方法时发生了不能处理的异常或找不到入口类。 `YukiHookAPI` 在尝试装载 Hook 入口类 `onInit``onHook` 方法时发生了不能处理的异常或找不到入口类。
<b>解决方案</b> **解决方案**
通常情况下这种错误不会轻易发生,若一旦发生此错误,请自行查看控制台打印的日志定位问题,确定并非自己的代码发生的问题后,可提交日志进行反馈。 通常情况下这种错误不会轻易发生,若一旦发生此错误,请自行查看控制台打印的日志定位问题,确定并非自己的代码发生的问题后,可提交日志进行反馈。
!> `loggerE` HookClass \[<b>NAME</b>\] not found !> `loggerE` HookClass \[**NAME**\] not found
<b>异常原因</b> **异常原因**
当前被 Hook 的 `Class` 没有被找到。 当前被 Hook 的 `Class` 没有被找到。
<b>解决方案</b> **解决方案**
请检查目标 `Class` 是否存在,若想忽略此错误请使用 `ignoredHookClassNotFoundFailure` 方法。 请检查目标 `Class` 是否存在,若想忽略此错误请使用 `ignoredHookClassNotFoundFailure` 方法。
!> `loggerE` Hook Member \[<b>NAME</b>\] failed !> `loggerE` Hook Member \[**NAME**\] failed
<b>异常原因</b> **异常原因**
Hook 目标方法、构造方法时发生错误。 Hook 目标方法、构造方法时发生错误。
<b>解决方案</b> **解决方案**
此问题通常由 Hook Framework 产生,请检查对应的日志内容,若问题持续出现请携带完整日志进行反馈。 此问题通常由 Hook Framework 产生,请检查对应的日志内容,若问题持续出现请携带完整日志进行反馈。
!> `loggerE` Hooked Member with a finding error by <b>CLASS</b> !> `loggerE` Hooked Member with a finding error by **CLASS**
<b>异常原因</b> **异常原因**
在 Hook 执行后被 Hook 的 `member``null` 且已经设置目标 Hook 方法、构造类。 在 Hook 执行后被 Hook 的 `member``null` 且已经设置目标 Hook 方法、构造类。
<b>解决方案</b> **解决方案**
请检查此错误发生前的上一个错误日志,或许在查找方法、构造方法的时候发生了找不到方法、构造方法的错误。 请检查此错误发生前的上一个错误日志,或许在查找方法、构造方法的时候发生了找不到方法、构造方法的错误。
!> `loggerE` Hooked Member cannot be non-null by <b>CLASS</b> !> `loggerE` Hooked Member cannot be non-null by **CLASS**
<b>异常原因</b> **异常原因**
在 Hook 执行后被 Hook 的 `member``null` 且没有设置目标 Hook 方法、构造类。 在 Hook 执行后被 Hook 的 `member``null` 且没有设置目标 Hook 方法、构造类。
@@ -112,7 +112,7 @@ injectMember {
} }
``` ```
<b>解决方案</b> **解决方案**
请确认你已经在 Hook 之前正确设置了要 Hook 的方法、构造方法的查询方式。 请确认你已经在 Hook 之前正确设置了要 Hook 的方法、构造方法的查询方式。
@@ -130,49 +130,49 @@ injectMember {
} }
``` ```
!> `loggerE` No Method name "<b>NAME</b>" matched !> `loggerE` No Method name "**NAME**" matched
<b>异常原因</b> **异常原因**
在使用 `allMethods` 查询需要 Hook 的方法时一个也没有找到。 在使用 `allMethods` 查询需要 Hook 的方法时一个也没有找到。
<b>解决方案</b> **解决方案**
请确认当前 `Class` 中一定存在一个可以匹配此方法名称的方法。 请确认当前 `Class` 中一定存在一个可以匹配此方法名称的方法。
!> `loggerE` No Constructor matched !> `loggerE` No Constructor matched
<b>异常原因</b> **异常原因**
在使用 `allConstructors` 查询需要 Hook 的构造方法时一个也没有找到。 在使用 `allConstructors` 查询需要 Hook 的构造方法时一个也没有找到。
<b>解决方案</b> **解决方案**
请确认当前 `Class` 是否存在至少一个构造方法。 请确认当前 `Class` 是否存在至少一个构造方法。
!> `loggerE` Hooked All Members with an error in Class \[<b>NAME</b>\] !> `loggerE` Hooked All Members with an error in Class \[**NAME**\]
<b>异常原因</b> **异常原因**
在 Hook 过程中发生了任意的异常。 在 Hook 过程中发生了任意的异常。
<b>解决方案</b> **解决方案**
这是一个异常汇总提醒,只要 Hook 方法体内发生了异常就会打印此日志,请仔细查看从这里往上的具体异常是什么。 这是一个异常汇总提醒,只要 Hook 方法体内发生了异常就会打印此日志,请仔细查看从这里往上的具体异常是什么。
!> `loggerE` Try to hook <b>NAME</b>\[<b>NAME</b>\] got an Exception !> `loggerE` Try to hook **NAME**\[**NAME**\] got an Exception
<b>异常原因</b> **异常原因**
在 Hook 开始时发生了任意的异常。 在 Hook 开始时发生了任意的异常。
<b>解决方案</b> **解决方案**
这是一个 Hook 开始就发生异常的提醒,请仔细查看具体的异常是什么以重新确定问题。 这是一个 Hook 开始就发生异常的提醒,请仔细查看具体的异常是什么以重新确定问题。
!> `loggerE` Method/Constructor/Field match type "<b>TYPE</b>" not allowed !> `loggerE` Method/Constructor/Field match type "**TYPE**" not allowed
<b>异常原因</b> **异常原因**
在查找方法、构造方法以及变量时设置了不允许的参数类型。 在查找方法、构造方法以及变量时设置了不允许的参数类型。
@@ -194,7 +194,7 @@ field {
} }
``` ```
<b>解决方案</b> **解决方案**
在查询中 `param``returnType``type` 中仅接受 `Class``String``VariousClass` 类型的传值,不可传入参数实例。 在查询中 `param``returnType``type` 中仅接受 `Class``String``VariousClass` 类型的传值,不可传入参数实例。
@@ -218,29 +218,29 @@ field {
} }
``` ```
!> `loggerE` NoSuchMethod/NoSuchConstructor/NoSuchField happend in \[<b>NAME</b>\] !> `loggerE` NoSuchMethod/NoSuchConstructor/NoSuchField happend in \[**NAME**\]
<b>异常原因</b> **异常原因**
在查找方法、构造方法以及变量时并未找到目标方法、构造方法以及变量。 在查找方法、构造方法以及变量时并未找到目标方法、构造方法以及变量。
<b>解决方案</b> **解决方案**
请确认你的查询条件是否能正确匹配到目标 `Class` 中的指定方法、构造方法以及变量。 请确认你的查询条件是否能正确匹配到目标 `Class` 中的指定方法、构造方法以及变量。
!> `loggerE` Trying <b>COUNT</b> times and all failure by RemedyPlan !> `loggerE` Trying **COUNT** times and all failure by RemedyPlan
<b>异常原因</b> **异常原因**
使用 `RemedyPlan` 重新查找方法、构造方法时依然没有找到方法、构造方法。 使用 `RemedyPlan` 重新查找方法、构造方法时依然没有找到方法、构造方法。
<b>解决方案</b> **解决方案**
请确认你设置的 `RemedyPlan` 参数以及宿主内存在的 `Class`,再试一次。 请确认你设置的 `RemedyPlan` 参数以及宿主内存在的 `Class`,再试一次。
!> `loggerE` Try to get field instance failed !> `loggerE` Try to get field instance failed
<b>异常原因</b> **异常原因**
在使用变量查询结果的 `get` 方法后并没有成功得到对应的实例。 在使用变量查询结果的 `get` 方法后并没有成功得到对应的实例。
@@ -252,13 +252,13 @@ field {
}.get(instance)... }.get(instance)...
``` ```
<b>解决方案</b> **解决方案**
请确认当前变量所在的实例是静态的还是动态的,并查看错误日志检查传入的实例类型是否正确。 请确认当前变量所在的实例是静态的还是动态的,并查看错误日志检查传入的实例类型是否正确。
!> `loggerE` You must set a condition when finding a Method/Constructor/Field !> `loggerE` You must set a condition when finding a Method/Constructor/Field
<b>异常原因</b> **异常原因**
在查找方法、构造方法以及变量时并未设置任何条件。 在查找方法、构造方法以及变量时并未设置任何条件。
@@ -270,13 +270,13 @@ method {
} }
``` ```
<b>解决方案</b> **解决方案**
请将查询条件补充完整并再试一次。 请将查询条件补充完整并再试一次。
!> `loggerE` Can't find this Method/Constructor/Field \[<b>NAME</b>\] because classSet is null !> `loggerE` Can't find this Method/Constructor/Field \[**NAME**\] because classSet is null
<b>异常原因</b> **异常原因**
在查找方法、构造方法以及变量时所设置的 `Class` 实例为 `null` 在查找方法、构造方法以及变量时所设置的 `Class` 实例为 `null`
@@ -289,13 +289,13 @@ TargetClass.method {
} }
``` ```
<b>解决方案</b> **解决方案**
这种情况比较少见,请检查你要查询的目标 `Class` 是否被正确赋值并检查整个 Hook 流程和使用范围。 这种情况比较少见,请检查你要查询的目标 `Class` 是否被正确赋值并检查整个 Hook 流程和使用范围。
!> `loggerE` Field match type class is not found !> `loggerE` Field match type class is not found
<b>异常原因</b> **异常原因**
在查找变量时所设置的查询条件中 `type``Class` 实例未被找到。 在查找变量时所设置的查询条件中 `type``Class` 实例未被找到。
@@ -309,13 +309,13 @@ field {
} }
``` ```
<b>解决方案</b> **解决方案**
请检查查询条件中 `type``Class` 是否存在,然后再试一次。 请检查查询条件中 `type``Class` 是否存在,然后再试一次。
!> `loggerE` Method match returnType class is not found !> `loggerE` Method match returnType class is not found
<b>异常原因</b> **异常原因**
在查找方法时所设置的查询条件中 `returnType``Class` 实例未被找到。 在查找方法时所设置的查询条件中 `returnType``Class` 实例未被找到。
@@ -329,13 +329,13 @@ method {
} }
``` ```
<b>解决方案</b> **解决方案**
请检查查询条件中 `returnType``Class` 是否存在,然后再试一次。 请检查查询条件中 `returnType``Class` 是否存在,然后再试一次。
!> `loggerE` Method/Constructor match paramType\[<b>INDEX</b>\] class is not found !> `loggerE` Method/Constructor match paramType\[**INDEX**\] class is not found
<b>异常原因</b> **异常原因**
在查找方法、构造方法时所设置的查询条件中 `param``index` 号下标的 `Class` 实例未被找到。 在查找方法、构造方法时所设置的查询条件中 `param``index` 号下标的 `Class` 实例未被找到。
@@ -347,7 +347,7 @@ method {
} }
``` ```
<b>解决方案</b> **解决方案**
请检查查询条件中 `param``index` 号下标的 `Class` 是否存在,然后再试一次。 请检查查询条件中 `param``index` 号下标的 `Class` 是否存在,然后再试一次。
@@ -357,7 +357,7 @@ method {
!> `IllegalStateException` App is dead, You cannot call to appContext !> `IllegalStateException` App is dead, You cannot call to appContext
<b>异常原因</b> **异常原因**
> 第一种情况 > 第一种情况
@@ -383,7 +383,7 @@ encase {
ModuleApplication.appContext... ModuleApplication.appContext...
``` ```
<b>解决方案</b> **解决方案**
> 第一种情况 > 第一种情况
@@ -395,7 +395,7 @@ ModuleApplication.appContext...
!> `IllegalStateException` YukiHookModulePrefs not allowed in Custom Hook API !> `IllegalStateException` YukiHookModulePrefs not allowed in Custom Hook API
<b>异常原因</b> **异常原因**
在 Hook 自身 APP(非 Xposed 模块) 中使用了 `YukiHookModulePrefs` 在 Hook 自身 APP(非 Xposed 模块) 中使用了 `YukiHookModulePrefs`
@@ -414,23 +414,23 @@ class MyApplication : Application() {
} }
``` ```
<b>解决方案</b> **解决方案**
你只能在 [作为 Xposed 模块使用](config/xposed-using) 时使用 `YukiHookModulePrefs`,在 Hook 自身 APP 中请使用原生的 `Sp` 存储。 你只能在 [作为 Xposed 模块使用](config/xposed-using) 时使用 `YukiHookModulePrefs`,在 Hook 自身 APP 中请使用原生的 `Sp` 存储。
!> `IllegalStateException` Xposed modulePackageName load failed, please reset and rebuild it !> `IllegalStateException` Xposed modulePackageName load failed, please reset and rebuild it
<b>异常原因</b> **异常原因**
在 Hook 过程中使用 `YukiHookModulePrefs` 时无法读取装载时的 `modulePackageName` 导致不能确定自身模块的包名。 在 Hook 过程中使用 `YukiHookModulePrefs` 时无法读取装载时的 `modulePackageName` 导致不能确定自身模块的包名。
<b>解决方案</b> **解决方案**
请仔细阅读 [这里](config/xposed-using?id=modulepackagename-参数) 的帮助文档,正确配置模块的 Hook 入口类包名。 请仔细阅读 [这里](config/xposed-using?id=modulepackagename-参数) 的帮助文档,正确配置模块的 Hook 入口类包名。
!> `IllegalStateException` If you want to use module prefs, you must set the context instance first !> `IllegalStateException` If you want to use module prefs, you must set the context instance first
<b>异常原因</b> **异常原因**
在模块中使用了 `YukiHookModulePrefs` 存储数据但并未传入 `Context` 实例。 在模块中使用了 `YukiHookModulePrefs` 存储数据但并未传入 `Context` 实例。
@@ -447,7 +447,7 @@ class MainActivity : AppCompatActivity() {
} }
``` ```
<b>解决方案</b> **解决方案**
`Activity` 中推荐使用 `modulePrefs` 方法来装载 `YukiHookModulePrefs` `Activity` 中推荐使用 `modulePrefs` 方法来装载 `YukiHookModulePrefs`
@@ -466,19 +466,19 @@ class MainActivity : AppCompatActivity() {
} }
``` ```
!> `IllegalStateException` Key-Value type <b>TYPE</b> is not allowed !> `IllegalStateException` Key-Value type **TYPE** is not allowed
<b>异常原因</b> **异常原因**
在使用 `YukiHookModulePrefs``get``put` 方法时传入了不支持的存储类型。 在使用 `YukiHookModulePrefs``get``put` 方法时传入了不支持的存储类型。
<b>解决方案</b> **解决方案**
`YukiHookModulePrefs` 支持的类型只有 `String``Set<String>``Int``Float``Long``Boolean`,请传入支持的类型。 `YukiHookModulePrefs` 支持的类型只有 `String``Set<String>``Int``Float``Long``Boolean`,请传入支持的类型。
!> `IllegalStateException` HookParam Method args index must be >= 0 !> `IllegalStateException` HookParam Method args index must be >= 0
<b>异常原因</b> **异常原因**
`HookParam` 中调用 `args().last()` 但是目标 `param` 为空或 `args` 中的 `index` 设置了小于 0 的数值。 `HookParam` 中调用 `args().last()` 但是目标 `param` 为空或 `args` 中的 `index` 设置了小于 0 的数值。
@@ -496,13 +496,13 @@ injectMember {
} }
``` ```
<b>解决方案</b> **解决方案**
请确认你 Hook 的目标方法、构造方法的方法参数数量是否不为空,且不能对 `args` 的下标设置小于 0 的数值。 请确认你 Hook 的目标方法、构造方法的方法参数数量是否不为空,且不能对 `args` 的下标设置小于 0 的数值。
!> `IllegalStateException` HookParam instance got null! Is this a static member? !> `IllegalStateException` HookParam instance got null! Is this a static member?
<b>异常原因</b> **异常原因**
`HookParam` 中调用 `instance` 变量或 `instance` 方法但获取不到当前实例的对象。 `HookParam` 中调用 `instance` 变量或 `instance` 方法但获取不到当前实例的对象。
@@ -520,13 +520,13 @@ injectMember {
} }
``` ```
<b>解决方案</b> **解决方案**
请确认你 Hook 的方法是否为静态类型,静态类型的方法没有实例,不能使用此功能,若非静态方法,请检查实例是否已经销毁。 请确认你 Hook 的方法是否为静态类型,静态类型的方法没有实例,不能使用此功能,若非静态方法,请检查实例是否已经销毁。
!> `IllegalStateException` Current hook Method type is wrong or null !> `IllegalStateException` Current hook Method type is wrong or null
<b>异常原因</b> **异常原因**
`HookParam` 中调用 `method` 变量但获取不到当前实例的方法实例。 `HookParam` 中调用 `method` 变量但获取不到当前实例的方法实例。
@@ -542,13 +542,13 @@ injectMember {
} }
``` ```
<b>解决方案</b> **解决方案**
请确认你 Hook 的方法是构造方法还是普通方法并使用对应类型的方法获取指定的实例。 请确认你 Hook 的方法是构造方法还是普通方法并使用对应类型的方法获取指定的实例。
!> `IllegalStateException` Current hook Constructor type is wrong or null !> `IllegalStateException` Current hook Constructor type is wrong or null
<b>异常原因</b> **异常原因**
`HookParam` 中调用 `constructor` 变量但获取不到当前实例的方法实例。 `HookParam` 中调用 `constructor` 变量但获取不到当前实例的方法实例。
@@ -564,13 +564,13 @@ injectMember {
} }
``` ```
<b>解决方案</b> **解决方案**
请确认你 Hook 的方法是普通方法还是构造方法并使用对应类型的方法获取指定的实例。 请确认你 Hook 的方法是普通方法还是构造方法并使用对应类型的方法获取指定的实例。
!> `IllegalStateException` HookParam instance cannot cast to <b>TYPE</b> !> `IllegalStateException` HookParam instance cannot cast to **TYPE**
<b>异常原因</b> **异常原因**
`HookParam` 中调用 `instance` 方法指定了错误的类型。 `HookParam` 中调用 `instance` 方法指定了错误的类型。
@@ -586,13 +586,13 @@ injectMember {
} }
``` ```
<b>解决方案</b> **解决方案**
请确认当前 Hook 实例的正确类型并重新填写泛型中的类型,若不能确定请使用 `Any` 或直接使用 `instance` 变量。 请确认当前 Hook 实例的正确类型并重新填写泛型中的类型,若不能确定请使用 `Any` 或直接使用 `instance` 变量。
!> `IllegalStateException` HookParam Method args is empty, mabe not has args !> `IllegalStateException` HookParam Method args is empty, mabe not has args
<b>异常原因</b> **异常原因**
`HookParam` 中调用 `ArgsModifyer.set` 方法但是当前实例的方法参数数组为空。 `HookParam` 中调用 `ArgsModifyer.set` 方法但是当前实例的方法参数数组为空。
@@ -608,13 +608,13 @@ injectMember {
} }
``` ```
<b>解决方案</b> **解决方案**
请确认你 Hook 的目标方法、构造方法的方法参数数量是否不为空,否则你无法使用此功能。 请确认你 Hook 的目标方法、构造方法的方法参数数量是否不为空,否则你无法使用此功能。
!> `IllegalStateException` HookParam Method args index out of bounds, max is <b>NUMBER</b> !> `IllegalStateException` HookParam Method args index out of bounds, max is **NUMBER**
<b>异常原因</b> **异常原因**
`HookParam` 中调用 `ArgsModifyer.set` 方法指定了超出方法参数下标的数组序号。 `HookParam` 中调用 `ArgsModifyer.set` 方法指定了超出方法参数下标的数组序号。
@@ -630,13 +630,13 @@ injectMember {
} }
``` ```
<b>解决方案</b> **解决方案**
请确认你 Hook 的目标方法、构造方法的方法参数个数,并重新设置数组下标。 请确认你 Hook 的目标方法、构造方法的方法参数个数,并重新设置数组下标。
!> `IllegalStateException` PackageParam got null ClassLoader !> `IllegalStateException` PackageParam got null ClassLoader
<b>异常原因</b> **异常原因**
`PackageParam` 中调用了 `appClassLoader` 变量但是无法获取到实例对象。 `PackageParam` 中调用了 `appClassLoader` 变量但是无法获取到实例对象。
@@ -649,13 +649,13 @@ encase {
} }
``` ```
<b>解决方案</b> **解决方案**
这种情况几乎不存在,除非模块被装载的宿主或目标 Xposed 框架自身存在问题,若真的发生了此问题,请携带详细日志进行反馈。 这种情况几乎不存在,除非模块被装载的宿主或目标 Xposed 框架自身存在问题,若真的发生了此问题,请携带详细日志进行反馈。
!> `IllegalStateException` PackageParam got null appContext !> `IllegalStateException` PackageParam got null appContext
<b>异常原因</b> **异常原因**
`PackageParam` 中调用了 `appContext` 变量但是无法获取到实例对象。 `PackageParam` 中调用了 `appContext` 变量但是无法获取到实例对象。
@@ -668,23 +668,23 @@ encase {
} }
``` ```
<b>解决方案</b> **解决方案**
`appContext` 在宿主环境初始化完成之前有大的概率可能是空的,请延迟获取或在宿主的 Hook 方法回调方法体内再使用此变量。 `appContext` 在宿主环境初始化完成之前有大的概率可能是空的,请延迟获取或在宿主的 Hook 方法回调方法体内再使用此变量。
!> `IllegalStateException` VariousClass match failed of those <b>CLASSES</b> !> `IllegalStateException` VariousClass match failed of those **CLASSES**
<b>异常原因</b> **异常原因**
在使用 `VariousClass` 创建不确定的 `Class` 对象时全部的 `Class` 都没有被找到。 在使用 `VariousClass` 创建不确定的 `Class` 对象时全部的 `Class` 都没有被找到。
<b>解决方案</b> **解决方案**
检查当前 Hook 的宿主内是否存在其中能够匹配的 `Class` 后,再试一次。 检查当前 Hook 的宿主内是否存在其中能够匹配的 `Class` 后,再试一次。
!> `IllegalStateException` Cannot get hook class "<b>NAME</b>" cause <b>THROWABLE</b> !> `IllegalStateException` Cannot get hook class "**NAME**" cause **THROWABLE**
<b>异常原因</b> **异常原因**
`hook` 方法体非 `onPrepareHook` 方法内调用了 `instanceClass` 变量且当前 Hook 的 `Class` 不存在。 `hook` 方法体非 `onPrepareHook` 方法内调用了 `instanceClass` 变量且当前 Hook 的 `Class` 不存在。
@@ -697,7 +697,7 @@ TargetClass.hook {
} }
``` ```
<b>解决方案</b> **解决方案**
`hook` 内直接使用 `instanceClass` 是很危险的,若 Class 不存在则会直接导致 Hook 进程“死掉”。 `hook` 内直接使用 `instanceClass` 是很危险的,若 Class 不存在则会直接导致 Hook 进程“死掉”。
@@ -705,7 +705,7 @@ TargetClass.hook {
!> `IllegalStateException` Hook Members is empty, hook aborted !> `IllegalStateException` Hook Members is empty, hook aborted
<b>异常原因</b> **异常原因**
使用了 `hook` 方法体但其中并没有填写内容。 使用了 `hook` 方法体但其中并没有填写内容。
@@ -717,13 +717,13 @@ TargetClass.hook {
} }
``` ```
<b>解决方案</b> **解决方案**
你必须在 `hook` 方法体内加入至少一个 `injectMember` 方法。 你必须在 `hook` 方法体内加入至少一个 `injectMember` 方法。
!> `IllegalStateException` paramTypes is empty, please use emptyParam() instead !> `IllegalStateException` paramTypes is empty, please use emptyParam() instead
<b>异常原因</b> **异常原因**
在查找方法、构造方法时保留了空的 `param` 方法。 在查找方法、构造方法时保留了空的 `param` 方法。
@@ -737,7 +737,7 @@ method {
} }
``` ```
<b>解决方案</b> **解决方案**
若要标识此方法、构造方法没有参数,你可以有如下设置方法。 若要标识此方法、构造方法没有参数,你可以有如下设置方法。

View File

@@ -49,7 +49,7 @@ class MyApplication : Application() {
### [Pine](https://github.com/canyie/pine) ### [Pine](https://github.com/canyie/pine)
> <b>所需 Xposed API 依赖</b> `top.canyie.pine:xposed` > **所需 Xposed API 依赖** `top.canyie.pine:xposed`
> 示例如下 > 示例如下
@@ -68,7 +68,7 @@ override fun attachBaseContext(base: Context?) {
### [SandHook](https://github.com/asLody/SandHook) ### [SandHook](https://github.com/asLody/SandHook)
> <b>所需 Xposed API 依赖</b> `com.swift.sandhook:xposedcompat` 或 `com.swift.sandhook:xposedcompat_new` > **所需 Xposed API 依赖** `com.swift.sandhook:xposedcompat` 或 `com.swift.sandhook:xposedcompat_new`
> 示例如下 > 示例如下
@@ -90,7 +90,7 @@ override fun attachBaseContext(base: Context?) {
### [Whale](https://github.com/asLody/whale) ### [Whale](https://github.com/asLody/whale)
> <b>所需 Xposed API 依赖</b> `com.wind.xposed:xposed-on-whale` > **所需 Xposed API 依赖** `com.wind.xposed:xposed-on-whale`
请参考 [xposed-hook-based-on-whale](https://github.com/WindySha/xposed-hook-based-on-whale)。 请参考 [xposed-hook-based-on-whale](https://github.com/WindySha/xposed-hook-based-on-whale)。

View File

@@ -22,13 +22,13 @@ annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePack
!> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `YukiHookXposedInitProxy` 接口。 !> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `YukiHookXposedInitProxy` 接口。
!> 在你当前项目中的所有 `Class` 标记中<b>只能存在一次</b>,若<b>存在多个声明自动处理程序<u>会在编译时抛出异常</u></b>,你可以自定义其相关参数。 !> 在你当前项目中的所有 `Class` 标记中**只能存在一次**,若**存在多个声明自动处理程序<u>会在编译时抛出异常</u>**,你可以自定义其相关参数。
#### sourcePath 参数 #### sourcePath 参数
`sourcePath` 参数决定了自动处理程序自动查找并匹配你当前项目路径的重要标识,此参数的内容为相对路径匹配,默认参数为 `src/main` `sourcePath` 参数决定了自动处理程序自动查找并匹配你当前项目路径的重要标识,此参数的内容为相对路径匹配,默认参数为 `src/main`
!> 如果你的项目不在 `...app/src/main...` 或你手动使用 `sourceSets` 设置了项目路径,你就需要手动设置 `sourcePath` 参数,<b>否则自动处理程序将无法识别你的项目路径并<u>会在编译时抛出异常</u></b> !> 如果你的项目不在 `...app/src/main...` 或你手动使用 `sourceSets` 设置了项目路径,你就需要手动设置 `sourcePath` 参数,**否则自动处理程序将无法识别你的项目路径并<u>会在编译时抛出异常</u>**
> 示例如下 > 示例如下

View File

@@ -18,33 +18,33 @@
## 语言要求 ## 语言要求
请使用 `Kotlin`,框架部分代码构成同样兼容 `Java` 但基础 Hook 场景的实现<b>可能完全无法使用</b> 请使用 `Kotlin`,框架部分代码构成同样兼容 `Java` 但基础 Hook 场景的实现**可能完全无法使用**
文档全部的 Demo 示例代码都将使用 `Kotlin` 进行描述,如果你完全不会使用 `Kotlin` 那你将有可能无法使用 `YukiHookAPI` 文档全部的 Demo 示例代码都将使用 `Kotlin` 进行描述,如果你完全不会使用 `Kotlin` 那你将有可能无法使用 `YukiHookAPI`
## 功能特性 ## 功能特性
- <b>Xposed 模块开发</b> - **Xposed 模块开发**
自动构建程序可以帮你快速创建一个 Xposed 模块,完全省去配置入口类和 `xposed_init` 文件。 自动构建程序可以帮你快速创建一个 Xposed 模块,完全省去配置入口类和 `xposed_init` 文件。
- <b>轻量优雅</b> - **轻量优雅**
拥有一套强大、优雅和人性化的 `Kotlin Lambda Hook API`,可以帮你快速实现 `Method``Constructor``Field` 的查找以及 Hook。 拥有一套强大、优雅和人性化的 `Kotlin Lambda Hook API`,可以帮你快速实现 `Method``Constructor``Field` 的查找以及 Hook。
- <b>高效调试</b> - **高效调试**
拥有丰富的调试日志功能,细到每个 Hook 方法的名称、所在类以及查找耗时,可进行快速调试和排错。 拥有丰富的调试日志功能,细到每个 Hook 方法的名称、所在类以及查找耗时,可进行快速调试和排错。
- <b>方便移植</b> - **方便移植**
原生支持 Xposed API 用法,并原生对接 Xposed API拥有 Xposed API 的 Hook 框架都能快速对接 Yuki Hook API。 原生支持 Xposed API 用法,并原生对接 Xposed API拥有 Xposed API 的 Hook 框架都能快速对接 Yuki Hook API。
- <b>支持混淆</b> - **支持混淆**
使用 `YukiHookAPI` 构建的 Xposed 模块原生支持 R8 压缩优化混淆,混淆不会破坏 Hook 入口点R8 下无需任何其它配置。 使用 `YukiHookAPI` 构建的 Xposed 模块原生支持 R8 压缩优化混淆,混淆不会破坏 Hook 入口点R8 下无需任何其它配置。
- <b>快速上手</b> - **快速上手**
简单易用,不需要繁琐的配置,不需要十足的开发经验,搭建环境集成依赖即可立即开始使用。 简单易用,不需要繁琐的配置,不需要十足的开发经验,搭建环境集成依赖即可立即开始使用。
@@ -56,7 +56,7 @@
`Kotlin` 作为 Android 主要开发语言以来,这套 API 用起来确实已经不是很优雅了。 `Kotlin` 作为 Android 主要开发语言以来,这套 API 用起来确实已经不是很优雅了。
有没有什么 <b>好用、轻量、优雅</b> 的解决办法呢? 有没有什么 **好用、轻量、优雅** 的解决办法呢?
本着这样的想法,`YukiHookAPI` 诞生了。 本着这样的想法,`YukiHookAPI` 诞生了。

View File

@@ -25,15 +25,15 @@ Xposed Framework
我们可以在宿主(APP)运行时通过注入宿主(APP)来达到控制其行为的最终目的。 我们可以在宿主(APP)运行时通过注入宿主(APP)来达到控制其行为的最终目的。
Xposed 的这种运行方式被称为<b>寄生</b>Xposed 模块跟随宿主的生命周期,在宿主的生命周期内完成自己的生命历程。 Xposed 的这种运行方式被称为**寄生**Xposed 模块跟随宿主的生命周期,在宿主的生命周期内完成自己的生命历程。
我们可以通过反射的方式调用宿主的方法、变量、构造方法,以及使用 `XposedBridge` 所提供的 Hook 操作动态地在宿主(APP)要执行的方法前后插入自己的代码,或完全替换目标,甚至是拦截。 我们可以通过反射的方式调用宿主的方法、变量、构造方法,以及使用 `XposedBridge` 所提供的 Hook 操作动态地在宿主(APP)要执行的方法前后插入自己的代码,或完全替换目标,甚至是拦截。
## 发展过程 ## 发展过程
如今的 Xposed 管理器已完全被其衍生作品替代,而 <b>SuperSU</b> 的时代也已经落幕了,现在,借助 <b>Magisk</b> 使后面的一切又成为了可能。 如今的 Xposed 管理器已完全被其衍生作品替代,而 **SuperSU** 的时代也已经落幕了,现在,借助 **Magisk** 使后面的一切又成为了可能。
> 其发展史大致可分为 <b>Xposed(Dalvik)</b> → <b>Xposed(ART)</b> → <b>Xposed(Magisk)</b> → <b>EdXposed(Riru)</b>/<b>LSPosed(Riru/Zygisk)</b> > 其发展史大致可分为 **Xposed(Dalvik)** → **Xposed(ART)** → **Xposed(Magisk)** → **EdXposed(Riru)**/**LSPosed(Riru/Zygisk)**
## 衍生产品 ## 衍生产品
@@ -46,13 +46,13 @@ App's Environment
... ...
``` ```
通过 Xposed 的运行原理,从而衍生了很多同类型框架,随着当今时代的移动设备获取 Root 权限甚至刷机越来越困难且不是刚需的时候,一些免 Root 框架也随之产生,例如<b>太极</b> 通过 Xposed 的运行原理,从而衍生了很多同类型框架,随着当今时代的移动设备获取 Root 权限甚至刷机越来越困难且不是刚需的时候,一些免 Root 框架也随之产生,例如**太极**
这些在 ART 层面上的 Hook 框架同样也可不借助 Xposed API 完成其和 Xposed 原理一样的 Hook 流程,免 Root 的运行原理为修改 APK 并将 Hook 进程注入宿主,通过外部模块对其进行控制。 这些在 ART 层面上的 Hook 框架同样也可不借助 Xposed API 完成其和 Xposed 原理一样的 Hook 流程,免 Root 的运行原理为修改 APK 并将 Hook 进程注入宿主,通过外部模块对其进行控制。
另外一种产品就是利用 Android 运行环境现有的功能虚拟出一个完全与当前设备系统一样的环境,并在其中运行 APP这个就是虚拟 APP 技术 <b>VirtualApp</b>,后来衍生为 <b>VirtualXposed</b> 另外一种产品就是利用 Android 运行环境现有的功能虚拟出一个完全与当前设备系统一样的环境,并在其中运行 APP这个就是虚拟 APP 技术 **VirtualApp**,后来衍生为 **VirtualXposed**
上述提到的免 Root 框架分别为<b>太极/无极</b><b>VirtualXposed/SandVXposed</b> 上述提到的免 Root 框架分别为**太极/无极**、**VirtualXposed/SandVXposed**
## YukiHookAPI 做了什么 ## YukiHookAPI 做了什么

View File

@@ -61,7 +61,7 @@ dependencies {
} }
``` ```
请将 <b>&lt;version&gt;</b> 修改为 [这里](about/changelog) 的最新版本。 请将 **&lt;version&gt;** 修改为 [这里](about/changelog) 的最新版本。
!> `YukiHookAPI``api``ksp-xposed` 依赖的版本必须一一对应,否则将会造成版本不匹配错误。 !> `YukiHookAPI``api``ksp-xposed` 依赖的版本必须一一对应,否则将会造成版本不匹配错误。

View File

@@ -157,7 +157,7 @@ Test::class.java.method {
}.get(instance).string() // 得到方法的结果 }.get(instance).string() // 得到方法的结果
``` ```
是的,对于确切不会变化的方法,你可以精简查询条件,<b>`YukiHookAPI` 会默认按照字节码顺序匹配第一个查询到的结果</b> 是的,对于确切不会变化的方法,你可以精简查询条件,**`YukiHookAPI` 会默认按照字节码顺序匹配第一个查询到的结果**
问题又来了,这个 `Class` 中有一个 `release` 方法,但是它的方法参数好长,而且很多的类型都无法直接得到。 问题又来了,这个 `Class` 中有一个 `release` 方法,但是它的方法参数好长,而且很多的类型都无法直接得到。
@@ -578,7 +578,7 @@ method {
#### 必要的查询条件 #### 必要的查询条件
!> 在方法、构造方法查询条件中,<u><b>即使是无参的方法也需要设置查询条件</b></u> !> 在方法、构造方法查询条件中,<u>**即使是无参的方法也需要设置查询条件**</u>
假设我们有如下的 `Class` 假设我们有如下的 `Class`
@@ -607,13 +607,13 @@ TestFoo::class.java.method {
} }
``` ```
但是,上面的例子<u><b>是错误的</b></u> 但是,上面的例子<u>**是错误的**</u>
你会发现这个 `Class` 中有两个 `foo` 方法,其中一个带有方法参数。 你会发现这个 `Class` 中有两个 `foo` 方法,其中一个带有方法参数。
由于上述例子没有设置 `param` 的查询条件,得到的结果将会是匹配名称且匹配字节码顺序的第一个方法 `public void foo(String string)`,而不是我们需要的最后一个方法。 由于上述例子没有设置 `param` 的查询条件,得到的结果将会是匹配名称且匹配字节码顺序的第一个方法 `public void foo(String string)`,而不是我们需要的最后一个方法。
这是一个<b>经常会出现的错误</b><b>没有方法参数就会丢失方法参数查询条件</b>的使用问题。 这是一个**经常会出现的错误****没有方法参数就会丢失方法参数查询条件**的使用问题。
正确的使用方法如下。 正确的使用方法如下。
@@ -687,7 +687,7 @@ field {
} }
``` ```
在 Java 中常见的基本类型都已被封装为 <b>类型 + Type</b> 的方式,例如 `IntType``FloatType` 在 Java 中常见的基本类型都已被封装为 **类型 + Type** 的方式,例如 `IntType``FloatType`
相应地,数组类型也有方便的使用方法,假设我们要获得 `String[]` 类型的数组。 相应地,数组类型也有方便的使用方法,假设我们要获得 `String[]` 类型的数组。
@@ -697,7 +697,7 @@ field {
同时由于 `String` 是常见类型,所以还可以直接使用 `StringArrayClass` 来得到这个类型。 同时由于 `String` 是常见类型,所以还可以直接使用 `StringArrayClass` 来得到这个类型。
一些常见的 Hook 中查询的方法,都有其对应的封装类型以供使用,格式为 <b>类型 + Class</b> 一些常见的 Hook 中查询的方法,都有其对应的封装类型以供使用,格式为 **类型 + Class**
例如 Hook `onCreate` 方法需要查询 `Bundle::class.java` 类型。 例如 Hook `onCreate` 方法需要查询 `Bundle::class.java` 类型。