mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 09:45:19 +08:00
Merge document file
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
加入我们 [点击加入 Telegram 群组](https://t.me/YukiHookAPI)
|
||||
|
||||
在<b>酷安</b>找到我 [@星夜不荟](http://www.coolapk.com/u/876977)
|
||||
在**酷安**找到我 [@星夜不荟](http://www.coolapk.com/u/876977)
|
||||
|
||||
## 助力维护
|
||||
|
||||
|
@@ -4,11 +4,11 @@
|
||||
inner class IndexTypeCondition(private val type: IndexConfigType)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 字节码下标筛选实现类。
|
||||
|
||||
@@ -18,11 +18,11 @@ inner class IndexTypeCondition(private val type: IndexConfigType)
|
||||
fun index(num: Int)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置下标。
|
||||
|
||||
@@ -36,11 +36,11 @@ fun index(num: Int)
|
||||
fun index(): IndexTypeConditionSort
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到下标。
|
||||
|
||||
@@ -50,11 +50,11 @@ fun index(): IndexTypeConditionSort
|
||||
inner class IndexTypeConditionSort
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 字节码下标排序实现类。
|
||||
|
||||
@@ -64,11 +64,11 @@ inner class IndexTypeConditionSort
|
||||
fun first()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置满足条件的第一个。
|
||||
|
||||
@@ -78,11 +78,11 @@ fun first()
|
||||
fun last()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置满足条件的最后一个。
|
||||
|
||||
@@ -92,10 +92,10 @@ fun last()
|
||||
fun reverse(num: Int)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置倒序下标。
|
@@ -1,10 +1,10 @@
|
||||
## ComponentTypeFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关组件的 `Class` 内容,跟随版本更新会逐一进行增加。
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
class ConstructorFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -12,7 +12,7 @@ class ConstructorFinder(override val hookInstance: YukiHookCreater.MemberHookCre
|
||||
|
||||
合并到 `BaseFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Constructor` 查找类。
|
||||
|
||||
@@ -22,11 +22,11 @@ class ConstructorFinder(override val hookInstance: YukiHookCreater.MemberHookCre
|
||||
var paramCount: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Constructor` 参数个数。
|
||||
|
||||
@@ -40,11 +40,11 @@ var paramCount: Int
|
||||
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Constructor` 标识符筛选条件。
|
||||
|
||||
@@ -58,11 +58,11 @@ fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
fun emptyParam(): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.75` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Constructor` 空参数、无参数。
|
||||
|
||||
@@ -72,11 +72,11 @@ fun emptyParam(): IndexTypeCondition
|
||||
fun param(vararg paramType: Any): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Constructor` 参数。
|
||||
|
||||
@@ -94,11 +94,11 @@ fun param(vararg paramType: Any): IndexTypeCondition
|
||||
fun paramCount(num: Int): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Constructor` 参数个数。
|
||||
|
||||
@@ -114,11 +114,11 @@ fun paramCount(num: Int): IndexTypeCondition
|
||||
inner class RemedyPlan
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Constructor` 重查找实现类,可累计失败次数直到查找成功。
|
||||
|
||||
@@ -128,11 +128,11 @@ inner class RemedyPlan
|
||||
fun constructor(initiate: ConstructorFinder.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建需要重新查找的 `Constructor`。
|
||||
|
||||
@@ -144,11 +144,11 @@ fun constructor(initiate: ConstructorFinder.() -> Unit)
|
||||
inner class Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `RemedyPlan` 结果实现类。
|
||||
|
||||
@@ -158,15 +158,15 @@ inner class Result
|
||||
fun onFind(initiate: Constructor<*>.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 当在 `RemedyPlan` 中找到结果时。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以方便地对重查找的 `Constructor` 实现 `onFind` 方法。
|
||||
|
||||
@@ -186,11 +186,11 @@ constructor {
|
||||
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Constructor` 查找结果实现类。
|
||||
|
||||
@@ -200,15 +200,15 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建监听结果事件方法体。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以使用 `lambda` 形式创建 `Result` 类。
|
||||
|
||||
@@ -230,17 +230,17 @@ constructor {
|
||||
fun get(): Instance
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获得 `Constructor` 实例处理类。
|
||||
|
||||
!> 若你设置了 `remedys` 请使用 `wait` 回调结果方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以通过获得方法所在实例来执行构造方法创建新的实例对象。
|
||||
|
||||
@@ -278,11 +278,11 @@ constructor {
|
||||
fun give(): Constructor<*>?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到构造方法本身。
|
||||
|
||||
@@ -292,11 +292,11 @@ fun give(): Constructor<*>?
|
||||
fun wait(initiate: Instance.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获得 `Constructor` 实例处理类,配合 `RemedyPlan` 使用。
|
||||
|
||||
@@ -310,15 +310,15 @@ fun wait(initiate: Instance.() -> Unit)
|
||||
fun remedys(initiate: RemedyPlan.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建构造方法重查找功能。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
当你遇到一种构造方法可能存在不同形式的存在时,可以使用 `RemedyPlan` 重新查找它,而没有必要使用 `onNoSuchConstructor` 捕获异常二次查找构造方法。
|
||||
|
||||
@@ -345,11 +345,11 @@ constructor {
|
||||
fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听找不到构造方法时。
|
||||
|
||||
@@ -361,11 +361,11 @@ fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result
|
||||
fun ignoredError(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略任何错误发出的警告。
|
||||
|
||||
@@ -377,11 +377,11 @@ fun ignoredError(): Result
|
||||
inner class Instance
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Constructor` 实例处理类。
|
||||
|
||||
@@ -391,11 +391,11 @@ inner class Instance
|
||||
fun call(vararg param: Any?): Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行构造方法创建目标实例,不指定目标实例类型。
|
||||
|
||||
@@ -405,10 +405,10 @@ fun call(vararg param: Any?): Any?
|
||||
fun <T> newInstance(vararg param: Any?): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行构造方法创建目标实例 ,指定 `T` 目标实例类型。
|
@@ -4,11 +4,11 @@
|
||||
class CurrentClass(private val instance: Class<*>, private val self: Any)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`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
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`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
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 调用当前实例中的方法。
|
@@ -4,7 +4,7 @@
|
||||
class FieldFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>?) : BaseFinder()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -12,13 +12,13 @@ class FieldFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?,
|
||||
|
||||
合并到 `BaseFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Field` 查找类。
|
||||
|
||||
### ~~classSet [field]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -30,7 +30,7 @@ class FieldFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?,
|
||||
var name: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -38,7 +38,7 @@ var name: String
|
||||
|
||||
允许不填写名称
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Field` 名称。
|
||||
|
||||
@@ -50,11 +50,11 @@ var name: String
|
||||
var type: Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Field` 类型。
|
||||
|
||||
@@ -66,11 +66,11 @@ var type: Any?
|
||||
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Field` 标识符筛选条件。
|
||||
|
||||
@@ -84,11 +84,11 @@ fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
fun order(): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 顺序筛选字节码的下标。
|
||||
|
||||
@@ -98,11 +98,11 @@ fun order(): IndexTypeCondition
|
||||
fun name(value: String): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Field` 名称。
|
||||
|
||||
@@ -116,11 +116,11 @@ fun name(value: String): IndexTypeCondition
|
||||
fun type(value: Any): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Field` 类型。
|
||||
|
||||
@@ -134,11 +134,11 @@ fun type(value: Any): IndexTypeCondition
|
||||
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Field` 查找结果实现类。
|
||||
|
||||
@@ -148,15 +148,15 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建监听结果事件方法体。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以使用 `lambda` 形式创建 `Result` 类。
|
||||
|
||||
@@ -179,15 +179,15 @@ field {
|
||||
```kotlin
|
||||
fun get(instance: Any?): Instance
|
||||
```
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量实例处理类。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以轻松地得到 `Field` 的实例以及使用它进行设置实例。
|
||||
|
||||
@@ -215,11 +215,11 @@ field {
|
||||
fun give(): Field?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量本身。
|
||||
|
||||
@@ -229,11 +229,11 @@ fun give(): Field?
|
||||
fun onNoSuchField(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听找不到变量时。
|
||||
|
||||
@@ -243,11 +243,11 @@ fun onNoSuchField(initiate: (Throwable) -> Unit): Result
|
||||
fun ignoredError(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略任何错误发出的警告。
|
||||
|
||||
@@ -259,11 +259,11 @@ fun ignoredError(): Result
|
||||
inner class Instance(private val instance: Any?, val self: Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Field` 实例变量处理类。
|
||||
|
||||
@@ -273,7 +273,7 @@ inner class Instance(private val instance: Any?, val self: Any?)
|
||||
fun <T> cast(): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -283,7 +283,7 @@ fun <T> cast(): T?
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量实例。
|
||||
|
||||
@@ -293,11 +293,11 @@ fun <T> cast(): T?
|
||||
fun byte(): Byte?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Byte 实例。
|
||||
|
||||
@@ -307,7 +307,7 @@ fun byte(): Byte?
|
||||
fun int(): Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -317,7 +317,7 @@ fun int(): Int
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Int 实例。
|
||||
|
||||
@@ -327,7 +327,7 @@ fun int(): Int
|
||||
fun long(): Long
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -337,7 +337,7 @@ fun long(): Long
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Long 实例。
|
||||
|
||||
@@ -346,7 +346,7 @@ fun long(): Long
|
||||
```kotlin
|
||||
fun short(): Short
|
||||
```
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -356,7 +356,7 @@ fun short(): Short
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Short 实例。
|
||||
|
||||
@@ -366,7 +366,7 @@ fun short(): Short
|
||||
fun double(): Double
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -376,7 +376,7 @@ fun double(): Double
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Double 实例。
|
||||
|
||||
@@ -385,7 +385,7 @@ fun double(): Double
|
||||
```kotlin
|
||||
fun float(): Float
|
||||
```
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -395,7 +395,7 @@ fun float(): Float
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Float 实例。
|
||||
|
||||
@@ -405,7 +405,7 @@ fun float(): Float
|
||||
fun string(): String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -415,7 +415,7 @@ fun string(): String
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 String 实例。
|
||||
|
||||
@@ -425,11 +425,11 @@ fun string(): String
|
||||
fun char(): Char
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Char 实例。
|
||||
|
||||
@@ -439,7 +439,7 @@ fun char(): Char
|
||||
fun boolean(): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -449,7 +449,7 @@ fun boolean(): Boolean
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Boolean 实例。
|
||||
|
||||
@@ -458,7 +458,7 @@ fun boolean(): Boolean
|
||||
```kotlin
|
||||
fun any(): Any?
|
||||
```
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -468,7 +468,7 @@ fun any(): Any?
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Any 实例。
|
||||
|
||||
@@ -478,11 +478,11 @@ fun any(): Any?
|
||||
inline fun <reified T> array(): Array<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 Array 实例。
|
||||
|
||||
@@ -492,11 +492,11 @@ inline fun <reified T> array(): Array<T>
|
||||
inline fun <reified T> list(): List<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到变量 List 实例。
|
||||
|
||||
@@ -506,11 +506,11 @@ inline fun <reified T> list(): List<T>
|
||||
fun set(any: Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置变量实例。
|
||||
|
||||
@@ -519,11 +519,11 @@ fun set(any: Any?)
|
||||
```kotlin
|
||||
fun setTrue()
|
||||
```
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置变量实例为 `true`。
|
||||
|
||||
@@ -535,11 +535,11 @@ fun setTrue()
|
||||
fun setFalse()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置变量实例为 `false`。
|
||||
|
||||
@@ -551,10 +551,10 @@ fun setFalse()
|
||||
fun setNull()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置变量实例为 `null`。
|
@@ -1,10 +1,10 @@
|
||||
## GraphicsTypeFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关 `Graphics` 的 `Class` 内容,跟随版本更新会逐一进行增加。
|
||||
|
||||
|
@@ -4,11 +4,11 @@
|
||||
class HookClass(var instance: Class<*>?, var name: String, var throwable: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建一个当前 Hook 的 `Class` 接管类。
|
||||
|
||||
|
@@ -4,11 +4,11 @@
|
||||
class HookParam(private val createrInstance: YukiHookCreater, private val wrapper: HookParamWrapper)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> Hook 方法、构造类的目标对象实现类。
|
||||
|
||||
@@ -18,17 +18,17 @@ class HookParam(private val createrInstance: YukiHookCre
|
||||
val args: Array<Any?>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
在 `v1.0` 添加
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 对象 `member` 或 `constructor` 的参数对象数组。
|
||||
|
||||
### ~~firstArgs [field]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -38,7 +38,7 @@ val args: Array<Any?>
|
||||
|
||||
### ~~lastArgs [field]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -52,11 +52,11 @@ val args: Array<Any?>
|
||||
val instance: Any
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 实例的对象。
|
||||
|
||||
@@ -68,11 +68,11 @@ val instance: Any
|
||||
val instanceClass: Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 实例的类对象。
|
||||
|
||||
@@ -82,11 +82,11 @@ val instanceClass: Class<*>
|
||||
val method: Method
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 对象的方法。
|
||||
|
||||
@@ -96,11 +96,11 @@ val method: Method
|
||||
val constructor: Constructor
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 对象的构造方法。
|
||||
|
||||
@@ -110,11 +110,11 @@ val constructor: Constructor
|
||||
var result: Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取、设置当前 Hook 对象的 `method` 或 `constructor` 的返回值。
|
||||
|
||||
@@ -124,17 +124,17 @@ var result: Any?
|
||||
inline fun <reified T> result(): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.75` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 对象的 `method` 或 `constructor` 的返回值 `T`。
|
||||
|
||||
### ~~firstArgs [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -142,7 +142,7 @@ inline fun <reified T> result(): T?
|
||||
|
||||
### ~~lastArgs [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -154,15 +154,15 @@ inline fun <reified T> result(): T?
|
||||
inline fun <reified T> instance(): T
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 实例的对象 `T`。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以通过 `instance` 方法轻松使用泛型 `cast` 为目标对象的类型。
|
||||
|
||||
@@ -178,11 +178,11 @@ instance<Activity>().finish()
|
||||
fun args(): ArgsIndexCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.75` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 对象的 `method` or `constructor` 的参数数组下标实例化类。
|
||||
|
||||
@@ -192,7 +192,7 @@ fun args(): ArgsIndexCondition
|
||||
fun args(index: Int): ArgsModifyer
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -200,11 +200,11 @@ fun args(index: Int): ArgsModifyer
|
||||
|
||||
默认值 `index = 0` 移动到新的使用方法 `args().first()`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 对象的 `method` 或 `constructor` 的参数实例化对象类。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以通过 `args` 方法修改当前 Hook 实例的方法、构造方法的参数内容。
|
||||
|
||||
@@ -268,15 +268,15 @@ args(index = 1).setFalse()
|
||||
fun <T> Member.invokeOriginal(vararg args: Any?): Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行原始 `Member`。
|
||||
|
||||
<b>功能实例</b>
|
||||
**功能实例**
|
||||
|
||||
此方法可以 `invoke` 原始未经 Hook 的 `Member` 对象,取决于原始 `Member` 的参数和类型。
|
||||
|
||||
@@ -292,11 +292,11 @@ member.invokeOriginal("test value")
|
||||
fun resultTrue()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置当前 Hook 对象方法的 `result` 返回值为 `true`。
|
||||
|
||||
@@ -308,11 +308,11 @@ fun resultTrue()
|
||||
fun resultFalse()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置当前 Hook 对象方法的 `result` 返回值为 `false`。
|
||||
|
||||
@@ -324,11 +324,11 @@ fun resultFalse()
|
||||
fun resultNull()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
!> 此方法将强制设置 Hook 对象方法的 `result` 为 `null`。
|
||||
|
||||
@@ -338,11 +338,11 @@ fun resultNull()
|
||||
inner class ArgsIndexCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.75` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 对方法参数的数组下标进行实例化类。
|
||||
|
||||
@@ -352,11 +352,11 @@ inner class ArgsIndexCondition
|
||||
fun first(): ArgsModifyer
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.75` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 对象的 `method` or `constructor` 的参数数组第一位。
|
||||
|
||||
@@ -366,11 +366,11 @@ fun first(): ArgsModifyer
|
||||
fun last(): ArgsModifyer
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.75` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 对象的 `method` or `constructor` 的参数数组最后一位。
|
||||
|
||||
@@ -380,11 +380,11 @@ fun last(): ArgsModifyer
|
||||
inner class ArgsModifyer(private val index: Int)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 对方法参数的修改进行实例化类。
|
||||
|
||||
@@ -394,7 +394,7 @@ inner class ArgsModifyer(private val index: Int)
|
||||
fun <T> cast(): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -402,7 +402,7 @@ fun <T> cast(): T?
|
||||
|
||||
修改 ~~`of`~~ 为 `cast`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 `T`。
|
||||
|
||||
@@ -412,11 +412,11 @@ fun <T> cast(): T?
|
||||
fun byte(): Byte?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Byte。
|
||||
|
||||
@@ -426,7 +426,7 @@ fun byte(): Byte?
|
||||
fun int(): Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -434,7 +434,7 @@ fun int(): Int
|
||||
|
||||
修改 ~~`ofInt`~~ 为 `int`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Int。
|
||||
|
||||
@@ -444,7 +444,7 @@ fun int(): Int
|
||||
fun long(): Long
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -452,7 +452,7 @@ fun long(): Long
|
||||
|
||||
修改 ~~`ofLong`~~ 为 `long`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Long。
|
||||
|
||||
@@ -462,7 +462,7 @@ fun long(): Long
|
||||
fun short(): Short
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -470,7 +470,7 @@ fun short(): Short
|
||||
|
||||
修改 ~~`ofShort`~~ 为 `short`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Short。
|
||||
|
||||
@@ -480,7 +480,7 @@ fun short(): Short
|
||||
fun double(): Double
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -488,7 +488,7 @@ fun double(): Double
|
||||
|
||||
修改 ~~`ofDouble`~~ 为 `double`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Double。
|
||||
|
||||
@@ -498,7 +498,7 @@ fun double(): Double
|
||||
fun float(): Float
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -506,7 +506,7 @@ fun float(): Float
|
||||
|
||||
修改 ~~`ofFloat`~~ 为 `float`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Float。
|
||||
|
||||
@@ -516,7 +516,7 @@ fun float(): Float
|
||||
fun string(): String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -524,7 +524,7 @@ fun string(): String
|
||||
|
||||
修改 ~~`ofString`~~ 为 `string`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 String。
|
||||
|
||||
@@ -534,11 +534,11 @@ fun string(): String
|
||||
fun char(): Char
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Char。
|
||||
|
||||
@@ -548,7 +548,7 @@ fun char(): Char
|
||||
fun boolean(): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
@@ -556,7 +556,7 @@ fun boolean(): Boolean
|
||||
|
||||
修改 ~~`ofBoolean`~~ 为 `boolean`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Boolean。
|
||||
|
||||
@@ -566,11 +566,11 @@ fun boolean(): Boolean
|
||||
fun any(): Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.77` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Any。
|
||||
|
||||
@@ -580,11 +580,11 @@ fun any(): Any?
|
||||
inline fun <reified T> array(): Array<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 Array。
|
||||
|
||||
@@ -593,11 +593,11 @@ inline fun <reified T> array(): Array<T>
|
||||
inline fun <reified T> list(): List<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法参数的实例对象 List。
|
||||
|
||||
@@ -607,11 +607,11 @@ inline fun <reified T> list(): List<T>
|
||||
fun <T> set(any: T?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置方法参数的实例对象。
|
||||
|
||||
@@ -621,11 +621,11 @@ fun <T> set(any: T?)
|
||||
fun setNull()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置方法参数的实例对象为 `null`。
|
||||
|
||||
@@ -635,11 +635,11 @@ fun setNull()
|
||||
fun setTrue()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置方法参数的实例对象为 `true`。
|
||||
|
||||
@@ -651,11 +651,11 @@ fun setTrue()
|
||||
fun setFalse()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置方法参数的实例对象为 `false`。
|
||||
|
||||
|
@@ -4,14 +4,14 @@
|
||||
annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePackageName: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 标识 `YukiHookAPI` 注入 Xposed 入口的类注解。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
详情请参考 [InjectYukiHookWithXposed 注解](config/xposed-using?id=injectyukihookwithxposed-注解)。
|
@@ -1,10 +1,10 @@
|
||||
## LoggerFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 `XposedBridge.log` 打印日志的功能。
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
fun loggerD(tag: String, msg: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `D`。
|
||||
|
||||
@@ -30,11 +30,11 @@ fun loggerD(tag: String, msg: String)
|
||||
fun loggerI(tag: String, msg: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `I`。
|
||||
|
||||
@@ -46,11 +46,11 @@ fun loggerI(tag: String, msg: String)
|
||||
fun loggerW(tag: String, msg: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `W`。
|
||||
|
||||
@@ -62,11 +62,11 @@ fun loggerW(tag: String, msg: String)
|
||||
fun loggerE(tag: String, msg: String, e: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
class MethodFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -12,7 +12,7 @@ class MethodFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?
|
||||
|
||||
合并到 `BaseFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Method` 查找类。
|
||||
|
||||
@@ -22,7 +22,7 @@ class MethodFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?
|
||||
var name: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -30,7 +30,7 @@ var name: String
|
||||
|
||||
允许不填写名称
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 名称。
|
||||
|
||||
@@ -42,11 +42,11 @@ var name: String
|
||||
var paramCount: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 参数个数。
|
||||
|
||||
@@ -60,11 +60,11 @@ var paramCount: Int
|
||||
var returnType: Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 返回值,可不填写返回值,默认模糊查找并取第一个匹配的 `Method`。
|
||||
|
||||
@@ -74,11 +74,11 @@ var returnType: Any?
|
||||
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 标识符筛选条件。
|
||||
|
||||
@@ -92,11 +92,11 @@ fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
fun emptyParam(): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.75` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 空参数、无参数。
|
||||
|
||||
@@ -106,11 +106,11 @@ fun emptyParam(): IndexTypeCondition
|
||||
fun param(vararg paramType: Any): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 参数。
|
||||
|
||||
@@ -128,11 +128,11 @@ fun param(vararg paramType: Any): IndexTypeCondition
|
||||
fun order(): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 顺序筛选字节码的下标。
|
||||
|
||||
@@ -142,11 +142,11 @@ fun order(): IndexTypeCondition
|
||||
fun name(value: String): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 名称。
|
||||
|
||||
@@ -160,11 +160,11 @@ fun name(value: String): IndexTypeCondition
|
||||
fun paramCount(num: Int): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 参数个数。
|
||||
|
||||
@@ -180,11 +180,11 @@ fun paramCount(num: Int): IndexTypeCondition
|
||||
fun returnType(value: Any): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 设置 `Method` 返回值。
|
||||
|
||||
@@ -198,11 +198,11 @@ fun returnType(value: Any): IndexTypeCondition
|
||||
inner class RemedyPlan
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Method` 重查找实现类,可累计失败次数直到查找成功。
|
||||
|
||||
@@ -212,11 +212,11 @@ inner class RemedyPlan
|
||||
fun method(initiate: MethodFinder.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建需要重新查找的 `Method`。
|
||||
|
||||
@@ -228,11 +228,11 @@ fun method(initiate: MethodFinder.() -> Unit): Result
|
||||
inner class Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `RemedyPlan` 结果实现类。
|
||||
|
||||
@@ -242,15 +242,15 @@ inner class Result
|
||||
fun onFind(initiate: Method.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 当在 `RemedyPlan` 中找到结果时。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以方便地对重查找的 `Method` 实现 `onFind` 方法。
|
||||
|
||||
@@ -270,11 +270,11 @@ method {
|
||||
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Method` 查找结果实现类。
|
||||
|
||||
@@ -284,15 +284,15 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建监听结果事件方法体。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以使用 `lambda` 形式创建 `Result` 类。
|
||||
|
||||
@@ -314,17 +314,17 @@ method {
|
||||
fun get(instance: Any?): Instance
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获得 `Method` 实例处理类。
|
||||
|
||||
!> 若你设置了 `remedys` 请使用 `wait` 回调结果方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以通过获得方法所在实例来执行方法。
|
||||
|
||||
@@ -352,11 +352,11 @@ method {
|
||||
fun give(): Method?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到方法本身。
|
||||
|
||||
@@ -366,11 +366,11 @@ fun give(): Method?
|
||||
fun wait(instance: Any?, initiate: Instance.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获得 `Method` 实例处理类,配合 `RemedyPlan` 使用。
|
||||
|
||||
@@ -384,15 +384,15 @@ fun wait(instance: Any?, initiate: Instance.() -> Unit)
|
||||
fun remedys(initiate: RemedyPlan.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建方法重查找功能。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
当你遇到一种方法可能存在不同形式的存在时,可以使用 `RemedyPlan` 重新查找它,而没有必要使用 `onNoSuchMethod` 捕获异常二次查找方法。
|
||||
|
||||
@@ -419,11 +419,11 @@ method {
|
||||
fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听找不到方法时。
|
||||
|
||||
@@ -435,11 +435,11 @@ fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result
|
||||
fun ignoredError(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略任何错误发出的警告。
|
||||
|
||||
@@ -451,11 +451,11 @@ fun ignoredError(): Result
|
||||
inner class Instance(private val instance: Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `Method` 实例处理类。
|
||||
|
||||
@@ -465,11 +465,11 @@ inner class Instance(private val instance: Any?)
|
||||
fun call(vararg param: Any?): Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,不指定返回值类型。
|
||||
|
||||
@@ -479,11 +479,11 @@ fun call(vararg param: Any?): Any?
|
||||
fun <T> invoke(vararg param: Any?): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 `T` 返回值类型。
|
||||
|
||||
@@ -493,11 +493,11 @@ fun <T> invoke(vararg param: Any?): T?
|
||||
fun byte(vararg param: Any?): Byte?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 Byte 返回值类型。
|
||||
|
||||
@@ -507,7 +507,7 @@ fun byte(vararg param: Any?): Byte?
|
||||
fun int(vararg param: Any?): Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -515,7 +515,7 @@ fun int(vararg param: Any?): Int
|
||||
|
||||
修改 ~~`callInt`~~ 为 `int`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 Int 返回值类型。
|
||||
|
||||
@@ -525,7 +525,7 @@ fun int(vararg param: Any?): Int
|
||||
fun long(vararg param: Any?): Long
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -533,7 +533,7 @@ fun long(vararg param: Any?): Long
|
||||
|
||||
修改 ~~`callLong`~~ 为 `long`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 Long 返回值类型。
|
||||
|
||||
@@ -543,7 +543,7 @@ fun long(vararg param: Any?): Long
|
||||
fun short(vararg param: Any?): Short
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -551,7 +551,7 @@ fun short(vararg param: Any?): Short
|
||||
|
||||
修改 ~~`callShort`~~ 为 `short`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 Short 返回值类型。
|
||||
|
||||
@@ -561,7 +561,7 @@ fun short(vararg param: Any?): Short
|
||||
fun double(vararg param: Any?): Double
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -569,7 +569,7 @@ fun double(vararg param: Any?): Double
|
||||
|
||||
修改 ~~`callDouble`~~ 为 `double`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 Double 返回值类型。
|
||||
|
||||
@@ -579,7 +579,7 @@ fun double(vararg param: Any?): Double
|
||||
fun float(vararg param: Any?): Float
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -587,7 +587,7 @@ fun float(vararg param: Any?): Float
|
||||
|
||||
修改 ~~`callFloat`~~ 为 `float`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 Float 返回值类型。
|
||||
|
||||
@@ -597,7 +597,7 @@ fun float(vararg param: Any?): Float
|
||||
fun string(vararg param: Any?): String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -605,7 +605,7 @@ fun string(vararg param: Any?): String
|
||||
|
||||
修改 ~~`callString`~~ 为 `string`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 String 返回值类型。
|
||||
|
||||
@@ -615,11 +615,11 @@ fun string(vararg param: Any?): String
|
||||
fun char(vararg param: Any?): Char
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 Char 返回值类型。
|
||||
|
||||
@@ -629,7 +629,7 @@ fun char(vararg param: Any?): Char
|
||||
fun boolean(vararg param: Any?): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
@@ -637,7 +637,7 @@ fun boolean(vararg param: Any?): Boolean
|
||||
|
||||
修改 ~~`callBoolean`~~ 为 `boolean`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 Boolean 返回值类型。
|
||||
|
||||
@@ -647,11 +647,11 @@ fun boolean(vararg param: Any?): Boolean
|
||||
inline fun <reified T> array(vararg param: Any?): Array<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 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>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 执行方法,指定 List 返回值类型。
|
@@ -4,11 +4,11 @@
|
||||
class ModifierRules
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是一个 `Member` 描述符定义类。
|
||||
|
||||
@@ -20,11 +20,11 @@ class ModifierRules
|
||||
fun asPublic()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `public`。
|
||||
|
||||
@@ -34,11 +34,11 @@ fun asPublic()
|
||||
fun asPrivate()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `private`。
|
||||
|
||||
@@ -48,11 +48,11 @@ fun asPrivate()
|
||||
fun asProtected()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `protected`。
|
||||
|
||||
@@ -62,11 +62,11 @@ fun asProtected()
|
||||
fun asStatic()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `static`。
|
||||
|
||||
@@ -80,11 +80,11 @@ fun asStatic()
|
||||
fun asFinal()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `final`。
|
||||
|
||||
@@ -96,11 +96,11 @@ fun asFinal()
|
||||
fun asSynchronized()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `synchronized`。
|
||||
|
||||
@@ -110,11 +110,11 @@ fun asSynchronized()
|
||||
fun asVolatile()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `volatile`。
|
||||
|
||||
@@ -124,11 +124,11 @@ fun asVolatile()
|
||||
fun asTransient()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `transient`。
|
||||
|
||||
@@ -138,11 +138,11 @@ fun asTransient()
|
||||
fun asNative()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `native`。
|
||||
|
||||
@@ -154,11 +154,11 @@ fun asNative()
|
||||
fun asInterface()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `interface`。
|
||||
|
||||
@@ -168,11 +168,11 @@ fun asInterface()
|
||||
fun asAbstract()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `abstract`。
|
||||
|
||||
@@ -184,10 +184,10 @@ fun asAbstract()
|
||||
fun asStrict()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加描述 `Member` 类型包含 `strict`。
|
@@ -4,11 +4,11 @@
|
||||
open class ModuleApplication: Application()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.77` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是对使用 `YukiHookAPI` Xposed 模块实现中的一个扩展功能。
|
||||
|
||||
@@ -24,7 +24,7 @@ open class ModuleApplication: Application()
|
||||
|
||||
- 在模块中使用系统隐藏 API,核心技术引用了开源项目 [FreeReflection](https://github.com/tiann/FreeReflection)
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
将此类继承到你的自定义 `Application` 上。
|
||||
|
||||
@@ -67,10 +67,10 @@ class MyApplication: ModuleApplication() {
|
||||
val appContext: ModuleApplication
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.77` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 全局静态 `Application` 实例。
|
||||
> 获取全局静态 `Application` 实例。
|
@@ -4,11 +4,11 @@
|
||||
open class PackageParam(private var wrapper: PackageParamWrapper?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 装载 Hook 的目标 APP 入口对象实现类。
|
||||
|
||||
@@ -18,11 +18,11 @@ open class PackageParam(private var wrapper: PackageParamWrapper?)
|
||||
val appClassLoader:ClassLoader
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook APP 的 `ClassLoader`。
|
||||
|
||||
@@ -32,11 +32,11 @@ val appClassLoader:ClassLoader
|
||||
val appInfo: ApplicationInfo
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook APP 的 `ApplicationInfo`。
|
||||
|
||||
@@ -46,11 +46,11 @@ val appInfo: ApplicationInfo
|
||||
val appContext: Application
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.72` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook APP 的 `Application`。
|
||||
|
||||
@@ -60,11 +60,11 @@ val appContext: Application
|
||||
val processName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook APP 的进程名称。
|
||||
|
||||
@@ -74,11 +74,11 @@ val processName: String
|
||||
val packageName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook APP 的包名。
|
||||
|
||||
@@ -88,11 +88,11 @@ val packageName: String
|
||||
val isFirstApplication: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook APP 是否为第一个 `Application`。
|
||||
|
||||
@@ -102,11 +102,11 @@ val isFirstApplication: Boolean
|
||||
val mainProcessName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook APP 的主进程名称。
|
||||
|
||||
@@ -118,11 +118,11 @@ val mainProcessName: String
|
||||
val prefs: YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获得当前使用的存取数据对象缓存实例。
|
||||
|
||||
@@ -132,11 +132,11 @@ val prefs: YukiHookModulePrefs
|
||||
fun prefs(name: String): YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获得当前使用的存取数据对象缓存实例。
|
||||
|
||||
@@ -152,11 +152,11 @@ fun loadApp(name: String, initiate: PackageParam.() -> Unit)
|
||||
fun loadApp(name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 装载并 Hook 指定包名的 APP。
|
||||
|
||||
@@ -172,11 +172,11 @@ fun withProcess(name: String, initiate: PackageParam.() -> Unit)
|
||||
fun withProcess(name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 装载并 Hook APP 的指定进程。
|
||||
|
||||
@@ -188,11 +188,11 @@ fun withProcess(name: String, hooker: YukiBaseHooker)
|
||||
fun loadHooker(hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 装载 Hook 子类。
|
||||
|
||||
@@ -208,15 +208,15 @@ val String.clazz: Class<*>
|
||||
val VariousClass.clazz: Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 字符串、`VariousClass` 转换为实体类。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以轻松地将 `String` 类型的 `Class` 包名转为 `Class` 实例。
|
||||
|
||||
@@ -250,15 +250,15 @@ VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").clazz
|
||||
val String.hasClass: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 通过字符串使用当前 `appClassLoader` 查找类是否存在。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以轻松的使用此方法判断字符串中的类是否存在。
|
||||
|
||||
@@ -280,7 +280,7 @@ fun findClass(name: String): HookClass
|
||||
fun findClass(vararg name: String): VariousClass
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -288,11 +288,11 @@ fun findClass(vararg name: String): VariousClass
|
||||
|
||||
移除了 ~~`findClass(various: VariousClass)`~~ 方法
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 通过完整包名+名称查找需要被 Hook 的 `Class`。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以使用三种方式查找你需要 Hook 的目标 `Class`。
|
||||
|
||||
@@ -338,7 +338,7 @@ fun VariousClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.()
|
||||
fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -358,11 +358,11 @@ fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() ->
|
||||
|
||||
新增 `isUseAppClassLoader` 参数
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是一切 Hook 的入口创建方法,Hook 方法、构造类。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
如你所见,Hook 方法体的创建可使用 4 种方式。
|
||||
|
||||
|
@@ -4,17 +4,17 @@
|
||||
data class PrefsData<T>(var key: String, var value: T)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 键值对存储构造类。
|
||||
|
||||
这个类是对 `YukiHookModulePrefs` 的一个扩展用法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
建立一个模板类定义模块与宿主需要使用的键值数据。
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
## ReflectionFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是自定义 `Member` 和 `Class` 相关功能的查找匹配以及 `invoke` 的封装类。
|
||||
|
||||
@@ -14,15 +14,15 @@
|
||||
val String.hasClass: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 通过字符串查找类是否存在。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以轻松的使用此方法判断字符串中的类是否存在。
|
||||
|
||||
@@ -42,11 +42,11 @@ if("com.example.demo.DemoClass".hasClass) {
|
||||
val Class<*>.hookClass: HookClass
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 将 `Class` 转换为 `HookClass`。
|
||||
|
||||
@@ -56,11 +56,11 @@ val Class<*>.hookClass: HookClass
|
||||
val HookClass.normalClass: Class<*>?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 将 `HookClass` 转换为 `Class`。
|
||||
|
||||
@@ -70,15 +70,15 @@ val HookClass.normalClass: Class<*>?
|
||||
fun classOf(name: String, loader: ClassLoader?): Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 通过字符串使用指定的 `ClassLoader` 转换为实体类。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以直接填写你要查找的目标 `Class`,必须在当前 `ClassLoader` 下存在。
|
||||
|
||||
@@ -102,11 +102,11 @@ classOf(name = "com.example.demo.DemoClass", classLoader)
|
||||
fun String.hasClass(loader: ClassLoader?): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 通过字符串使用指定的 `ClassLoader` 查找类是否存在。
|
||||
|
||||
@@ -116,7 +116,7 @@ fun String.hasClass(loader: ClassLoader?): Boolean
|
||||
fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.4` `新增`
|
||||
|
||||
@@ -124,7 +124,7 @@ fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
|
||||
|
||||
合并到 `FieldFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找变量是否存在。
|
||||
|
||||
@@ -134,7 +134,7 @@ fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
|
||||
fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -146,7 +146,7 @@ fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
|
||||
|
||||
合并到 `MethodFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找方法是否存在。
|
||||
|
||||
@@ -156,7 +156,7 @@ fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
|
||||
fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
@@ -164,7 +164,7 @@ fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
|
||||
|
||||
合并到 `ConstructorFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找构造方法是否存在。
|
||||
|
||||
@@ -174,17 +174,17 @@ fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
|
||||
fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查询 `Member` 中匹配的描述符。
|
||||
|
||||
### ~~obtainStaticFieldAny [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -192,7 +192,7 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
|
||||
|
||||
### ~~obtainFieldAny [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -200,7 +200,7 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
|
||||
|
||||
### ~~modifyStaticField [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -208,7 +208,7 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
|
||||
|
||||
### ~~modifyField [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -220,11 +220,11 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
|
||||
fun Class<*>.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`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
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -248,7 +248,7 @@ fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
|
||||
|
||||
合并到 `MethodFinder` 方法体。
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找并得到方法。
|
||||
|
||||
@@ -258,7 +258,7 @@ fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
|
||||
fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -270,13 +270,13 @@ fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFin
|
||||
|
||||
合并到 `ConstructorFinder` 方法体。
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找并得到构造类。
|
||||
|
||||
### ~~callStatic [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -288,7 +288,7 @@ fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFin
|
||||
|
||||
### ~~call [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -304,11 +304,11 @@ fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFin
|
||||
inline fun <reified T : Any> T.current(initiate: CurrentClass.() -> Unit): T
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`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?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 通过构造方法创建新实例,指定类型 `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?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 通过构造方法创建新实例,任意类型 `Any`。
|
||||
|
||||
@@ -346,11 +346,11 @@ fun Class<*>.buildOfAny(vararg param: Any?, initiate: ConstructorFinder.() -> Un
|
||||
fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`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)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`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)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 遍历当前类中的所有变量。
|
@@ -1,10 +1,10 @@
|
||||
## VariableTypeFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是一个预置 Hook 类型的常量类,主要为 `Java` 相关基本变量类型的 `Class` 内容,跟随版本更新会逐一进行增加。
|
||||
|
||||
|
@@ -4,11 +4,11 @@
|
||||
class VariousClass(vararg var name: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是一个不确定性 `Class` 类名装载器,通过 `name` 装载 `Class` 名称数组。
|
||||
|
||||
@@ -18,11 +18,11 @@ class VariousClass(vararg var name: String)
|
||||
fun get(loader: ClassLoader? = null): Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取匹配的实体类。
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
## ViewTypeFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关 `Widget` 的 `Class` 内容,跟随版本更新会逐一进行增加。
|
||||
|
||||
|
@@ -4,11 +4,11 @@
|
||||
abstract class YukiBaseHooker : PackageParam()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `YukiHookAPI` 的子类 Hooker 实现。
|
||||
|
||||
@@ -18,10 +18,10 @@ abstract class YukiBaseHooker : PackageParam()
|
||||
fun onHook()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 子类 Hook 开始。
|
@@ -4,11 +4,11 @@
|
||||
object YukiHookAPI
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是 `YukiHookAPI` 的 API 调用总类,Hook 相关功能的开始、Hook 相关功能的配置都在这里。
|
||||
|
||||
@@ -18,11 +18,11 @@ object YukiHookAPI
|
||||
const val API_VERSION_NAME: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.4` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 `YukiHookAPI` 的版本。
|
||||
|
||||
@@ -32,11 +32,11 @@ const val API_VERSION_NAME: String
|
||||
const val API_VERSION_CODE: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.4` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 `YukiHookAPI` 的版本号。
|
||||
|
||||
@@ -46,11 +46,11 @@ const val API_VERSION_CODE: Int
|
||||
val executorName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 框架的名称。
|
||||
|
||||
@@ -62,11 +62,11 @@ val executorName: String
|
||||
val executorVersion: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 框架的版本。
|
||||
|
||||
@@ -78,11 +78,11 @@ val executorVersion: Int
|
||||
object Configs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 对 API 相关功能的配置类。
|
||||
|
||||
@@ -92,11 +92,11 @@ object Configs
|
||||
var debugTag: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 模块在调用 `logger` 时打印的日志 `TAG` 名称。
|
||||
|
||||
@@ -108,11 +108,11 @@ var debugTag: String
|
||||
var isDebug: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 是否启用 DEBUG 模式。
|
||||
|
||||
@@ -124,11 +124,11 @@ var isDebug: Boolean
|
||||
var isAllowPrintingLogs: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.4` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 是否启用调试日志的输出功能。
|
||||
|
||||
@@ -140,11 +140,11 @@ var isAllowPrintingLogs: Boolean
|
||||
var isEnableModulePrefsCache: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 是否启用 `YukiHookModulePrefs` 的键值缓存功能。
|
||||
|
||||
@@ -158,11 +158,11 @@ var isEnableModulePrefsCache: Boolean
|
||||
var isEnableMemberCache: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 是否启用 `Member` 缓存功能。
|
||||
|
||||
@@ -182,17 +182,17 @@ var isEnableMemberCache: Boolean
|
||||
fun configs(initiate: Configs.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 对 `Configs` 类实现了一个 `lambda` 方法体。
|
||||
|
||||
你可以轻松的调用它进行配置。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以在 `HookEntryClass` 的 `onInit` 方法中调用 `configs` 方法完成对 API 的功能配置,实时生效。
|
||||
|
||||
@@ -277,15 +277,15 @@ fun encase(baseContext: Context?, initiate: PackageParam.() -> Unit)
|
||||
fun encase(baseContext: Context?, vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 装载 Hook 入口的核心方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
详情请参考
|
||||
|
||||
|
@@ -4,11 +4,11 @@
|
||||
class YukiHookCreater(private val packageParam: PackageParam, private val hookClass: HookClass)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> `YukiHookAPI` 核心 Hook 实现类。
|
||||
|
||||
@@ -18,7 +18,7 @@ class YukiHookCreater(private val packageParam: PackageParam, private val hookCl
|
||||
val instanceClass: Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -26,7 +26,7 @@ val instanceClass: Class<*>
|
||||
|
||||
~~`thisClass`~~ 更名为 `instanceClass`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 得到当前被 Hook 的 `Class`。
|
||||
|
||||
@@ -38,15 +38,15 @@ val instanceClass: Class<*>
|
||||
fun injectMember(tag: String, initiate: MemberHookCreater.() -> Unit): MemberHookCreater.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 注入要 Hook 的方法、构造类。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以注入任意方法与构造类,使用 `injectMember` 即可创建一个 `Hook` 对象。
|
||||
|
||||
@@ -74,11 +74,11 @@ injectMember(tag = "KuriharaYuki") {
|
||||
inner class MemberHookCreater(var tag: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> Hook 核心功能实现类,查找和处理需要 Hook 的方法、构造类。
|
||||
|
||||
@@ -88,17 +88,17 @@ inner class MemberHookCreater(var tag: String)
|
||||
var member: Member?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 手动指定要 Hook 的方法、构造类。
|
||||
|
||||
!> 不建议使用此方法设置目标需要 Hook 的 `Member` 对象,你可以使用 `method` 或 `constructor` 方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以调用 `instanceClass` 来手动查询要 Hook 的方法。
|
||||
|
||||
@@ -118,15 +118,15 @@ injectMember {
|
||||
fun allMethods(name: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找并 Hook 当前 `Class` 中指定 `name` 的全部方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
使用此方法可将当前类的全部同名方法进行批量 Hook。
|
||||
|
||||
@@ -148,15 +148,15 @@ injectMember {
|
||||
fun allConstructors()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找并 Hook 当前 `Class` 中的全部构造方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
使用此方法可将当前类的全部构造方法进行批量 Hook。
|
||||
|
||||
@@ -178,15 +178,15 @@ injectMember {
|
||||
fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找当前 `Class` 需要 Hook 的方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可参考 [MethodFinder](#methodfinder-class) 查看详细用法。
|
||||
|
||||
@@ -210,15 +210,15 @@ injectMember {
|
||||
fun constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 查找当前 `Class` 需要 Hook 的构造方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可参考 [ConstructorFinder](#constructorfinder-class) 查看详细用法。
|
||||
|
||||
@@ -238,15 +238,15 @@ injectMember {
|
||||
fun HookParam.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 使用当前 `hookClass` 查找并得到 `Field`。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可参考 [FieldFinder](#fieldfinder-class) 查看详细用法。
|
||||
|
||||
@@ -274,11 +274,11 @@ injectMember {
|
||||
fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 使用当前 `hookClass` 查找并得到方法。
|
||||
|
||||
@@ -288,11 +288,11 @@ fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
|
||||
fun HookParam.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.2` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 使用当前 `hookClass` 查找并得到构造方法。
|
||||
|
||||
@@ -302,11 +302,11 @@ fun HookParam.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFi
|
||||
fun beforeHook(initiate: HookParam.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 在方法执行完成前 Hook。
|
||||
|
||||
@@ -316,11 +316,11 @@ fun beforeHook(initiate: HookParam.() -> Unit)
|
||||
fun afterHook(initiate: HookParam.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 在方法执行完成后 Hook。
|
||||
|
||||
@@ -330,11 +330,11 @@ fun afterHook(initiate: HookParam.() -> Unit)
|
||||
fun replaceAny(initiate: HookParam.() -> Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 拦截并替换此方法内容,给出返回值。
|
||||
|
||||
@@ -344,11 +344,11 @@ fun replaceAny(initiate: HookParam.() -> Any?)
|
||||
fun replaceUnit(initiate: HookParam.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 拦截并替换此方法内容,没有返回值,可以称为 `Void`。
|
||||
|
||||
@@ -358,11 +358,11 @@ fun replaceUnit(initiate: HookParam.() -> Unit)
|
||||
fun replaceTo(any: Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 拦截并替换方法返回值。
|
||||
|
||||
@@ -372,11 +372,11 @@ fun replaceTo(any: Any?)
|
||||
fun replaceToTrue()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 拦截并替换方法返回值为 `true`。
|
||||
|
||||
@@ -388,11 +388,11 @@ fun replaceToTrue()
|
||||
fun replaceToFalse()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 拦截并替换方法返回值为 `false`。
|
||||
|
||||
@@ -404,11 +404,11 @@ fun replaceToFalse()
|
||||
fun intercept()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 拦截此方法。
|
||||
|
||||
@@ -420,11 +420,11 @@ fun intercept()
|
||||
inner class Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听 Hook 结果实现类。
|
||||
|
||||
@@ -434,7 +434,7 @@ inner class Result
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
@@ -442,11 +442,11 @@ fun result(initiate: Result.() -> Unit): Result
|
||||
|
||||
~~`failures`~~ 修改为 `result`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建监听失败事件方法体。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
你可以使用此方法为 `Result` 类创建 `lambda` 方法体。
|
||||
|
||||
@@ -469,11 +469,11 @@ injectMember {
|
||||
fun by(initiate: () -> Boolean): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
|
||||
|
||||
@@ -483,11 +483,11 @@ fun by(initiate: () -> Boolean): Result
|
||||
fun onHooked(initiate: (Member) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听 `member` Hook 成功的回调方法。
|
||||
|
||||
@@ -499,11 +499,11 @@ fun onHooked(initiate: (Member) -> Unit): Result
|
||||
fun onNoSuchMemberFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听 `member` 不存在发生错误的回调方法。
|
||||
|
||||
@@ -513,11 +513,11 @@ fun onNoSuchMemberFailure(initiate: (Throwable) -> Unit): Result
|
||||
fun onConductFailure(initiate: (HookParam, Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听 Hook 进行过程中发生错误的回调方法。
|
||||
|
||||
@@ -527,11 +527,11 @@ fun onConductFailure(initiate: (HookParam, Throwable) -> Unit): Result
|
||||
fun onHookingFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听 Hook 开始时发生的错误的回调方法。
|
||||
|
||||
@@ -541,11 +541,11 @@ fun onHookingFailure(initiate: (Throwable) -> Unit): Result
|
||||
fun onAllFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听全部 Hook 过程发生错误的回调方法。
|
||||
|
||||
@@ -555,11 +555,11 @@ fun onAllFailure(initiate: (Throwable) -> Unit): Result
|
||||
fun ignoredNoSuchMemberFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略 `member` 不存在发生的错误。
|
||||
|
||||
@@ -569,11 +569,11 @@ fun ignoredNoSuchMemberFailure(): Result
|
||||
fun ignoredConductFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略 Hook 进行过程中发生的错误。
|
||||
|
||||
@@ -583,11 +583,11 @@ fun ignoredConductFailure(): Result
|
||||
fun ignoredHookingFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略 Hook 开始时发生的错误。
|
||||
|
||||
@@ -597,11 +597,11 @@ fun ignoredHookingFailure(): Result
|
||||
fun ignoredAllFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略全部 Hook 过程发生的错误。
|
||||
|
||||
@@ -611,11 +611,11 @@ fun ignoredAllFailure(): Result
|
||||
inner class Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听全部 Hook 结果实现类。
|
||||
|
||||
@@ -625,7 +625,7 @@ inner class Result
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
@@ -633,7 +633,7 @@ fun result(initiate: Result.() -> Unit): Result
|
||||
|
||||
~~`failures`~~ 修改为 `result`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 创建监听事件方法体。
|
||||
|
||||
@@ -643,11 +643,11 @@ fun result(initiate: Result.() -> Unit): Result
|
||||
fun by(initiate: () -> Boolean): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
|
||||
|
||||
@@ -657,11 +657,11 @@ fun by(initiate: () -> Boolean): Result
|
||||
fun onPrepareHook(initiate: () -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听 `hookClass` 存在时准备开始 Hook 的操作。
|
||||
|
||||
@@ -671,11 +671,11 @@ fun onPrepareHook(initiate: () -> Unit): Result
|
||||
fun onHookClassNotFoundFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 监听 `hookClass` 找不到时发生错误的回调方法。
|
||||
|
||||
@@ -685,10 +685,10 @@ fun onHookClassNotFoundFailure(initiate: (Throwable) -> Unit): Result
|
||||
fun ignoredHookClassNotFoundFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略 `hookClass` 找不到时出现的错误。
|
@@ -1,10 +1,10 @@
|
||||
## YukiHookFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是 `YukiHookAPI` 相关 `lambda` 方法的封装类以及部分 API 用法。
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
fun YukiHookXposedInitProxy.configs(initiate: YukiHookAPI.Configs.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 在 `YukiHookXposedInitProxy` 中配置 `Configs`。
|
||||
|
||||
@@ -32,11 +32,11 @@ fun YukiHookXposedInitProxy.encase(initiate: PackageParam.() -> Unit)
|
||||
fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 在 `YukiHookXposedInitProxy` 中装载 `YukiHookAPI`。
|
||||
|
||||
@@ -46,11 +46,11 @@ fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker)
|
||||
val Context.modulePrefs: YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取模块的存取对象。
|
||||
|
||||
@@ -60,11 +60,11 @@ val Context.modulePrefs: YukiHookModulePrefs
|
||||
fun Context.modulePrefs(name: String): YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取模块的存取对象,可设置 `name` 为自定义 Sp 存储名称。
|
||||
|
||||
@@ -74,11 +74,11 @@ fun Context.modulePrefs(name: String): YukiHookModulePrefs
|
||||
val Context.processName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前进程名称。
|
||||
|
||||
@@ -88,11 +88,11 @@ val Context.processName: String
|
||||
val Context.isModuleActive: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.6` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 判断模块是否在 Xposed 或太极、无极中激活。
|
||||
|
||||
@@ -102,11 +102,11 @@ val Context.isModuleActive: Boolean
|
||||
val Any?.isXposedModuleActive: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.6` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 仅判断模块是否在 Xposed 中激活。
|
||||
|
||||
@@ -116,10 +116,10 @@ val Any?.isXposedModuleActive: Boolean
|
||||
val Context.isTaiChiModuleActive: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 仅判断模块是否在太极、无极中激活。
|
@@ -4,11 +4,11 @@
|
||||
class YukiHookModulePrefs(private val context: Context?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 实现 Xposed 模块的数据存取,对接 `SharedPreferences` 和 `XSharedPreferences`。
|
||||
|
||||
@@ -32,15 +32,15 @@ class YukiHookModulePrefs(private val context: Context?)
|
||||
fun name(name: String): YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 自定义 Sp 存储名称。
|
||||
|
||||
<b>功能示例</b>
|
||||
**功能示例**
|
||||
|
||||
在 `Activity` 中的使用方法。
|
||||
|
||||
@@ -64,11 +64,11 @@ prefs("custom_name").getString("custom_key")
|
||||
fun direct(): YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 忽略缓存直接读取键值。
|
||||
|
||||
@@ -82,11 +82,11 @@ fun direct(): YukiHookModulePrefs
|
||||
fun getString(key: String, value: String): String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取 `String` 键值。
|
||||
|
||||
@@ -96,11 +96,11 @@ fun getString(key: String, value: String): String
|
||||
fun getStringSet(key: String, value: Set<String>): Set<String>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.77` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取 `Set<String>` 键值。
|
||||
|
||||
@@ -110,11 +110,11 @@ fun getStringSet(key: String, value: Set<String>): Set<String>
|
||||
fun getBoolean(key: String, value: Boolean): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取 `Boolean` 键值。
|
||||
|
||||
@@ -124,11 +124,11 @@ fun getBoolean(key: String, value: Boolean): Boolean
|
||||
fun getInt(key: String, value: Int): Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取 `Int` 键值。
|
||||
|
||||
@@ -138,11 +138,11 @@ fun getInt(key: String, value: Int): Int
|
||||
fun getLong(key: String, value: Long): Long
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取 `Long` 键值。
|
||||
|
||||
@@ -152,11 +152,11 @@ fun getLong(key: String, value: Long): Long
|
||||
fun getFloat(key: String, value: Float): Float
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取 `Float` 键值。
|
||||
|
||||
@@ -166,11 +166,11 @@ fun getFloat(key: String, value: Float): Float
|
||||
fun all(): HashMap<String, Any?>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.77` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取全部存储的键值数据。
|
||||
|
||||
@@ -184,11 +184,11 @@ fun all(): HashMap<String, Any?>
|
||||
fun remove(key: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 移除全部包含 `key` 的存储数据。
|
||||
|
||||
@@ -200,11 +200,11 @@ fun remove(key: String)
|
||||
inline fun <reified T> remove(prefs: PrefsData<T>)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 移除 `PrefsData.key` 的存储数据。
|
||||
|
||||
@@ -216,11 +216,11 @@ inline fun <reified T> remove(prefs: PrefsData<T>)
|
||||
fun clear()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.77` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 移除全部存储数据。
|
||||
|
||||
@@ -232,11 +232,11 @@ fun clear()
|
||||
fun putString(key: String, value: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 存储 `String` 键值。
|
||||
|
||||
@@ -248,11 +248,11 @@ fun putString(key: String, value: String)
|
||||
fun putStringSet(key: String, value: Set<String>)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.77` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 存储 `Set<String>` 键值。
|
||||
|
||||
@@ -264,11 +264,11 @@ fun putStringSet(key: String, value: Set<String>)
|
||||
fun putBoolean(key: String, value: Boolean)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 存储 `Boolean` 键值。
|
||||
|
||||
@@ -280,11 +280,11 @@ fun putBoolean(key: String, value: Boolean)
|
||||
fun putInt(key: String, value: Int)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 存储 `Int` 键值。
|
||||
|
||||
@@ -296,11 +296,11 @@ fun putInt(key: String, value: Int)
|
||||
fun putLong(key: String, value: Long)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 存储 `Long` 键值。
|
||||
|
||||
@@ -312,11 +312,11 @@ fun putLong(key: String, value: Long)
|
||||
fun putFloat(key: String, value: Float)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 存储 `Float` 键值。
|
||||
|
||||
@@ -328,11 +328,11 @@ fun putFloat(key: String, value: Float)
|
||||
inline fun <reified T> get(prefs: PrefsData<T>, value: T): T
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`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)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 智能存储指定类型的键值。
|
||||
|
||||
@@ -358,11 +358,11 @@ inline fun <reified T> put(prefs: PrefsData<T>, value: T)
|
||||
fun clearCache()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 清除 `XSharedPreferences` 中缓存的键值数据。
|
||||
|
||||
|
@@ -4,11 +4,11 @@
|
||||
object YukiHookModuleStatus
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 这是一个 Xposed 模块 Hook 状态类。
|
||||
|
||||
@@ -18,11 +18,11 @@ object YukiHookModuleStatus
|
||||
val executorName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 框架的名称。
|
||||
|
||||
@@ -34,11 +34,11 @@ val executorName: String
|
||||
val executorVersion: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 框架的版本。
|
||||
|
||||
@@ -46,7 +46,7 @@ val executorVersion: Int
|
||||
|
||||
### ~~isActive [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
|
@@ -4,11 +4,11 @@
|
||||
interface YukiHookXposedInitProxy
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> YukiHookAPI 的 Xposed 装载 API 调用接口。
|
||||
|
||||
@@ -18,11 +18,11 @@ interface YukiHookXposedInitProxy
|
||||
fun onInit()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> 配置 `YukiHookAPI.Configs` 的初始化方法。
|
||||
|
||||
@@ -36,10 +36,10 @@ fun onInit()
|
||||
fun onHook()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
**功能描述**
|
||||
|
||||
> Xposed API 的模块装载调用入口方法。
|
@@ -8,7 +8,7 @@
|
||||
|
||||
!> `loggerE` You cannot loading a hooker in "onInit" method! Aborted
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
你尝试在继承 `YukiHookXposedInitProxy` 的 Hook 入口类的 `onInit` 方法中装载了 `encase` 方法。
|
||||
|
||||
@@ -30,7 +30,7 @@ class HookEntry : YukiHookXposedInitProxy {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请在 `onHook` 方法中装载 `encase` 方法。
|
||||
|
||||
@@ -57,47 +57,47 @@ class HookEntry : YukiHookXposedInitProxy {
|
||||
|
||||
!> `loggerE` YukiHookAPI try to load HookEntryClass failed
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
`YukiHookAPI` 在尝试装载 Hook 入口类 `onInit` 或 `onHook` 方法时发生了不能处理的异常或找不到入口类。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
通常情况下这种错误不会轻易发生,若一旦发生此错误,请自行查看控制台打印的日志定位问题,确定并非自己的代码发生的问题后,可提交日志进行反馈。
|
||||
|
||||
!> `loggerE` HookClass \[<b>NAME</b>\] not found
|
||||
!> `loggerE` HookClass \[**NAME**\] not found
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
当前被 Hook 的 `Class` 没有被找到。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请检查目标 `Class` 是否存在,若想忽略此错误请使用 `ignoredHookClassNotFoundFailure` 方法。
|
||||
|
||||
!> `loggerE` Hook Member \[<b>NAME</b>\] failed
|
||||
!> `loggerE` Hook Member \[**NAME**\] failed
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
Hook 目标方法、构造方法时发生错误。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
此问题通常由 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 方法、构造类。
|
||||
|
||||
<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 方法、构造类。
|
||||
|
||||
@@ -112,7 +112,7 @@ injectMember {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认你已经在 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 的方法时一个也没有找到。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认当前 `Class` 中一定存在一个可以匹配此方法名称的方法。
|
||||
|
||||
!> `loggerE` No Constructor matched
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在使用 `allConstructors` 查询需要 Hook 的构造方法时一个也没有找到。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认当前 `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 过程中发生了任意的异常。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
这是一个异常汇总提醒,只要 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 开始时发生了任意的异常。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
这是一个 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` 类型的传值,不可传入参数实例。
|
||||
|
||||
@@ -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` 中的指定方法、构造方法以及变量。
|
||||
|
||||
!> `loggerE` Trying <b>COUNT</b> times and all failure by RemedyPlan
|
||||
!> `loggerE` Trying **COUNT** times and all failure by RemedyPlan
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
使用 `RemedyPlan` 重新查找方法、构造方法时依然没有找到方法、构造方法。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认你设置的 `RemedyPlan` 参数以及宿主内存在的 `Class`,再试一次。
|
||||
|
||||
!> `loggerE` Try to get field instance failed
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在使用变量查询结果的 `get` 方法后并没有成功得到对应的实例。
|
||||
|
||||
@@ -252,13 +252,13 @@ field {
|
||||
}.get(instance)...
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认当前变量所在的实例是静态的还是动态的,并查看错误日志检查传入的实例类型是否正确。
|
||||
|
||||
!> `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`。
|
||||
|
||||
@@ -289,13 +289,13 @@ TargetClass.method {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
这种情况比较少见,请检查你要查询的目标 `Class` 是否被正确赋值并检查整个 Hook 流程和使用范围。
|
||||
|
||||
!> `loggerE` Field match type class is not found
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在查找变量时所设置的查询条件中 `type` 的 `Class` 实例未被找到。
|
||||
|
||||
@@ -309,13 +309,13 @@ field {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请检查查询条件中 `type` 的 `Class` 是否存在,然后再试一次。
|
||||
|
||||
!> `loggerE` Method match returnType class is not found
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在查找方法时所设置的查询条件中 `returnType` 的 `Class` 实例未被找到。
|
||||
|
||||
@@ -329,13 +329,13 @@ method {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请检查查询条件中 `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` 实例未被找到。
|
||||
|
||||
@@ -347,7 +347,7 @@ method {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请检查查询条件中 `param` 的 `index` 号下标的 `Class` 是否存在,然后再试一次。
|
||||
|
||||
@@ -357,7 +357,7 @@ method {
|
||||
|
||||
!> `IllegalStateException` App is dead, You cannot call to appContext
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
> 第一种情况
|
||||
|
||||
@@ -383,7 +383,7 @@ encase {
|
||||
ModuleApplication.appContext...
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
> 第一种情况
|
||||
|
||||
@@ -395,7 +395,7 @@ ModuleApplication.appContext...
|
||||
|
||||
!> `IllegalStateException` YukiHookModulePrefs not allowed in Custom Hook API
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 Hook 自身 APP(非 Xposed 模块) 中使用了 `YukiHookModulePrefs`。
|
||||
|
||||
@@ -414,23 +414,23 @@ class MyApplication : Application() {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
你只能在 [作为 Xposed 模块使用](config/xposed-using) 时使用 `YukiHookModulePrefs`,在 Hook 自身 APP 中请使用原生的 `Sp` 存储。
|
||||
|
||||
!> `IllegalStateException` Xposed modulePackageName load failed, please reset and rebuild it
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 Hook 过程中使用 `YukiHookModulePrefs` 时无法读取装载时的 `modulePackageName` 导致不能确定自身模块的包名。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请仔细阅读 [这里](config/xposed-using?id=modulepackagename-参数) 的帮助文档,正确配置模块的 Hook 入口类包名。
|
||||
|
||||
!> `IllegalStateException` If you want to use module prefs, you must set the context instance first
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在模块中使用了 `YukiHookModulePrefs` 存储数据但并未传入 `Context` 实例。
|
||||
|
||||
@@ -447,7 +447,7 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
在 `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` 方法时传入了不支持的存储类型。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
`YukiHookModulePrefs` 支持的类型只有 `String`、`Set<String>`、`Int`、`Float`、`Long`、`Boolean`,请传入支持的类型。
|
||||
|
||||
!> `IllegalStateException` HookParam Method args index must be >= 0
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 `HookParam` 中调用 `args().last()` 但是目标 `param` 为空或 `args` 中的 `index` 设置了小于 0 的数值。
|
||||
|
||||
@@ -496,13 +496,13 @@ injectMember {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认你 Hook 的目标方法、构造方法的方法参数数量是否不为空,且不能对 `args` 的下标设置小于 0 的数值。
|
||||
|
||||
!> `IllegalStateException` HookParam instance got null! Is this a static member?
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 `HookParam` 中调用 `instance` 变量或 `instance` 方法但获取不到当前实例的对象。
|
||||
|
||||
@@ -520,13 +520,13 @@ injectMember {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认你 Hook 的方法是否为静态类型,静态类型的方法没有实例,不能使用此功能,若非静态方法,请检查实例是否已经销毁。
|
||||
|
||||
!> `IllegalStateException` Current hook Method type is wrong or null
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 `HookParam` 中调用 `method` 变量但获取不到当前实例的方法实例。
|
||||
|
||||
@@ -542,13 +542,13 @@ injectMember {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认你 Hook 的方法是构造方法还是普通方法并使用对应类型的方法获取指定的实例。
|
||||
|
||||
!> `IllegalStateException` Current hook Constructor type is wrong or null
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 `HookParam` 中调用 `constructor` 变量但获取不到当前实例的方法实例。
|
||||
|
||||
@@ -564,13 +564,13 @@ injectMember {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认你 Hook 的方法是普通方法还是构造方法并使用对应类型的方法获取指定的实例。
|
||||
|
||||
!> `IllegalStateException` HookParam instance cannot cast to <b>TYPE</b>
|
||||
!> `IllegalStateException` HookParam instance cannot cast to **TYPE**
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 `HookParam` 中调用 `instance` 方法指定了错误的类型。
|
||||
|
||||
@@ -586,13 +586,13 @@ injectMember {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认当前 Hook 实例的正确类型并重新填写泛型中的类型,若不能确定请使用 `Any` 或直接使用 `instance` 变量。
|
||||
|
||||
!> `IllegalStateException` HookParam Method args is empty, mabe not has args
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 `HookParam` 中调用 `ArgsModifyer.set` 方法但是当前实例的方法参数数组为空。
|
||||
|
||||
@@ -608,13 +608,13 @@ injectMember {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认你 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` 方法指定了超出方法参数下标的数组序号。
|
||||
|
||||
@@ -630,13 +630,13 @@ injectMember {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
请确认你 Hook 的目标方法、构造方法的方法参数个数,并重新设置数组下标。
|
||||
|
||||
!> `IllegalStateException` PackageParam got null ClassLoader
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 `PackageParam` 中调用了 `appClassLoader` 变量但是无法获取到实例对象。
|
||||
|
||||
@@ -649,13 +649,13 @@ encase {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
这种情况几乎不存在,除非模块被装载的宿主或目标 Xposed 框架自身存在问题,若真的发生了此问题,请携带详细日志进行反馈。
|
||||
|
||||
!> `IllegalStateException` PackageParam got null appContext
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在 `PackageParam` 中调用了 `appContext` 变量但是无法获取到实例对象。
|
||||
|
||||
@@ -668,23 +668,23 @@ encase {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
`appContext` 在宿主环境初始化完成之前有大的概率可能是空的,请延迟获取或在宿主的 Hook 方法回调方法体内再使用此变量。
|
||||
|
||||
!> `IllegalStateException` VariousClass match failed of those <b>CLASSES</b>
|
||||
!> `IllegalStateException` VariousClass match failed of those **CLASSES**
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在使用 `VariousClass` 创建不确定的 `Class` 对象时全部的 `Class` 都没有被找到。
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
检查当前 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` 不存在。
|
||||
|
||||
@@ -697,7 +697,7 @@ TargetClass.hook {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
在 `hook` 内直接使用 `instanceClass` 是很危险的,若 Class 不存在则会直接导致 Hook 进程“死掉”。
|
||||
|
||||
@@ -705,7 +705,7 @@ TargetClass.hook {
|
||||
|
||||
!> `IllegalStateException` Hook Members is empty, hook aborted
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
使用了 `hook` 方法体但其中并没有填写内容。
|
||||
|
||||
@@ -717,13 +717,13 @@ TargetClass.hook {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
你必须在 `hook` 方法体内加入至少一个 `injectMember` 方法。
|
||||
|
||||
!> `IllegalStateException` paramTypes is empty, please use emptyParam() instead
|
||||
|
||||
<b>异常原因</b>
|
||||
**异常原因**
|
||||
|
||||
在查找方法、构造方法时保留了空的 `param` 方法。
|
||||
|
||||
@@ -737,7 +737,7 @@ method {
|
||||
}
|
||||
```
|
||||
|
||||
<b>解决方案</b>
|
||||
**解决方案**
|
||||
|
||||
若要标识此方法、构造方法没有参数,你可以有如下设置方法。
|
||||
|
||||
|
@@ -49,7 +49,7 @@ class MyApplication : Application() {
|
||||
|
||||
### [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)
|
||||
|
||||
> <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)
|
||||
|
||||
> <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)。
|
||||
|
||||
|
@@ -22,13 +22,13 @@ annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePack
|
||||
|
||||
!> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `YukiHookXposedInitProxy` 接口。
|
||||
|
||||
!> 在你当前项目中的所有 `Class` 标记中<b>只能存在一次</b>,若<b>存在多个声明自动处理程序<u>会在编译时抛出异常</u></b>,你可以自定义其相关参数。
|
||||
!> 在你当前项目中的所有 `Class` 标记中**只能存在一次**,若**存在多个声明自动处理程序<u>会在编译时抛出异常</u>**,你可以自定义其相关参数。
|
||||
|
||||
#### sourcePath 参数
|
||||
|
||||
`sourcePath` 参数决定了自动处理程序自动查找并匹配你当前项目路径的重要标识,此参数的内容为相对路径匹配,默认参数为 `src/main`。
|
||||
|
||||
!> 如果你的项目不在 `...app/src/main...` 或你手动使用 `sourceSets` 设置了项目路径,你就需要手动设置 `sourcePath` 参数,<b>否则自动处理程序将无法识别你的项目路径并<u>会在编译时抛出异常</u></b>。
|
||||
!> 如果你的项目不在 `...app/src/main...` 或你手动使用 `sourceSets` 设置了项目路径,你就需要手动设置 `sourcePath` 参数,**否则自动处理程序将无法识别你的项目路径并<u>会在编译时抛出异常</u>**。
|
||||
|
||||
> 示例如下
|
||||
|
||||
|
@@ -18,33 +18,33 @@
|
||||
|
||||
## 语言要求
|
||||
|
||||
请使用 `Kotlin`,框架部分代码构成同样兼容 `Java` 但基础 Hook 场景的实现<b>可能完全无法使用</b>。
|
||||
请使用 `Kotlin`,框架部分代码构成同样兼容 `Java` 但基础 Hook 场景的实现**可能完全无法使用**。
|
||||
|
||||
文档全部的 Demo 示例代码都将使用 `Kotlin` 进行描述,如果你完全不会使用 `Kotlin` 那你将有可能无法使用 `YukiHookAPI`。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- <b>Xposed 模块开发</b>
|
||||
- **Xposed 模块开发**
|
||||
|
||||
自动构建程序可以帮你快速创建一个 Xposed 模块,完全省去配置入口类和 `xposed_init` 文件。
|
||||
|
||||
- <b>轻量优雅</b>
|
||||
- **轻量优雅**
|
||||
|
||||
拥有一套强大、优雅和人性化的 `Kotlin Lambda Hook API`,可以帮你快速实现 `Method`、`Constructor`、`Field` 的查找以及 Hook。
|
||||
|
||||
- <b>高效调试</b>
|
||||
- **高效调试**
|
||||
|
||||
拥有丰富的调试日志功能,细到每个 Hook 方法的名称、所在类以及查找耗时,可进行快速调试和排错。
|
||||
|
||||
- <b>方便移植</b>
|
||||
- **方便移植**
|
||||
|
||||
原生支持 Xposed API 用法,并原生对接 Xposed API,拥有 Xposed API 的 Hook 框架都能快速对接 Yuki Hook API。
|
||||
|
||||
- <b>支持混淆</b>
|
||||
- **支持混淆**
|
||||
|
||||
使用 `YukiHookAPI` 构建的 Xposed 模块原生支持 R8 压缩优化混淆,混淆不会破坏 Hook 入口点,R8 下无需任何其它配置。
|
||||
|
||||
- <b>快速上手</b>
|
||||
- **快速上手**
|
||||
|
||||
简单易用,不需要繁琐的配置,不需要十足的开发经验,搭建环境集成依赖即可立即开始使用。
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
自 `Kotlin` 作为 Android 主要开发语言以来,这套 API 用起来确实已经不是很优雅了。
|
||||
|
||||
有没有什么 <b>好用、轻量、优雅</b> 的解决办法呢?
|
||||
有没有什么 **好用、轻量、优雅** 的解决办法呢?
|
||||
|
||||
本着这样的想法,`YukiHookAPI` 诞生了。
|
||||
|
||||
|
@@ -25,15 +25,15 @@ Xposed Framework
|
||||
|
||||
我们可以在宿主(APP)运行时通过注入宿主(APP)来达到控制其行为的最终目的。
|
||||
|
||||
Xposed 的这种运行方式被称为<b>寄生</b>,Xposed 模块跟随宿主的生命周期,在宿主的生命周期内完成自己的生命历程。
|
||||
Xposed 的这种运行方式被称为**寄生**,Xposed 模块跟随宿主的生命周期,在宿主的生命周期内完成自己的生命历程。
|
||||
|
||||
我们可以通过反射的方式调用宿主的方法、变量、构造方法,以及使用 `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 进程注入宿主,通过外部模块对其进行控制。
|
||||
|
||||
另外一种产品就是利用 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 做了什么
|
||||
|
||||
|
@@ -61,7 +61,7 @@ dependencies {
|
||||
}
|
||||
```
|
||||
|
||||
请将 <b><version></b> 修改为 [这里](about/changelog) 的最新版本。
|
||||
请将 **<version>** 修改为 [这里](about/changelog) 的最新版本。
|
||||
|
||||
!> `YukiHookAPI` 的 `api` 与 `ksp-xposed` 依赖的版本必须一一对应,否则将会造成版本不匹配错误。
|
||||
|
||||
|
@@ -157,7 +157,7 @@ Test::class.java.method {
|
||||
}.get(instance).string() // 得到方法的结果
|
||||
```
|
||||
|
||||
是的,对于确切不会变化的方法,你可以精简查询条件,<b>`YukiHookAPI` 会默认按照字节码顺序匹配第一个查询到的结果</b>。
|
||||
是的,对于确切不会变化的方法,你可以精简查询条件,**`YukiHookAPI` 会默认按照字节码顺序匹配第一个查询到的结果**。
|
||||
|
||||
问题又来了,这个 `Class` 中有一个 `release` 方法,但是它的方法参数好长,而且很多的类型都无法直接得到。
|
||||
|
||||
@@ -578,7 +578,7 @@ method {
|
||||
|
||||
#### 必要的查询条件
|
||||
|
||||
!> 在方法、构造方法查询条件中,<u><b>即使是无参的方法也需要设置查询条件</b></u>。
|
||||
!> 在方法、构造方法查询条件中,<u>**即使是无参的方法也需要设置查询条件**</u>。
|
||||
|
||||
假设我们有如下的 `Class`。
|
||||
|
||||
@@ -607,13 +607,13 @@ TestFoo::class.java.method {
|
||||
}
|
||||
```
|
||||
|
||||
但是,上面的例子<u><b>是错误的</b></u>。
|
||||
但是,上面的例子<u>**是错误的**</u>。
|
||||
|
||||
你会发现这个 `Class` 中有两个 `foo` 方法,其中一个带有方法参数。
|
||||
|
||||
由于上述例子没有设置 `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[]` 类型的数组。
|
||||
|
||||
@@ -697,7 +697,7 @@ field {
|
||||
|
||||
同时由于 `String` 是常见类型,所以还可以直接使用 `StringArrayClass` 来得到这个类型。
|
||||
|
||||
一些常见的 Hook 中查询的方法,都有其对应的封装类型以供使用,格式为 <b>类型 + Class</b>。
|
||||
一些常见的 Hook 中查询的方法,都有其对应的封装类型以供使用,格式为 **类型 + Class**。
|
||||
|
||||
例如 Hook `onCreate` 方法需要查询 `Bundle::class.java` 类型。
|
||||
|
||||
|
Reference in New Issue
Block a user