mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 02:35:40 +08:00
Merge new documentation
This commit is contained in:
101
docs/api/public/BaseFinder-IndexTypeCondition.md
Normal file
101
docs/api/public/BaseFinder-IndexTypeCondition.md
Normal file
@@ -0,0 +1,101 @@
|
||||
## BaseFinder.IndexTypeCondition [class]
|
||||
|
||||
```kotlin
|
||||
inner class IndexTypeCondition(private val type: IndexConfigType)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 字节码下标筛选实现类。
|
||||
|
||||
### index [method]
|
||||
|
||||
```kotlin
|
||||
fun index(num: Int)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置下标。
|
||||
|
||||
若 `index` 小于零则为倒序,此时可以使用 `IndexTypeConditionSort.reverse` 方法实现。
|
||||
|
||||
可使用 `IndexTypeConditionSort.first` 和 `IndexTypeConditionSort.last` 设置首位和末位筛选条件。
|
||||
|
||||
### index [method]
|
||||
|
||||
```kotlin
|
||||
fun index(): IndexTypeConditionSort
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到下标。
|
||||
|
||||
### IndexTypeConditionSort [class]
|
||||
|
||||
```kotlin
|
||||
inner class IndexTypeConditionSort
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 字节码下标排序实现类。
|
||||
|
||||
#### first [method]
|
||||
|
||||
```kotlin
|
||||
fun first()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置满足条件的第一个。
|
||||
|
||||
#### last [method]
|
||||
|
||||
```kotlin
|
||||
fun last()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置满足条件的最后一个。
|
||||
|
||||
#### reverse [method]
|
||||
|
||||
```kotlin
|
||||
fun reverse(num: Int)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置倒序下标。
|
11
docs/api/public/ComponentTypeFactory.md
Normal file
11
docs/api/public/ComponentTypeFactory.md
Normal file
@@ -0,0 +1,11 @@
|
||||
## ComponentTypeFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关组件的 `Class` 内容,跟随版本更新会逐一进行增加。
|
||||
|
||||
详情可 [点击这里](https://github.com/fankes/YukiHookAPI/blob/master/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ComponentTypeFactory.kt) 进行查看。
|
380
docs/api/public/ConstructorFinder.md
Normal file
380
docs/api/public/ConstructorFinder.md
Normal file
@@ -0,0 +1,380 @@
|
||||
## ConstructorFinder [class]
|
||||
|
||||
```kotlin
|
||||
class ConstructorFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.2` `修改`
|
||||
|
||||
合并到 `BaseFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Constructor` 查找类。
|
||||
|
||||
### paramCount [field]
|
||||
|
||||
```kotlin
|
||||
var paramCount: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Constructor` 参数个数。
|
||||
|
||||
你可以不使用 `param` 指定参数类型而是仅使用此变量指定参数个数。
|
||||
|
||||
若参数个数小于零则忽略并使用 `param`。
|
||||
|
||||
### modifiers [method]
|
||||
|
||||
```kotlin
|
||||
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Constructor` 筛选条件。
|
||||
|
||||
可不设置筛选条件,默认模糊查找并取第一个匹配的 `Constructor`。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### param [method]
|
||||
|
||||
```kotlin
|
||||
fun param(vararg paramType: Any): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Constructor` 参数。
|
||||
|
||||
如果同时使用了 `paramCount` 则 `paramTypes` 的数量必须与 `paramCount` 完全匹配。
|
||||
|
||||
!> 无参 `Constructor` 不要使用此方法。
|
||||
|
||||
!> 有参 `Constructor` 必须使用此方法设定参数或使用 `paramCount` 指定个数。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### RemedyPlan [class]
|
||||
|
||||
```kotlin
|
||||
inner class RemedyPlan
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Constructor` 重查找实现类,可累计失败次数直到查找成功。
|
||||
|
||||
#### constructor [method]
|
||||
|
||||
```kotlin
|
||||
fun constructor(initiate: ConstructorFinder.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建需要重新查找的 `Constructor`。
|
||||
|
||||
你可以添加多个备选构造方法,直到成功为止,若最后依然失败,将停止查找并输出错误日志。
|
||||
|
||||
#### Result [class]
|
||||
|
||||
```kotlin
|
||||
inner class Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `RemedyPlan` 结果实现类。
|
||||
|
||||
##### onFind [method]
|
||||
|
||||
```kotlin
|
||||
fun onFind(initiate: Constructor<*>.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 当在 `RemedyPlan` 中找到结果时。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以方便地对重查找的 `Constructor` 实现 `onFind` 方法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
constructor {
|
||||
// Your code here.
|
||||
}.onFind {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
### Result [class]
|
||||
|
||||
```kotlin
|
||||
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Constructor` 查找结果实现类。
|
||||
|
||||
#### result [method]
|
||||
|
||||
```kotlin
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建监听结果事件方法体。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以使用 `lambda` 形式创建 `Result` 类。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
constructor {
|
||||
// Your code here.
|
||||
}.result {
|
||||
get().call()
|
||||
remedys {}
|
||||
onNoSuchConstructor {}
|
||||
}
|
||||
```
|
||||
|
||||
#### get [method]
|
||||
|
||||
```kotlin
|
||||
fun get(): Instance
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获得 `Constructor` 实例处理类。
|
||||
|
||||
!> 若你设置了 `remedys` 请使用 `wait` 回调结果方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以通过获得方法所在实例来执行构造方法创建新的实例对象。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
constructor {
|
||||
// Your code here.
|
||||
}.get().call()
|
||||
```
|
||||
|
||||
你可以 `cast` 构造方法为指定类型的实例对象。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
constructor {
|
||||
// Your code here.
|
||||
}.get().newInstance<TestClass>()
|
||||
```
|
||||
|
||||
!> 若构造方法含有参数则后方参数必填。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
constructor {
|
||||
// Your code here.
|
||||
}.get().newInstance<TestClass>("param1", "param2")
|
||||
```
|
||||
|
||||
#### give [method]
|
||||
|
||||
```kotlin
|
||||
fun give(): Constructor<*>?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到构造方法本身。
|
||||
|
||||
#### wait [method]
|
||||
|
||||
```kotlin
|
||||
fun wait(initiate: Instance.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获得 `Constructor` 实例处理类,配合 `RemedyPlan` 使用。
|
||||
|
||||
!> 若你设置了 `remedys` 必须使用此方法才能获得结果。
|
||||
|
||||
!> 若你没有设置 `remedys` 此方法将不会被回调。
|
||||
|
||||
#### remedys [method]
|
||||
|
||||
```kotlin
|
||||
fun remedys(initiate: RemedyPlan.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建构造方法重查找功能。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
当你遇到一种构造方法可能存在不同形式的存在时,可以使用 `RemedyPlan` 重新查找它,而没有必要使用 `onNoSuchConstructor` 捕获异常二次查找构造方法。
|
||||
|
||||
若第一次查找失败了,你还可以在这里继续添加此方法体直到成功为止。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
constructor {
|
||||
// Your code here.
|
||||
}.remedys {
|
||||
constructor {
|
||||
// Your code here.
|
||||
}
|
||||
constructor {
|
||||
// Your code here.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### onNoSuchConstructor [method]
|
||||
|
||||
```kotlin
|
||||
fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听找不到构造方法时。
|
||||
|
||||
只会返回第一次的错误信息,不会返回 `RemedyPlan` 的错误信息。
|
||||
|
||||
#### ignoredError [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredError(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略任何错误发出的警告。
|
||||
|
||||
若 `isNotIgnoredHookingFailure` 为 `false` 则自动忽略。
|
||||
|
||||
#### Instance [class]
|
||||
|
||||
```kotlin
|
||||
inner class Instance
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Constructor` 实例处理类。
|
||||
|
||||
##### call [method]
|
||||
|
||||
```kotlin
|
||||
fun call(vararg param: Any?): Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行构造方法创建目标实例,不指定目标实例类型。
|
||||
|
||||
##### newInstance [method]
|
||||
|
||||
```kotlin
|
||||
fun <T> newInstance(vararg param: Any?): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行构造方法创建目标实例 ,指定 `T` 目标实例类型。
|
41
docs/api/public/CurrentClass.md
Normal file
41
docs/api/public/CurrentClass.md
Normal file
@@ -0,0 +1,41 @@
|
||||
## CurrentClass [class]
|
||||
|
||||
```kotlin
|
||||
class CurrentClass(private val instance: Class<*>, private val self: Any)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 当前实例的类操作对象。
|
||||
|
||||
### field [method]
|
||||
|
||||
```kotlin
|
||||
fun field(initiate: FieldFinder.() -> Unit): FieldFinder.Result.Instance
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 调用当前实例中的变量。
|
||||
|
||||
### method [method]
|
||||
|
||||
```kotlin
|
||||
fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result.Instance
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 调用当前实例中的方法。
|
560
docs/api/public/FieldFinder.md
Normal file
560
docs/api/public/FieldFinder.md
Normal file
@@ -0,0 +1,560 @@
|
||||
## FieldFinder [class]
|
||||
|
||||
```kotlin
|
||||
class FieldFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>?) : BaseFinder()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.2` `修改`
|
||||
|
||||
合并到 `BaseFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Field` 查找类。
|
||||
|
||||
### ~~classSet [field]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.2` `移除`
|
||||
|
||||
### name [field]
|
||||
|
||||
```kotlin
|
||||
var name: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.70` `修改`
|
||||
|
||||
允许不填写名称
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Field` 名称。
|
||||
|
||||
!> 若不填写名称则必须存在一个其它条件。
|
||||
|
||||
### type [field]
|
||||
|
||||
```kotlin
|
||||
var type: Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Field` 类型。
|
||||
|
||||
可不填写类型,默认模糊查找并取第一个匹配的 `Field`。
|
||||
|
||||
### modifiers [method]
|
||||
|
||||
```kotlin
|
||||
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Field` 筛选条件。
|
||||
|
||||
可不设置筛选条件,默认模糊查找并取第一个匹配的 `Field`。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### order [method]
|
||||
|
||||
```kotlin
|
||||
fun order(): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 顺序筛选字节码的下标。
|
||||
|
||||
### name [method]
|
||||
|
||||
```kotlin
|
||||
fun name(value: String): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Field` 名称。
|
||||
|
||||
!> 若不填写名称则必须存在一个其它条件,默认模糊查找并取第一个匹配的 `Field`。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### type [method]
|
||||
|
||||
```kotlin
|
||||
fun type(value: Any): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Field` 类型。
|
||||
|
||||
!> 可不填写类型,默认模糊查找并取第一个匹配的 `Field`。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### Result [class]
|
||||
|
||||
```kotlin
|
||||
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Field` 查找结果实现类。
|
||||
|
||||
#### result [method]
|
||||
|
||||
```kotlin
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建监听结果事件方法体。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以使用 `lambda` 形式创建 `Result` 类。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
field {
|
||||
// Your code here.
|
||||
}.result {
|
||||
get(instance).set("something")
|
||||
get(instance).string()
|
||||
get(instance).cast<CustomClass>()
|
||||
get().boolean()
|
||||
give()
|
||||
onNoSuchField {}
|
||||
}
|
||||
```
|
||||
|
||||
#### get [method]
|
||||
```kotlin
|
||||
fun get(instance: Any?): Instance
|
||||
```
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量实例处理类。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以轻松地得到 `Field` 的实例以及使用它进行设置实例。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
field {
|
||||
// Your code here.
|
||||
}.get(instance).set("something")
|
||||
```
|
||||
|
||||
如果你取到的是静态 `Field`,可以不需要设置实例。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
field {
|
||||
// Your code here.
|
||||
}.get().set("something")
|
||||
```
|
||||
|
||||
#### give [method]
|
||||
|
||||
```kotlin
|
||||
fun give(): Field?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量本身。
|
||||
|
||||
#### onNoSuchField [method]
|
||||
|
||||
```kotlin
|
||||
fun onNoSuchField(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听找不到变量时。
|
||||
|
||||
#### ignoredError [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredError(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略任何错误发出的警告。
|
||||
|
||||
若 `isNotIgnoredHookingFailure` 为 `false` 则自动忽略。
|
||||
|
||||
#### Instance [class]
|
||||
|
||||
```kotlin
|
||||
inner class Instance(private val instance: Any?, val self: Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Field` 实例变量处理类。
|
||||
|
||||
##### cast [method]
|
||||
|
||||
```kotlin
|
||||
fun <T> cast(): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`of`~~ 为 `cast`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量实例。
|
||||
|
||||
##### byte [method]
|
||||
|
||||
```kotlin
|
||||
fun byte(): Byte?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Byte 实例。
|
||||
|
||||
##### int [method]
|
||||
|
||||
```kotlin
|
||||
fun int(): Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofInt`~~ 为 `int`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Int 实例。
|
||||
|
||||
##### long [method]
|
||||
|
||||
```kotlin
|
||||
fun long(): Long
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofLong`~~ 为 `long`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Long 实例。
|
||||
|
||||
##### short [method]
|
||||
|
||||
```kotlin
|
||||
fun short(): Short
|
||||
```
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofShort`~~ 为 `short`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Short 实例。
|
||||
|
||||
##### double [method]
|
||||
|
||||
```kotlin
|
||||
fun double(): Double
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofDouble`~~ 为 `double`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Double 实例。
|
||||
|
||||
##### float [method]
|
||||
|
||||
```kotlin
|
||||
fun float(): Float
|
||||
```
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofFloat`~~ 为 `float`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Float 实例。
|
||||
|
||||
##### string [method]
|
||||
|
||||
```kotlin
|
||||
fun string(): String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofString`~~ 为 `string`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 String 实例。
|
||||
|
||||
##### char [method]
|
||||
|
||||
```kotlin
|
||||
fun char(): Char
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Char 实例。
|
||||
|
||||
##### boolean [method]
|
||||
|
||||
```kotlin
|
||||
fun boolean(): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofBoolean`~~ 为 `boolean`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Boolean 实例。
|
||||
|
||||
##### any [method]
|
||||
|
||||
```kotlin
|
||||
fun any(): Any?
|
||||
```
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofAny`~~ 为 `any`
|
||||
|
||||
移动方法到 `Instance`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Any 实例。
|
||||
|
||||
##### array [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> array(): Array<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 Array 实例。
|
||||
|
||||
##### list [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> list(): List<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到变量 List 实例。
|
||||
|
||||
##### set [method]
|
||||
|
||||
```kotlin
|
||||
fun set(any: Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置变量实例。
|
||||
|
||||
##### setTrue [method]
|
||||
|
||||
```kotlin
|
||||
fun setTrue()
|
||||
```
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置变量实例为 `true`。
|
||||
|
||||
!> 请确保实例对象类型为 `Boolean`。
|
||||
|
||||
##### setFalse [method]
|
||||
|
||||
```kotlin
|
||||
fun setFalse()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置变量实例为 `false`。
|
||||
|
||||
!> 请确保实例对象类型为 `Boolean`。
|
||||
|
||||
##### setNull [method]
|
||||
|
||||
```kotlin
|
||||
fun setNull()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置变量实例为 `null`。
|
11
docs/api/public/GraphicsTypeFactory.md
Normal file
11
docs/api/public/GraphicsTypeFactory.md
Normal file
@@ -0,0 +1,11 @@
|
||||
## GraphicsTypeFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关 `Graphics` 的 `Class` 内容,跟随版本更新会逐一进行增加。
|
||||
|
||||
详情可 [点击这里](https://github.com/fankes/YukiHookAPI/blob/master/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/GraphicsTypeFactory.kt) 进行查看。
|
15
docs/api/public/HookClass.md
Normal file
15
docs/api/public/HookClass.md
Normal file
@@ -0,0 +1,15 @@
|
||||
## HookClass [class]
|
||||
|
||||
```kotlin
|
||||
class HookClass(var instance: Class<*>?, var name: String, var throwable: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建一个当前 Hook 的 `Class` 接管类。
|
||||
|
||||
`instance` 为实例,`name` 为实例完整包名,`throwable` 为找不到实例的时候抛出的异常。
|
580
docs/api/public/HookParam.md
Normal file
580
docs/api/public/HookParam.md
Normal file
@@ -0,0 +1,580 @@
|
||||
## HookParam [class]
|
||||
|
||||
```kotlin
|
||||
class HookParam(private val createrInstance: YukiHookCreater, private val wrapper: HookParamWrapper)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> Hook 方法、构造类的目标对象实现类。
|
||||
|
||||
### args [field]
|
||||
|
||||
```kotlin
|
||||
val args: Array<Any?>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
在 `v1.0` 添加
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 对象 `member` 或 `constructor` 的参数对象数组。
|
||||
|
||||
### firstArgs [field]
|
||||
|
||||
```kotlin
|
||||
val firstArgs: Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 对象 `member` 或 `constructor` 的参数对象数组第一位。
|
||||
|
||||
### lastArgs [field]
|
||||
|
||||
```kotlin
|
||||
val lastArgs: Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 对象 `member` 或 `constructor` 的参数对象数组最后一位。
|
||||
|
||||
### instance [field]
|
||||
|
||||
```kotlin
|
||||
val instance: Any
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 实例的对象。
|
||||
|
||||
!> 如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。
|
||||
|
||||
### instanceClass [field]
|
||||
|
||||
```kotlin
|
||||
val instanceClass: Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 实例的类对象。
|
||||
|
||||
### method [field]
|
||||
|
||||
```kotlin
|
||||
val method: Method
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 对象的方法。
|
||||
|
||||
### constructor [field]
|
||||
|
||||
```kotlin
|
||||
val constructor: Constructor
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 对象的构造方法。
|
||||
|
||||
### result [field]
|
||||
|
||||
```kotlin
|
||||
var result: Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取、设置当前 Hook 对象的 `method` 或 `constructor` 的返回值。
|
||||
|
||||
### firstArgs [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> firstArgs(): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 对象 [method] or [constructor] 的参数对象数组第一位 `T`。
|
||||
|
||||
### lastArgs [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> lastArgs(): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 对象 [method] or [constructor] 的参数对象数组最后一位 `T`。
|
||||
|
||||
### instance [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> instance(): T
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 实例的对象 `T`。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以通过 `instance` 方法轻松使用泛型 `cast` 为目标对象的类型。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
instance<Activity>().finish()
|
||||
```
|
||||
|
||||
### args [method]
|
||||
|
||||
```kotlin
|
||||
fun args(index: Int): ArgsModifyer
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 对象的 `method` 或 `constructor` 的参数实例化对象类。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以通过 `args` 方法修改当前 Hook 实例的方法、构造方法的参数内容。
|
||||
|
||||
`index` 的默认值为 `0`,如果只有一位 `param` 参数,你可以不写。
|
||||
|
||||
你可以直接使用 `set` 方法设置 `param` 为你的目标实例,接受 `Any` 类型。
|
||||
|
||||
!> 请确保 `param` 类型为你的目标实例类型。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
args().set("modify the value")
|
||||
```
|
||||
|
||||
你还可以使用 `setNull` 方法设置 `param` 为空。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
args(index = 1).setNull()
|
||||
```
|
||||
|
||||
你还可以使用 `setTrue` 方法设置 `param` 为 `true`。
|
||||
|
||||
!> 请确保 `param` 类型为 `Boolean`。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
args(index = 2).setTrue()
|
||||
```
|
||||
|
||||
你还可以使用 `setFalse` 方法设置 `param` 为 `false`。
|
||||
|
||||
!> 请确保 `param` 类型为 `Boolean`。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
args(index = 3).setFalse()
|
||||
```
|
||||
|
||||
### invokeOriginal [method]
|
||||
|
||||
```kotlin
|
||||
fun <T> Member.invokeOriginal(vararg args: Any?): Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行原始 `Member`。
|
||||
|
||||
<b>功能实例</b>
|
||||
|
||||
此方法可以 `invoke` 原始未经 Hook 的 `Member` 对象,取决于原始 `Member` 的参数和类型。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
member.invokeOriginal("test value")
|
||||
```
|
||||
|
||||
### resultTrue [method]
|
||||
|
||||
```kotlin
|
||||
fun resultTrue()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置当前 Hook 对象方法的 `result` 返回值为 `true`。
|
||||
|
||||
!> 请确保 `result` 类型为 `Boolean`。
|
||||
|
||||
### resultFalse [method]
|
||||
|
||||
```kotlin
|
||||
fun resultFalse()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置当前 Hook 对象方法的 `result` 返回值为 `false`。
|
||||
|
||||
!> 请确保 `result` 类型为 `Boolean`。
|
||||
|
||||
### resultNull [method]
|
||||
|
||||
```kotlin
|
||||
fun resultNull()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
!> 此方法将强制设置 Hook 对象方法的 `result` 为 `null`。
|
||||
|
||||
### ArgsModifyer [class]
|
||||
|
||||
```kotlin
|
||||
inner class ArgsModifyer(private val index: Int)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 对方法参数的修改进行实例化类。
|
||||
|
||||
#### cast [method]
|
||||
|
||||
```kotlin
|
||||
fun <T> cast(): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`of`~~ 为 `cast`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 `T`。
|
||||
|
||||
#### byte [method]
|
||||
|
||||
```kotlin
|
||||
fun byte(): Byte?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Byte。
|
||||
|
||||
#### int [method]
|
||||
|
||||
```kotlin
|
||||
fun int(): Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofInt`~~ 为 `int`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Int。
|
||||
|
||||
#### long [method]
|
||||
|
||||
```kotlin
|
||||
fun long(): Long
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofLong`~~ 为 `long`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Long。
|
||||
|
||||
#### short [method]
|
||||
|
||||
```kotlin
|
||||
fun short(): Short
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofShort`~~ 为 `short`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Short。
|
||||
|
||||
#### double [method]
|
||||
|
||||
```kotlin
|
||||
fun double(): Double
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofDouble`~~ 为 `double`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Double。
|
||||
|
||||
#### float [method]
|
||||
|
||||
```kotlin
|
||||
fun float(): Float
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofFloat`~~ 为 `float`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Float。
|
||||
|
||||
#### string [method]
|
||||
|
||||
```kotlin
|
||||
fun string(): String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofString`~~ 为 `string`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 String。
|
||||
|
||||
#### char [method]
|
||||
|
||||
```kotlin
|
||||
fun char(): Char
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Char。
|
||||
|
||||
#### boolean [method]
|
||||
|
||||
```kotlin
|
||||
fun boolean(): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.66` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`ofBoolean`~~ 为 `boolean`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Boolean。
|
||||
|
||||
#### array [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> array(): Array<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 Array。
|
||||
|
||||
#### list [method]
|
||||
```kotlin
|
||||
inline fun <reified T> list(): List<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法参数的实例对象 List。
|
||||
|
||||
#### set [method]
|
||||
|
||||
```kotlin
|
||||
fun <T> set(any: T?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置方法参数的实例对象。
|
||||
|
||||
#### setNull [method]
|
||||
|
||||
```kotlin
|
||||
fun setNull()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置方法参数的实例对象为 `null`。
|
||||
|
||||
#### setTrue [method]
|
||||
|
||||
```kotlin
|
||||
fun setTrue()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置方法参数的实例对象为 `true`。
|
||||
|
||||
!> 请确保目标对象的类型是 `Boolean`。
|
||||
|
||||
#### setFalse [method]
|
||||
|
||||
```kotlin
|
||||
fun setFalse()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 设置方法参数的实例对象为 `false`。
|
||||
|
||||
!> 请确保目标对象的类型是 `Boolean`。
|
17
docs/api/public/InjectYukiHookWithXposed.md
Normal file
17
docs/api/public/InjectYukiHookWithXposed.md
Normal file
@@ -0,0 +1,17 @@
|
||||
## InjectYukiHookWithXposed [annotation]
|
||||
|
||||
```kotlin
|
||||
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-注释)。
|
73
docs/api/public/LoggerFactory.md
Normal file
73
docs/api/public/LoggerFactory.md
Normal file
@@ -0,0 +1,73 @@
|
||||
## LoggerFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 `XposedBridge.log` 打印日志的功能。
|
||||
|
||||
### loggerD [method]
|
||||
|
||||
```kotlin
|
||||
fun loggerD(tag: String, msg: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `D`。
|
||||
|
||||
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
|
||||
|
||||
### loggerI [method]
|
||||
|
||||
```kotlin
|
||||
fun loggerI(tag: String, msg: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `I`。
|
||||
|
||||
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
|
||||
|
||||
### loggerW [method]
|
||||
|
||||
```kotlin
|
||||
fun loggerW(tag: String, msg: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `W`。
|
||||
|
||||
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
|
||||
|
||||
### loggerE [method]
|
||||
|
||||
```kotlin
|
||||
fun loggerE(tag: String, msg: String, e: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 向 `Logcat` 和 `XposedBridge` 打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。
|
||||
|
||||
`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。
|
656
docs/api/public/MethodFinder.md
Normal file
656
docs/api/public/MethodFinder.md
Normal file
@@ -0,0 +1,656 @@
|
||||
## MethodFinder [class]
|
||||
|
||||
```kotlin
|
||||
class MethodFinder(override val hookInstance: YukiHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.2` `修改`
|
||||
|
||||
合并到 `BaseFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 查找类。
|
||||
|
||||
### name [field]
|
||||
|
||||
```kotlin
|
||||
var name: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.70` `修改`
|
||||
|
||||
允许不填写名称
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 名称。
|
||||
|
||||
!> 若不填写名称则必须存在一个其它条件。
|
||||
|
||||
### paramCount [field]
|
||||
|
||||
```kotlin
|
||||
var paramCount: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 参数个数。
|
||||
|
||||
你可以不使用 `param` 指定参数类型而是仅使用此变量指定参数个数。
|
||||
|
||||
若参数个数小于零则忽略并使用 `param`。
|
||||
|
||||
### returnType [field]
|
||||
|
||||
```kotlin
|
||||
var returnType: Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 返回值,可不填写返回值,默认模糊查找并取第一个匹配的 `Method`。
|
||||
|
||||
### modifiers [method]
|
||||
|
||||
```kotlin
|
||||
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 筛选条件。
|
||||
|
||||
可不设置筛选条件,默认模糊查找并取第一个匹配的 `Method`。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### param [method]
|
||||
|
||||
```kotlin
|
||||
fun param(vararg paramType: Any): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 参数。
|
||||
|
||||
如果同时使用了 `paramCount` 则 `paramTypes` 的数量必须与 `paramCount` 完全匹配。
|
||||
|
||||
!> 无参 `Method` 不要使用此方法。
|
||||
|
||||
!> 有参 `Method` 必须使用此方法设定参数或使用 `paramCount` 指定个数。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### order [method]
|
||||
|
||||
```kotlin
|
||||
fun order(): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 顺序筛选字节码的下标。
|
||||
|
||||
### name [method]
|
||||
|
||||
```kotlin
|
||||
fun name(value: String): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 名称。
|
||||
|
||||
!> 若不填写名称则必须存在一个其它条件,默认模糊查找并取第一个匹配的 `Method`。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### paramCount [method]
|
||||
|
||||
```kotlin
|
||||
fun paramCount(num: Int): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 参数个数。
|
||||
|
||||
你可以不使用 `param` 指定参数类型而是仅使用此方法指定参数个数。
|
||||
|
||||
若参数个数小于零则忽略并使用 `param`。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### returnType [method]
|
||||
|
||||
```kotlin
|
||||
fun returnType(value: Any): IndexTypeCondition
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 返回值。
|
||||
|
||||
可不填写返回值,默认模糊查找并取第一个匹配的 `Method`。
|
||||
|
||||
!> 存在多个 `IndexTypeCondition` 时除了 `order` 只会生效最后一个。
|
||||
|
||||
### RemedyPlan [class]
|
||||
|
||||
```kotlin
|
||||
inner class RemedyPlan
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 重查找实现类,可累计失败次数直到查找成功。
|
||||
|
||||
#### method [method]
|
||||
|
||||
```kotlin
|
||||
fun method(initiate: MethodFinder.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建需要重新查找的 `Method`。
|
||||
|
||||
你可以添加多个备选方法,直到成功为止,若最后依然失败,将停止查找并输出错误日志。
|
||||
|
||||
#### Result [class]
|
||||
|
||||
```kotlin
|
||||
inner class Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `RemedyPlan` 结果实现类。
|
||||
|
||||
##### onFind [method]
|
||||
|
||||
```kotlin
|
||||
fun onFind(initiate: Method.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 当在 `RemedyPlan` 中找到结果时。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以方便地对重查找的 `Method` 实现 `onFind` 方法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
method {
|
||||
// Your code here.
|
||||
}.onFind {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
### Result [class]
|
||||
|
||||
```kotlin
|
||||
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 查找结果实现类。
|
||||
|
||||
#### result [method]
|
||||
|
||||
```kotlin
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建监听结果事件方法体。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以使用 `lambda` 形式创建 `Result` 类。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
method {
|
||||
// Your code here.
|
||||
}.result {
|
||||
get(instance).call()
|
||||
remedys {}
|
||||
onNoSuchMethod {}
|
||||
}
|
||||
```
|
||||
|
||||
#### get [method]
|
||||
|
||||
```kotlin
|
||||
fun get(instance: Any?): Instance
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获得 `Method` 实例处理类。
|
||||
|
||||
!> 若你设置了 `remedys` 请使用 `wait` 回调结果方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以通过获得方法所在实例来执行方法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
method {
|
||||
// Your code here.
|
||||
}.get(instance).call()
|
||||
```
|
||||
|
||||
若当前为静态方法,你可以不设置实例。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
method {
|
||||
// Your code here.
|
||||
}.get().call()
|
||||
```
|
||||
|
||||
#### give [method]
|
||||
|
||||
```kotlin
|
||||
fun give(): Method?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到方法本身。
|
||||
|
||||
#### wait [method]
|
||||
|
||||
```kotlin
|
||||
fun wait(instance: Any?, initiate: Instance.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获得 `Method` 实例处理类,配合 `RemedyPlan` 使用。
|
||||
|
||||
!> 若你设置了 `remedys` 必须使用此方法才能获得结果。
|
||||
|
||||
!> 若你没有设置 `remedys` 此方法将不会被回调。
|
||||
|
||||
#### remedys [method]
|
||||
|
||||
```kotlin
|
||||
fun remedys(initiate: RemedyPlan.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建方法重查找功能。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
当你遇到一种方法可能存在不同形式的存在时,可以使用 `RemedyPlan` 重新查找它,而没有必要使用 `onNoSuchMethod` 捕获异常二次查找方法。
|
||||
|
||||
若第一次查找失败了,你还可以在这里继续添加此方法体直到成功为止。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
method {
|
||||
// Your code here.
|
||||
}.remedys {
|
||||
method {
|
||||
// Your code here.
|
||||
}
|
||||
method {
|
||||
// Your code here.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### onNoSuchMethod [method]
|
||||
|
||||
```kotlin
|
||||
fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听找不到方法时。
|
||||
|
||||
只会返回第一次的错误信息,不会返回 `RemedyPlan` 的错误信息。
|
||||
|
||||
#### ignoredError [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredError(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略任何错误发出的警告。
|
||||
|
||||
若 `isNotIgnoredHookingFailure` 为 `false` 则自动忽略。
|
||||
|
||||
#### Instance [class]
|
||||
|
||||
```kotlin
|
||||
inner class Instance(private val instance: Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `Method` 实例处理类。
|
||||
|
||||
##### call [method]
|
||||
|
||||
```kotlin
|
||||
fun call(vararg param: Any?): Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,不指定返回值类型。
|
||||
|
||||
##### invoke [method]
|
||||
|
||||
```kotlin
|
||||
fun <T> invoke(vararg param: Any?): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 `T` 返回值类型。
|
||||
|
||||
##### byte [method]
|
||||
|
||||
```kotlin
|
||||
fun byte(vararg param: Any?): Byte?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Byte 返回值类型。
|
||||
|
||||
##### int [method]
|
||||
|
||||
```kotlin
|
||||
fun int(vararg param: Any?): Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`callInt`~~ 为 `int`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Int 返回值类型。
|
||||
|
||||
##### long [method]
|
||||
|
||||
```kotlin
|
||||
fun long(vararg param: Any?): Long
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`callLong`~~ 为 `long`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Long 返回值类型。
|
||||
|
||||
##### short [method]
|
||||
|
||||
```kotlin
|
||||
fun short(vararg param: Any?): Short
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`callShort`~~ 为 `short`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Short 返回值类型。
|
||||
|
||||
##### double [method]
|
||||
|
||||
```kotlin
|
||||
fun double(vararg param: Any?): Double
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`callDouble`~~ 为 `double`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Double 返回值类型。
|
||||
|
||||
##### float [method]
|
||||
|
||||
```kotlin
|
||||
fun float(vararg param: Any?): Float
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`callFloat`~~ 为 `float`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Float 返回值类型。
|
||||
|
||||
##### string [method]
|
||||
|
||||
```kotlin
|
||||
fun string(vararg param: Any?): String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`callString`~~ 为 `string`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 String 返回值类型。
|
||||
|
||||
##### char [method]
|
||||
|
||||
```kotlin
|
||||
fun char(vararg param: Any?): Char
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Char 返回值类型。
|
||||
|
||||
##### boolean [method]
|
||||
|
||||
```kotlin
|
||||
fun boolean(vararg param: Any?): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.65` `新增`
|
||||
|
||||
`v1.0.68` `修改`
|
||||
|
||||
修改 ~~`callBoolean`~~ 为 `boolean`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Boolean 返回值类型。
|
||||
|
||||
#### array [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> array(vararg param: Any?): Array<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 Array 返回值类型。
|
||||
|
||||
#### list [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> list(vararg param: Any?): List<T>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 执行方法,指定 List 返回值类型。
|
193
docs/api/public/ModifierRules.md
Normal file
193
docs/api/public/ModifierRules.md
Normal file
@@ -0,0 +1,193 @@
|
||||
## ModifierRules [class]
|
||||
|
||||
```kotlin
|
||||
class ModifierRules
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是一个 `Member` 描述符定义类。
|
||||
|
||||
可对 R8 混淆后的 `Member` 进行更加详细的定位。
|
||||
|
||||
### asPublic
|
||||
|
||||
```kotlin
|
||||
fun asPublic()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `public`。
|
||||
|
||||
### asPrivate
|
||||
|
||||
```kotlin
|
||||
fun asPrivate()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `private`。
|
||||
|
||||
### asProtected
|
||||
|
||||
```kotlin
|
||||
fun asProtected()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `protected`。
|
||||
|
||||
### asStatic
|
||||
|
||||
```kotlin
|
||||
fun asStatic()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `static`。
|
||||
|
||||
对于任意的静态 `Member` 可添加此描述进行确定。
|
||||
|
||||
!> 特别注意 Kotlin -> Jvm 后的 `object` 类中的方法并不是静态的。
|
||||
|
||||
### asFinal
|
||||
|
||||
```kotlin
|
||||
fun asFinal()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `final`。
|
||||
|
||||
!> 特别注意在 Kotlin -> Jvm 后没有 `open` 标识的 `Member` 和没有任何关联的 `Member` 都将为 `final`。
|
||||
|
||||
### asSynchronized
|
||||
|
||||
```kotlin
|
||||
fun asSynchronized()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `synchronized`。
|
||||
|
||||
### asVolatile
|
||||
|
||||
```kotlin
|
||||
fun asVolatile()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `volatile`。
|
||||
|
||||
### asTransient
|
||||
|
||||
```kotlin
|
||||
fun asTransient()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `transient`。
|
||||
|
||||
### asNative
|
||||
|
||||
```kotlin
|
||||
fun asNative()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `native`。
|
||||
|
||||
对于任意 JNI 对接的 `Member` 可添加此描述进行确定。
|
||||
|
||||
### asInterface
|
||||
|
||||
```kotlin
|
||||
fun asInterface()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `interface`。
|
||||
|
||||
### asAbstract
|
||||
|
||||
```kotlin
|
||||
fun asAbstract()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `abstract`。
|
||||
|
||||
对于任意的抽象 `Member` 可添加此描述进行确定。
|
||||
|
||||
### asStrict
|
||||
|
||||
```kotlin
|
||||
fun asStrict()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加描述 `Member` 类型包含 `strict`。
|
433
docs/api/public/PackageParam.md
Normal file
433
docs/api/public/PackageParam.md
Normal file
@@ -0,0 +1,433 @@
|
||||
## PackageParam [class]
|
||||
|
||||
```kotlin
|
||||
open class PackageParam(private var wrapper: PackageParamWrapper?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 装载 Hook 的目标 APP 入口对象实现类。
|
||||
|
||||
### appClassLoader [field]
|
||||
|
||||
```kotlin
|
||||
val appClassLoader:ClassLoader
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook APP 的 `ClassLoader`。
|
||||
|
||||
### appInfo [field]
|
||||
|
||||
```kotlin
|
||||
val appInfo: ApplicationInfo
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook APP 的 `ApplicationInfo`。
|
||||
|
||||
### appContext [field]
|
||||
|
||||
```kotlin
|
||||
val appContext: Application
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.72` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook APP 的 `Application`。
|
||||
|
||||
### processName [field]
|
||||
|
||||
```kotlin
|
||||
val processName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook APP 的进程名称。
|
||||
|
||||
### packageName [field]
|
||||
|
||||
```kotlin
|
||||
val packageName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook APP 的包名。
|
||||
|
||||
### isFirstApplication [field]
|
||||
|
||||
```kotlin
|
||||
val isFirstApplication: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook APP 是否为第一个 `Application`。
|
||||
|
||||
### mainProcessName [field]
|
||||
|
||||
```kotlin
|
||||
val mainProcessName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook APP 的主进程名称。
|
||||
|
||||
其对应的就是 `packageName`。
|
||||
|
||||
### prefs [field]
|
||||
|
||||
```kotlin
|
||||
val prefs: YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获得当前使用的存取数据对象缓存实例。
|
||||
|
||||
### prefs [method]
|
||||
|
||||
```kotlin
|
||||
fun prefs(name: String): YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获得当前使用的存取数据对象缓存实例。
|
||||
|
||||
你可以通过 `name` 来自定义 Sp 存储的名称。
|
||||
|
||||
### loadApp [method]
|
||||
|
||||
```kotlin
|
||||
fun loadApp(name: String, initiate: PackageParam.() -> Unit)
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun loadApp(name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 装载并 Hook 指定包名的 APP。
|
||||
|
||||
`name` 为 APP 的包名,后方的两个参数一个可作为 `lambda` 方法体使用,一个可以直接装载子 Hooker。
|
||||
|
||||
### withProcess [method]
|
||||
|
||||
```kotlin
|
||||
fun withProcess(name: String, initiate: PackageParam.() -> Unit)
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun withProcess(name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 装载并 Hook APP 的指定进程。
|
||||
|
||||
`name` 为 APP 的进程名称,后方的两个参数一个可作为 `lambda` 方法体使用,一个可以直接装载子 Hooker。
|
||||
|
||||
### loadHooker [method]
|
||||
|
||||
```kotlin
|
||||
fun loadHooker(hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 装载 Hook 子类。
|
||||
|
||||
你可以填入 `hooker` 在 Hooker 中继续装载 Hooker。
|
||||
|
||||
### clazz [field]
|
||||
|
||||
```kotlin
|
||||
val String.clazz: Class<*>
|
||||
```
|
||||
|
||||
```kotlin
|
||||
val VariousClass.clazz: Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 字符串、`VariousClass` 转换为实体类。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以轻松地将 `String` 类型的 `Class` 包名转为 `Class` 实例。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
"com.example.demo.DemoClass".clazz
|
||||
```
|
||||
|
||||
为了美观,你可以把字符串用 `(` `)` 括起来。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
("com.example.demo.DemoClass").clazz
|
||||
```
|
||||
|
||||
你还可以创建一个 `VariousClass`,并转换为实体类。
|
||||
|
||||
`VariousClass` 会枚举所有设置的 `Class` 并最终获得完全匹配的那一个。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").clazz
|
||||
```
|
||||
|
||||
### hasClass [field]
|
||||
|
||||
```kotlin
|
||||
val String.hasClass: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 通过字符串使用当前 `appClassLoader` 查找类是否存在。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以轻松的使用此方法判断字符串中的类是否存在。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
if("com.example.demo.DemoClass".hasClass) {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
### findClass [method]
|
||||
|
||||
```kotlin
|
||||
fun findClass(name: String): HookClass
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun findClass(vararg name: String): VariousClass
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `修改`
|
||||
|
||||
移除了 ~~`findClass(various: VariousClass)`~~ 方法
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 通过完整包名+名称查找需要被 Hook 的 `Class`。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以使用三种方式查找你需要 Hook 的目标 `Class`。
|
||||
|
||||
你可以直接将被查找的 `Class` 完整包名+名称填入 `name` 中。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
findClass(name = "com.example.demo.DemoClass")
|
||||
```
|
||||
|
||||
若你不确定多个版本的 `Class` 以及不同名称,你可以将多个完整包名+名称填入 `name` 中。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
findClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2", "com.example.demo.DemoClass3")
|
||||
```
|
||||
|
||||
你还可以创建一个 `VariousClass`,将 `Class` 的完整包名+名称填入 `VariousClass` 的 `name` 中并填入 `various` 参数中。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
val variousClass = VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2", "com.example.demo.DemoClass3")
|
||||
```
|
||||
|
||||
### hook [method]
|
||||
|
||||
```kotlin
|
||||
fun String.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun VariousClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `修改`
|
||||
|
||||
新增 `VariousClass` 的直接调用 `hook` 方法
|
||||
|
||||
`v1.0.2` `修改`
|
||||
|
||||
新增 `String` 的直接调用 `hook` 方法
|
||||
|
||||
`v1.0.3` `修改`
|
||||
|
||||
新增 `YukiHookCreater.Result` 返回值
|
||||
|
||||
`v1.0.70` `修改`
|
||||
|
||||
新增 `isUseAppClassLoader` 参数
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是一切 Hook 的入口创建方法,Hook 方法、构造类。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
如你所见,Hook 方法体的创建可使用 4 种方式。
|
||||
|
||||
通过字符串类名得到 `HookClass` 实例进行创建。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
("com.example.demo.DemoClass").hook {
|
||||
// Your code here.
|
||||
}
|
||||
|
||||
```
|
||||
通过 `findClass` 得到 `HookClass` 实例进行创建。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
findClass(name = "com.example.demo.DemoClass").hook {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
使用 `stub` 或直接拿到 `Class` 实例进行创建。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
Activity::class.java.hook {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
使用 `VariousClass` 实例进行创建。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").hook {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
或者直接使用可变字符串数组进行创建。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
findClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").hook {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
!> 以下是关于 Hook 目标 Class 的一个特殊情况说明。
|
||||
|
||||
若你 Hook 的 `Class` 实例的 `ClassLoader` 并不是当前的 `appClassLoader`,那么你需要做一下小的调整。
|
||||
|
||||
在 `hook` 方法中加入 `isUseAppClassLoader = false`,这样,你的 `Class` 就不会被重新绑定到 `appClassLoader` 了。
|
||||
|
||||
此方案适用于目标 `Class` 无法在当前 `appClassLoader` 中被得到但可以得到 `Class` 实例的情况。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
YourClass.hook(isUseAppClassLoader = false) {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
59
docs/api/public/PrefsData.md
Normal file
59
docs/api/public/PrefsData.md
Normal file
@@ -0,0 +1,59 @@
|
||||
## PrefsData [class]
|
||||
|
||||
```kotlin
|
||||
data class PrefsData<T>(var key: String, var value: T)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 键值对存储构造类。
|
||||
|
||||
这个类是对 `YukiHookModulePrefs` 的一个扩展用法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
建立一个模板类定义模块与宿主需要使用的键值数据。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
object DataConst {
|
||||
|
||||
val TEST_KV_DATA_1 = PrefsData("test_data_1", "defalut value")
|
||||
val TEST_KV_DATA_2 = PrefsData("test_data_2", false)
|
||||
val TEST_KV_DATA_3 = PrefsData("test_data_3", 0)
|
||||
}
|
||||
```
|
||||
|
||||
键值数据定义后,你就可以方便地在模块和宿主中调用所需要的数据。
|
||||
|
||||
> 模块示例如下
|
||||
|
||||
```kotlin
|
||||
// 读取
|
||||
val data = modulePrefs.get(DataConst.TEST_KV_DATA_1)
|
||||
// 写入
|
||||
modulePrefs.put(DataConst.TEST_KV_DATA_1, "written value")
|
||||
```
|
||||
|
||||
> 宿主示例如下
|
||||
|
||||
```kotlin
|
||||
// 读取 String
|
||||
val dataString = prefs.get(DataConst.TEST_KV_DATA_1)
|
||||
// 读取 Boolean
|
||||
val dataBoolean = prefs.get(DataConst.TEST_KV_DATA_2)
|
||||
```
|
||||
|
||||
你依然可以不使用模板定义的默认值,随时修改你的默认值。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
// 读取 - 此时 data 取到的默认值将会是 2 - 并不是模板提供的 0
|
||||
val data = prefs.get(DataConst.TEST_KV_DATA_3, 2)
|
||||
```
|
383
docs/api/public/ReflectionFactory.md
Normal file
383
docs/api/public/ReflectionFactory.md
Normal file
@@ -0,0 +1,383 @@
|
||||
## ReflectionFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是自定义 `Member` 和 `Class` 相关功能的查找匹配以及 `invoke` 的封装类。
|
||||
|
||||
### hasClass [field]
|
||||
|
||||
```kotlin
|
||||
val String.hasClass: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 通过字符串查找类是否存在。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以轻松的使用此方法判断字符串中的类是否存在。
|
||||
|
||||
!> 此查找仅限使用当前的 `ClassLoader`,若要指定 `ClassLoader` 请使用下方的 `hasClass` 同名方法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
if("com.example.demo.DemoClass".hasClass) {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
### hookClass [field]
|
||||
|
||||
```kotlin
|
||||
val Class<*>.hookClass: HookClass
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 将 `Class` 转换为 `HookClass`。
|
||||
|
||||
### normalClass [field]
|
||||
|
||||
```kotlin
|
||||
val HookClass.normalClass: Class<*>?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 将 `HookClass` 转换为 `Class`。
|
||||
|
||||
### classOf [method]
|
||||
|
||||
```kotlin
|
||||
fun classOf(name: String, loader: ClassLoader?): Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 通过字符串使用指定的 `ClassLoader` 转换为实体类。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以直接填写你要查找的目标 `Class`,必须在当前 `ClassLoader` 下存在。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
classOf(name = "com.example.demo.DemoClass")
|
||||
```
|
||||
|
||||
你还可以自定义 `Class` 所在的 `ClassLoader`。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
classOf(name = "com.example.demo.DemoClass", classLoader)
|
||||
```
|
||||
|
||||
### hasClass [method]
|
||||
|
||||
```kotlin
|
||||
fun String.hasClass(loader: ClassLoader?): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 通过字符串使用指定的 `ClassLoader` 查找类是否存在。
|
||||
|
||||
### hasField [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.4` `新增`
|
||||
|
||||
`v1.0.67` `修改`
|
||||
|
||||
合并到 `FieldFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找变量是否存在。
|
||||
|
||||
### hasMethod [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `修改`
|
||||
|
||||
新增 `returnType` 参数
|
||||
|
||||
`v1.0.67` `修改`
|
||||
|
||||
合并到 `MethodFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找方法是否存在。
|
||||
|
||||
### hasConstructor [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
`v1.0.67` `修改`
|
||||
|
||||
合并到 `ConstructorFinder`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找构造方法是否存在。
|
||||
|
||||
### hasModifiers [method]
|
||||
|
||||
```kotlin
|
||||
fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查询 `Member` 中匹配的描述符。
|
||||
|
||||
### ~~obtainStaticFieldAny [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `移除`
|
||||
|
||||
### ~~obtainFieldAny [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `移除`
|
||||
|
||||
### ~~modifyStaticField [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `移除`
|
||||
|
||||
### ~~modifyField [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `移除`
|
||||
|
||||
### field [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找并得到变量。
|
||||
|
||||
### method [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `修改`
|
||||
|
||||
~~`obtainMethod`~~ 更名为 `method`
|
||||
|
||||
新增 `returnType` 参数
|
||||
|
||||
`v1.0.2` `修改`
|
||||
|
||||
合并到 `MethodFinder` 方法体。
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找并得到方法。
|
||||
|
||||
### constructor [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `修改`
|
||||
|
||||
~~`obtainConstructor`~~ 更名为 `constructor`
|
||||
|
||||
`v1.0.2` `修改`
|
||||
|
||||
合并到 `ConstructorFinder` 方法体。
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找并得到构造类。
|
||||
|
||||
### ~~callStatic [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `修改`
|
||||
|
||||
~~`invokeStatic`~~ 更名为 `callStatic`
|
||||
|
||||
`v1.0.2` `移除`
|
||||
|
||||
### ~~call [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.1` `修改`
|
||||
|
||||
~~`invokeAny`~~ 更名为 `call`
|
||||
|
||||
`v1.0.2` `移除`
|
||||
|
||||
### current [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T : Any> T.current(initiate: CurrentClass.() -> Unit): T
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获得当前实例的类操作对象。
|
||||
|
||||
### buildOf [method]
|
||||
|
||||
```kotlin
|
||||
fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): T?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 通过构造方法创建新实例,指定类型 `T`。
|
||||
|
||||
### buildOfAny [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.buildOfAny(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): Any?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 通过构造方法创建新实例,任意类型 `Any`。
|
||||
|
||||
### allMethods [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 遍历当前类中的所有方法。
|
||||
|
||||
### allConstructors [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.allConstructors(callback: (index: Int, constructor: Constructor<*>) -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 遍历当前类中的所有构造方法。
|
||||
|
||||
### allFields [method]
|
||||
|
||||
```kotlin
|
||||
fun Class<*>.allFields(callback: (index: Int, field: Field) -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 遍历当前类中的所有变量。
|
11
docs/api/public/VariableTypeFactory.md
Normal file
11
docs/api/public/VariableTypeFactory.md
Normal file
@@ -0,0 +1,11 @@
|
||||
## VariableTypeFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是一个预置 Hook 类型的常量类,主要为 `Java` 相关基本变量类型的 `Class` 内容,跟随版本更新会逐一进行增加。
|
||||
|
||||
详情可 [点击这里](https://github.com/fankes/YukiHookAPI/blob/master/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt) 进行查看。
|
29
docs/api/public/VariousClass.md
Normal file
29
docs/api/public/VariousClass.md
Normal file
@@ -0,0 +1,29 @@
|
||||
## VariousClass [class]
|
||||
|
||||
```kotlin
|
||||
class VariousClass(vararg var name: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是一个不确定性 `Class` 类名装载器,通过 `name` 装载 `Class` 名称数组。
|
||||
|
||||
### get [method]
|
||||
|
||||
```kotlin
|
||||
fun get(loader: ClassLoader? = null): Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取匹配的实体类。
|
||||
|
||||
使用当前 `loader` 装载目标 `Class`。
|
11
docs/api/public/ViewTypeFactory.md
Normal file
11
docs/api/public/ViewTypeFactory.md
Normal file
@@ -0,0 +1,11 @@
|
||||
## ViewTypeFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是一个预置 Hook 类型的常量类,主要为 `Android` 相关 `Widget` 的 `Class` 内容,跟随版本更新会逐一进行增加。
|
||||
|
||||
详情可 [点击这里](https://github.com/fankes/YukiHookAPI/blob/master/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ViewTypeFactory.kt) 进行查看。
|
27
docs/api/public/YukiBaseHooker.md
Normal file
27
docs/api/public/YukiBaseHooker.md
Normal file
@@ -0,0 +1,27 @@
|
||||
## YukiBaseHooker [class]
|
||||
|
||||
```kotlin
|
||||
abstract class YukiBaseHooker : PackageParam()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `YukiHookAPI` 的子类 Hooker 实现。
|
||||
|
||||
### onHook [method]
|
||||
|
||||
```kotlin
|
||||
fun onHook()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 子类 Hook 开始。
|
296
docs/api/public/YukiHookAPI.md
Normal file
296
docs/api/public/YukiHookAPI.md
Normal file
@@ -0,0 +1,296 @@
|
||||
## YukiHookAPI [object]
|
||||
|
||||
```kotlin
|
||||
object YukiHookAPI
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是 `YukiHookAPI` 的 API 调用总类,Hook 相关功能的开始、Hook 相关功能的配置都在这里。
|
||||
|
||||
### API_VERSION_NAME [field]
|
||||
|
||||
```kotlin
|
||||
const val API_VERSION_NAME: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.4` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 `YukiHookAPI` 的版本。
|
||||
|
||||
### API_VERSION_CODE [field]
|
||||
|
||||
```kotlin
|
||||
const val API_VERSION_CODE: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.4` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 `YukiHookAPI` 的版本号。
|
||||
|
||||
### executorName [field]
|
||||
|
||||
```kotlin
|
||||
val executorName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 框架的名称。
|
||||
|
||||
无法获取会返回 `unknown`,`XposedBridge` 不存在会返回 `invalid`。
|
||||
|
||||
### executorVersion [field]
|
||||
|
||||
```kotlin
|
||||
val executorVersion: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 框架的版本。
|
||||
|
||||
无法获取会返回 `-1`。
|
||||
|
||||
### Configs [object]
|
||||
|
||||
```kotlin
|
||||
object Configs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 对 API 相关功能的配置类。
|
||||
|
||||
#### debugTag [field]
|
||||
|
||||
```kotlin
|
||||
var debugTag: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 模块在调用 `logger` 时打印的日志 `TAG` 名称。
|
||||
|
||||
你可以方便地进行自定义,并可以在 `Logcat` 和 `XposedBridge.log` 中找到它们。
|
||||
|
||||
#### isDebug [field]
|
||||
|
||||
```kotlin
|
||||
var isDebug: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 是否启用 DEBUG 模式。
|
||||
|
||||
默认为开启状态,开启后模块将会向 `Logcat` 和 `XposedBridge.log` 打印详细的 Hook 日志,关闭后仅会打印 `E` 级别的日志。
|
||||
|
||||
#### isAllowPrintingLogs [field]
|
||||
|
||||
```kotlin
|
||||
var isAllowPrintingLogs: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.4` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 是否启用调试日志的输出功能。
|
||||
|
||||
!> 关闭后将会停用 `YukiHookAPI` 对全部日志的输出,但是不影响当你手动调用日志方法输出日志。
|
||||
|
||||
#### isEnableModulePrefsCache [field]
|
||||
|
||||
```kotlin
|
||||
var isEnableModulePrefsCache: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 是否启用 `YukiHookModulePrefs` 的键值缓存功能。
|
||||
|
||||
为防止内存复用过高问题,此功能默认启用。
|
||||
|
||||
你可以手动在 `YukiHookModulePrefs` 中自由开启和关闭缓存功能以及清除缓存。
|
||||
|
||||
#### isEnableMemberCache [field]
|
||||
|
||||
```kotlin
|
||||
var isEnableMemberCache: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.68` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 是否启用 `Member` 缓存功能。
|
||||
|
||||
为防止 `Member` 复用过高造成的系统 GC 问题,此功能默认启用。
|
||||
|
||||
启用后会缓存已经找到的 `Class`、`Method`、`Constructor`、`Field`。
|
||||
|
||||
缓存的 `Member` 都将处于 `MemberCacheStore` 的全局静态实例中。
|
||||
|
||||
推荐使用 `MethodFinder`、`ConstructorFinder`、`FieldFinder` 来获取 `Member`。
|
||||
|
||||
除非缓存的 `Member` 发生了混淆的问题,例如使用 R8 混淆后的 APP 的目标 `Member`,否则建议启用。
|
||||
|
||||
### configs [method]
|
||||
|
||||
```kotlin
|
||||
fun configs(initiate: Configs.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 对 `Configs` 类实现了一个 `lambda` 方法体。
|
||||
|
||||
你可以轻松的调用它进行配置。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以在 `HookEntryClass` 的 `onInit` 方法中调用 `configs` 方法完成对 API 的功能配置,实时生效。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
class HookEntryClass : YukiHookXposedInitProxy {
|
||||
|
||||
override fun onInit() {
|
||||
YukiHookAPI.configs {
|
||||
debugTag = "YukiHookAPI"
|
||||
isDebug = true
|
||||
isAllowPrintingLogs = true
|
||||
isEnableModulePrefsCache = true
|
||||
isEnableMemberCache = true
|
||||
}
|
||||
}
|
||||
|
||||
override fun onHook() {
|
||||
// Your code here.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
若觉得上面的写法不美观,你还可以写得更加简洁。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
class HookEntryClass : YukiHookXposedInitProxy {
|
||||
|
||||
override fun onInit() = configs {
|
||||
debugTag = "YukiHookAPI"
|
||||
isDebug = true
|
||||
isAllowPrintingLogs = true
|
||||
isEnableModulePrefsCache = true
|
||||
isEnableMemberCache = true
|
||||
}
|
||||
|
||||
override fun onHook() {
|
||||
// Your code here.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
你也可以不通过 `configs` 方法,直接进行配置。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
class HookEntryClass : YukiHookXposedInitProxy {
|
||||
|
||||
override fun onInit() {
|
||||
YukiHookAPI.Configs.debugTag = "YukiHookAPI"
|
||||
YukiHookAPI.Configs.isDebug = true
|
||||
YukiHookAPI.Configs.isAllowPrintingLogs = true
|
||||
YukiHookAPI.Configs.isEnableModulePrefsCache = true
|
||||
YukiHookAPI.Configs.isEnableMemberCache = true
|
||||
}
|
||||
|
||||
override fun onHook() {
|
||||
// Your code here.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### encase [method]
|
||||
|
||||
```kotlin
|
||||
fun encase(initiate: PackageParam.() -> Unit)
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun encase(vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun encase(baseContext: Context?, initiate: PackageParam.() -> Unit)
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun encase(baseContext: Context?, vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 装载 Hook 入口的核心方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
详情请参考
|
||||
|
||||
- [通过 Lambda 创建](config/api-example?id=通过-lambda-创建)
|
||||
|
||||
- [通过自定义 Hooker 创建](config/api-example?id=通过自定义-hooker-创建)
|
||||
|
||||
- [作为 Hook API 使用需要注意的地方](config/api-example?id=作为-hook-api-使用需要注意的地方)
|
694
docs/api/public/YukiHookCreater.md
Normal file
694
docs/api/public/YukiHookCreater.md
Normal file
@@ -0,0 +1,694 @@
|
||||
## YukiHookCreater [class]
|
||||
|
||||
```kotlin
|
||||
class YukiHookCreater(private val packageParam: PackageParam, private val hookClass: HookClass)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> `YukiHookAPI` 核心 Hook 实现类。
|
||||
|
||||
### instanceClass [field]
|
||||
|
||||
```kotlin
|
||||
val instanceClass: Class<*>
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.2` `修改`
|
||||
|
||||
~~`thisClass`~~ 更名为 `instanceClass`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 得到当前被 Hook 的 `Class`。
|
||||
|
||||
!> 不推荐直接使用,万一得不到 `Class` 对象则会无法处理异常导致崩溃。
|
||||
|
||||
### injectMember [method]
|
||||
|
||||
```kotlin
|
||||
fun injectMember(tag: String, initiate: MemberHookCreater.() -> Unit): MemberHookCreater.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 注入要 Hook 的方法、构造类。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以注入任意方法与构造类,使用 `injectMember` 即可创建一个 `Hook` 对象。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
你还可以自定义 `tag`,方便你在调试的时候能够区分你的 `Hook` 对象。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember(tag = "KuriharaYuki") {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
### MemberHookCreater [class]
|
||||
|
||||
```kotlin
|
||||
inner class MemberHookCreater(var tag: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> Hook 核心功能实现类,查找和处理需要 Hook 的方法、构造类。
|
||||
|
||||
#### member [field]
|
||||
|
||||
```kotlin
|
||||
var member: Member?
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 手动指定要 Hook 的方法、构造类。
|
||||
|
||||
!> 不建议使用此方法设置目标需要 Hook 的 `Member` 对象,你可以使用 `method` 或 `constructor` 方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以调用 `instanceClass` 来手动查询要 Hook 的方法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember {
|
||||
member = instanceClass.getMethod("test", StringType)
|
||||
beforeHook {}
|
||||
afterHook {}
|
||||
}
|
||||
```
|
||||
|
||||
#### allMethods [method]
|
||||
|
||||
```kotlin
|
||||
fun allMethods(name: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找并 Hook 当前 `Class` 中指定 `name` 的全部方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
使用此方法可将当前类的全部同名方法进行批量 Hook。
|
||||
|
||||
!> 无法准确处理每个方法的 `param`,建议使用 `method` 对每个方法单独 Hook。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember {
|
||||
allMethods(name = "test")
|
||||
beforeHook {}
|
||||
afterHook {}
|
||||
}
|
||||
```
|
||||
|
||||
#### allConstructors [method]
|
||||
|
||||
```kotlin
|
||||
fun allConstructors()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找并 Hook 当前 `Class` 中的全部构造方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
使用此方法可将当前类的全部构造方法进行批量 Hook。
|
||||
|
||||
!> 无法准确处理每个构造方法的 `param`,建议使用 `constructor` 对每个构造方法单独 Hook。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember {
|
||||
allConstructors()
|
||||
beforeHook {}
|
||||
afterHook {}
|
||||
}
|
||||
```
|
||||
|
||||
#### method [method]
|
||||
|
||||
```kotlin
|
||||
fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找当前 `Class` 需要 Hook 的方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可参考 [MethodFinder](#methodfinder-class) 查看详细用法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember {
|
||||
method {
|
||||
name = "test"
|
||||
param(StringType)
|
||||
returnType = UnitType
|
||||
}
|
||||
beforeHook {}
|
||||
afterHook {}
|
||||
}
|
||||
```
|
||||
|
||||
#### constructor [method]
|
||||
|
||||
```kotlin
|
||||
fun constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 查找当前 `Class` 需要 Hook 的构造方法。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可参考 [ConstructorFinder](#constructorfinder-class) 查看详细用法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember {
|
||||
constructor { param(StringType) }
|
||||
beforeHook {}
|
||||
afterHook {}
|
||||
}
|
||||
```
|
||||
|
||||
#### field [method]
|
||||
|
||||
```kotlin
|
||||
fun HookParam.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 使用当前 `hookClass` 查找并得到 `Field`。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可参考 [FieldFinder](#fieldfinder-class) 查看详细用法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember {
|
||||
method {
|
||||
name = "test"
|
||||
param(StringType)
|
||||
returnType = UnitType
|
||||
}
|
||||
afterHook {
|
||||
field {
|
||||
name = "isSweet"
|
||||
type = BooleanType
|
||||
}.get(instance).setTrue()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### method [method]
|
||||
|
||||
```kotlin
|
||||
fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 使用当前 `hookClass` 查找并得到方法。
|
||||
|
||||
#### constructor [method]
|
||||
|
||||
```kotlin
|
||||
fun HookParam.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.2` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 使用当前 `hookClass` 查找并得到构造方法。
|
||||
|
||||
#### beforeHook [method]
|
||||
|
||||
```kotlin
|
||||
fun beforeHook(initiate: HookParam.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 在方法执行完成前 Hook。
|
||||
|
||||
#### afterHook [method]
|
||||
|
||||
```kotlin
|
||||
fun afterHook(initiate: HookParam.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 在方法执行完成后 Hook。
|
||||
|
||||
#### replaceAny [method]
|
||||
|
||||
```kotlin
|
||||
fun replaceAny(initiate: HookParam.() -> Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 拦截并替换此方法内容,给出返回值。
|
||||
|
||||
#### replaceUnit [method]
|
||||
|
||||
```kotlin
|
||||
fun replaceUnit(initiate: HookParam.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 拦截并替换此方法内容,没有返回值,可以称为 `Void`。
|
||||
|
||||
#### replaceTo [method]
|
||||
|
||||
```kotlin
|
||||
fun replaceTo(any: Any?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 拦截并替换方法返回值。
|
||||
|
||||
#### replaceToTrue [method]
|
||||
|
||||
```kotlin
|
||||
fun replaceToTrue()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 拦截并替换方法返回值为 `true`。
|
||||
|
||||
!> 确保替换方法的返回对象为 `Boolean`。
|
||||
|
||||
#### replaceToFalse [method]
|
||||
|
||||
```kotlin
|
||||
fun replaceToFalse()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 拦截并替换方法返回值为 `false`。
|
||||
|
||||
!> 确保替换方法的返回对象为 `Boolean`。
|
||||
|
||||
#### intercept [method]
|
||||
|
||||
```kotlin
|
||||
fun intercept()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 拦截此方法。
|
||||
|
||||
!> 这将会禁止此方法执行并返回 `null`。
|
||||
|
||||
#### Result [class]
|
||||
|
||||
```kotlin
|
||||
inner class Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听 Hook 结果实现类。
|
||||
|
||||
##### result [method]
|
||||
|
||||
```kotlin
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.5` `修改`
|
||||
|
||||
~~`failures`~~ 修改为 `result`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建监听失败事件方法体。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
你可以使用此方法为 `Result` 类创建 `lambda` 方法体。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectMember {
|
||||
// Your code here.
|
||||
}.result {
|
||||
onHooked {}
|
||||
ignoredConductFailure()
|
||||
onHookingFailure {}
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
##### by [method]
|
||||
|
||||
```kotlin
|
||||
fun by(initiate: () -> Boolean): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
|
||||
|
||||
##### onHooked [method]
|
||||
|
||||
```kotlin
|
||||
fun onHooked(initiate: (Member) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听 `member` Hook 成功的回调方法。
|
||||
|
||||
在首次 Hook 成功后回调。
|
||||
|
||||
##### onNoSuchMemberFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun onNoSuchMemberFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听 `member` 不存在发生错误的回调方法。
|
||||
|
||||
##### onConductFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun onConductFailure(initiate: (HookParam, Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听 Hook 进行过程中发生错误的回调方法。
|
||||
|
||||
##### onHookingFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun onHookingFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听 Hook 开始时发生的错误的回调方法。
|
||||
|
||||
##### onAllFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun onAllFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听全部 Hook 过程发生错误的回调方法。
|
||||
|
||||
##### ignoredNoSuchMemberFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredNoSuchMemberFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略 `member` 不存在发生的错误。
|
||||
|
||||
##### ignoredConductFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredConductFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略 Hook 进行过程中发生的错误。
|
||||
|
||||
##### ignoredHookingFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredHookingFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略 Hook 开始时发生的错误。
|
||||
|
||||
##### ignoredAllFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredAllFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略全部 Hook 过程发生的错误。
|
||||
|
||||
### Result [class]
|
||||
|
||||
```kotlin
|
||||
inner class Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听全部 Hook 结果实现类。
|
||||
|
||||
#### result [method]
|
||||
|
||||
```kotlin
|
||||
fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
`v1.0.5` `修改`
|
||||
|
||||
~~`failures`~~ 修改为 `result`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 创建监听事件方法体。
|
||||
|
||||
#### by [method]
|
||||
|
||||
```kotlin
|
||||
fun by(initiate: () -> Boolean): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
|
||||
|
||||
#### onPrepareHook [method]
|
||||
|
||||
```kotlin
|
||||
fun onPrepareHook(initiate: () -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听 `hookClass` 存在时准备开始 Hook 的操作。
|
||||
|
||||
#### onHookClassNotFoundFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun onHookClassNotFoundFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 监听 `hookClass` 找不到时发生错误的回调方法。
|
||||
|
||||
#### ignoredHookClassNotFoundFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredHookClassNotFoundFailure(): Result
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.3` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略 `hookClass` 找不到时出现的错误。
|
125
docs/api/public/YukiHookFactory.md
Normal file
125
docs/api/public/YukiHookFactory.md
Normal file
@@ -0,0 +1,125 @@
|
||||
## YukiHookFactory [kt]
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是 `YukiHookAPI` 相关 `lambda` 方法的封装类以及部分 API 用法。
|
||||
|
||||
### configs [method]
|
||||
|
||||
```kotlin
|
||||
fun YukiHookXposedInitProxy.configs(initiate: YukiHookAPI.Configs.() -> Unit)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.1` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 在 `YukiHookXposedInitProxy` 中配置 `Configs`。
|
||||
|
||||
### encase [method]
|
||||
|
||||
```kotlin
|
||||
fun YukiHookXposedInitProxy.encase(initiate: PackageParam.() -> Unit)
|
||||
```
|
||||
|
||||
```kotlin
|
||||
fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 在 `YukiHookXposedInitProxy` 中装载 `YukiHookAPI`。
|
||||
|
||||
### modulePrefs [field]
|
||||
|
||||
```kotlin
|
||||
val Context.modulePrefs: YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取模块的存取对象。
|
||||
|
||||
### modulePrefs [method]
|
||||
|
||||
```kotlin
|
||||
fun Context.modulePrefs(name: String): YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取模块的存取对象,可设置 `name` 为自定义 Sp 存储名称。
|
||||
|
||||
### processName [field]
|
||||
|
||||
```kotlin
|
||||
val Context.processName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前进程名称。
|
||||
|
||||
### isModuleActive [field]
|
||||
|
||||
```kotlin
|
||||
val Context.isModuleActive: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.6` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 判断模块是否在 Xposed 或太极、无极中激活。
|
||||
|
||||
### isXposedModuleActive [field]
|
||||
|
||||
```kotlin
|
||||
val Any?.isXposedModuleActive: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.6` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 仅判断模块是否在 Xposed 中激活。
|
||||
|
||||
### isTaiChiModuleActive [field]
|
||||
|
||||
```kotlin
|
||||
val Context.isTaiChiModuleActive: Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 仅判断模块是否在太极、无极中激活。
|
309
docs/api/public/YukiHookModulePrefs.md
Normal file
309
docs/api/public/YukiHookModulePrefs.md
Normal file
@@ -0,0 +1,309 @@
|
||||
## YukiHookModulePrefs [class]
|
||||
|
||||
```kotlin
|
||||
class YukiHookModulePrefs(private val context: Context?)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 实现 Xposed 模块的数据存取,对接 `SharedPreferences` 和 `XSharedPreferences`。
|
||||
|
||||
在不同环境智能选择存取使用的对象。
|
||||
|
||||
!> 请注意此功能为实验性功能,仅在 LSPosed 环境测试通过,EdXposed 理论也可以使用但不再推荐。
|
||||
|
||||
使用 LSPosed 环境请在 `AndroidManifests.xml` 中将 `xposedminversion` 最低设置为 `93`。
|
||||
|
||||
详见 [New XSharedPreferences](https://github.com/LSPosed/LSPosed/wiki/New-XSharedPreferences#for-the-module)。
|
||||
|
||||
未使用 LSPosed 环境请将你的模块 `API` 降至 `26` 以下,`YukiHookAPI` 将会尝试使用 `makeWorldReadable` 但仍有可能不成功。
|
||||
|
||||
太极请参阅 [文件权限/配置/XSharedPreference](https://taichi.cool/zh/doc/for-xposed-dev.html#文件权限-配置-xsharedpreference)。
|
||||
|
||||
!> 当你在 Xposed 模块中存取数据的时候 `context` 必须不能是空的。
|
||||
|
||||
### name [method]
|
||||
|
||||
```kotlin
|
||||
fun name(name: String): YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 自定义 Sp 存储名称。
|
||||
|
||||
<b>功能示例</b>
|
||||
|
||||
在 `Activity` 中的使用方法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
modulePrefs("custom_name").getString("custom_key")
|
||||
```
|
||||
|
||||
在 Xposed 模块环境 `PackageParam` 中的使用方法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
prefs("custom_name").getString("custom_key")
|
||||
```
|
||||
|
||||
### direct [method]
|
||||
|
||||
```kotlin
|
||||
fun direct(): YukiHookModulePrefs
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 忽略缓存直接读取键值。
|
||||
|
||||
无论是否开启 `YukiHookAPI.Configs.isEnableModulePrefsCache`。
|
||||
|
||||
仅在 `XSharedPreferences` 下生效。
|
||||
|
||||
### getString [method]
|
||||
|
||||
```kotlin
|
||||
fun getString(key: String, value: String): String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取 `String` 键值。
|
||||
|
||||
### getBoolean [method]
|
||||
|
||||
```kotlin
|
||||
fun getBoolean(key: String, value: Boolean): Boolean
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取 `Boolean` 键值。
|
||||
|
||||
### getInt [method]
|
||||
|
||||
```kotlin
|
||||
fun getInt(key: String, value: Int): Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取 `Int` 键值。
|
||||
|
||||
### getLong [method]
|
||||
|
||||
```kotlin
|
||||
fun getLong(key: String, value: Long): Long
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取 `Long` 键值。
|
||||
|
||||
### getFloat [method]
|
||||
|
||||
```kotlin
|
||||
fun getFloat(key: String, value: Float): Float
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取 `Float` 键值。
|
||||
|
||||
### remove [method]
|
||||
|
||||
```kotlin
|
||||
fun remove(key: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 移除全部包含 `key` 的存储数据。
|
||||
|
||||
!> 在 `XSharedPreferences` 环境下只读,无法使用。
|
||||
|
||||
### remove [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> remove(prefs: PrefsData<T>)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 移除 `PrefsData.key` 的存储数据。
|
||||
|
||||
!> 在 `XSharedPreferences` 环境下只读,无法使用。
|
||||
|
||||
### putString [method]
|
||||
|
||||
```kotlin
|
||||
fun putString(key: String, value: String)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 存储 `String` 键值。
|
||||
|
||||
!> 在 `XSharedPreferences` 环境下只读,无法使用。
|
||||
|
||||
### putBoolean [method]
|
||||
|
||||
```kotlin
|
||||
fun putBoolean(key: String, value: Boolean)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 存储 `Boolean` 键值。
|
||||
|
||||
!> 在 `XSharedPreferences` 环境下只读,无法使用。
|
||||
|
||||
### putInt [method]
|
||||
|
||||
```kotlin
|
||||
fun putInt(key: String, value: Int)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 存储 `Int` 键值。
|
||||
|
||||
!> 在 `XSharedPreferences` 环境下只读,无法使用。
|
||||
|
||||
### putLong [method]
|
||||
|
||||
```kotlin
|
||||
fun putLong(key: String, value: Long)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 存储 `Long` 键值。
|
||||
|
||||
!> 在 `XSharedPreferences` 环境下只读,无法使用。
|
||||
|
||||
### putFloat [method]
|
||||
|
||||
```kotlin
|
||||
fun putFloat(key: String, value: Float)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 存储 `Float` 键值。
|
||||
|
||||
!> 在 `XSharedPreferences` 环境下只读,无法使用。
|
||||
|
||||
### get [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> get(prefs: PrefsData<T>, value: T): T
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 智能获取指定类型的键值。
|
||||
|
||||
### put [method]
|
||||
|
||||
```kotlin
|
||||
inline fun <reified T> put(prefs: PrefsData<T>, value: T)
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.67` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 智能存储指定类型的键值。
|
||||
|
||||
!> 在 `XSharedPreferences` 环境下只读,无法使用。
|
||||
|
||||
### clearCache [method]
|
||||
|
||||
```kotlin
|
||||
fun clearCache()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 清除 `XSharedPreferences` 中缓存的键值数据。
|
||||
|
||||
无论是否开启 `YukiHookAPI.Configs.isEnableModulePrefsCache`。
|
||||
|
||||
调用此方法将清除当前存储的全部键值缓存。
|
||||
|
||||
下次将从 `XSharedPreferences` 重新读取。
|
55
docs/api/public/YukiHookModuleStatus.md
Normal file
55
docs/api/public/YukiHookModuleStatus.md
Normal file
@@ -0,0 +1,55 @@
|
||||
## YukiHookModuleStatus [class]
|
||||
|
||||
```kotlin
|
||||
object YukiHookModuleStatus
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 这是一个 Xposed 模块 Hook 状态类。
|
||||
|
||||
### executorName [field]
|
||||
|
||||
```kotlin
|
||||
val executorName: String
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 框架的名称。
|
||||
|
||||
模块未激活会返回 `unknown`,获取过程发生错误会返回 `invalid`。
|
||||
|
||||
### executorVersion [field]
|
||||
|
||||
```kotlin
|
||||
val executorVersion: Int
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 获取当前 Hook 框架的版本。
|
||||
|
||||
模块未激活会返回 `-1`。
|
||||
|
||||
### ~~isActive [method]~~ <!-- {docsify-ignore} -->
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.6` `作废`
|
||||
|
||||
请使用 `isModuleActive`、`isXposedModuleActive` 或 `isTaiChiModuleActive`
|
45
docs/api/public/YukiHookXposedInitProxy.md
Normal file
45
docs/api/public/YukiHookXposedInitProxy.md
Normal file
@@ -0,0 +1,45 @@
|
||||
## YukiHookXposedInitProxy [interface]
|
||||
|
||||
```kotlin
|
||||
interface YukiHookXposedInitProxy
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> YukiHookAPI 的 Xposed 装载 API 调用接口。
|
||||
|
||||
### onInit [method]
|
||||
|
||||
```kotlin
|
||||
fun onInit()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0.5` `新增`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> 配置 `YukiHookAPI.Configs` 的初始化方法。
|
||||
|
||||
!> 在这里只能进行初始化配置,不能进行 Hook 操作。
|
||||
|
||||
此方法可选,你也可以选择不对 `YukiHookAPI.Configs` 进行配置。
|
||||
|
||||
### onHook [method]
|
||||
|
||||
```kotlin
|
||||
fun onHook()
|
||||
```
|
||||
|
||||
<b>变更记录</b>
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
<b>功能描述</b>
|
||||
|
||||
> Xposed API 的模块装载调用入口方法。
|
Reference in New Issue
Block a user