Files
YukiHookAPI/docs/api/public/HookParam.md

9.0 KiB
Raw Blame History

HookParam [class]

class HookParam(private val createrInstance: YukiHookCreater, private val wrapper: HookParamWrapper)

变更记录

v1.0 添加

功能描述

Hook 方法、构造类的目标对象实现类。

args [field]

val args: Array<Any?>

变更记录

v1.0 添加

功能描述

获取当前 Hook 对象 memberconstructor 的参数对象数组。

firstArgs [field]

变更记录

v1.0 添加

v1.0.75 移除

请使用 args(index = 0)args().first()

lastArgs [field]

变更记录

v1.0 添加

v1.0.75 移除

请使用 args().last()

instance [field]

val instance: Any

变更记录

v1.0 添加

功能描述

获取当前 Hook 实例的对象。

!> 如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。

instanceClass [field]

val instanceClass: Class<*>

变更记录

v1.0 添加

功能描述

获取当前 Hook 实例的类对象。

method [field]

val method: Method

变更记录

v1.0 添加

功能描述

获取当前 Hook 对象的方法。

constructor [field]

val constructor: Constructor

变更记录

v1.0 添加

功能描述

获取当前 Hook 对象的构造方法。

result [field]

var result: Any?

变更记录

v1.0 添加

功能描述

获取、设置当前 Hook 对象的 methodconstructor 的返回值。

result [method]

inline fun <reified T> result(): T?

变更记录

v1.0.75 新增

功能描述

获取当前 Hook 对象的 methodconstructor 的返回值 T

firstArgs [method]

变更记录

v1.0.66 新增

v1.0.75 移除

lastArgs [method]

变更记录

v1.0.66 新增

v1.0.75 移除

instance [method]

inline fun <reified T> instance(): T

变更记录

v1.0 添加

功能描述

获取当前 Hook 实例的对象 T

功能示例

你可以通过 instance 方法轻松使用泛型 cast 为目标对象的类型。

示例如下

instance<Activity>().finish()

args [method]

fun args(): ArgsIndexCondition

变更记录

v1.0.75 新增

功能描述

获取当前 Hook 对象的 method or constructor 的参数数组下标实例化类。

args [method]

fun args(index: Int): ArgsModifyer

变更记录

v1.0 添加

v1.0.75 修改

默认值 index = 0 移动到新的使用方法 args().first()

功能描述

获取当前 Hook 对象的 methodconstructor 的参数实例化对象类。

功能示例

你可以通过 args 方法修改当前 Hook 实例的方法、构造方法的参数内容。

你可以直接使用 set 方法设置 param 为你的目标实例,接受 Any 类型。

!> 请确保 param 类型为你的目标实例类型。

示例如下

args(index = 0).set("modify the value")

你可以这样直接设置第一位 param 的值。

示例如下

args().first().set("modify the value")

你还可以直接设置最后一位 param 的值。

示例如下

args().last().set("modify the value")

你还可以使用 setNull 方法设置 param 为空。

示例如下

args(index = 1).setNull()

你还可以使用 setTrue 方法设置 paramtrue

!> 请确保 param 类型为 Boolean

示例如下

args(index = 1).setTrue()

你还可以使用 setFalse 方法设置 paramfalse

!> 请确保 param 类型为 Boolean

示例如下

args(index = 1).setFalse()

invokeOriginal [method]

fun <T> Member.invokeOriginal(vararg args: Any?): Any?

变更记录

v1.0 添加

功能描述

执行原始 Member

功能实例

此方法可以 invoke 原始未经 Hook 的 Member 对象,取决于原始 Member 的参数和类型。

示例如下

member.invokeOriginal("test value")

resultTrue [method]

fun resultTrue()

变更记录

v1.0 添加

功能描述

设置当前 Hook 对象方法的 result 返回值为 true

!> 请确保 result 类型为 Boolean

resultFalse [method]

fun resultFalse()

变更记录

v1.0 添加

功能描述

设置当前 Hook 对象方法的 result 返回值为 false

!> 请确保 result 类型为 Boolean

resultNull [method]

fun resultNull()

变更记录

v1.0 添加

功能描述

!> 此方法将强制设置 Hook 对象方法的 resultnull

ArgsIndexCondition [class]

inner class ArgsIndexCondition

变更记录

v1.0.75 新增

功能描述

对方法参数的数组下标进行实例化类。

first [method]

fun first(): ArgsModifyer

变更记录

v1.0.75 新增

功能描述

获取当前 Hook 对象的 method or constructor 的参数数组第一位。

last [method]

fun last(): ArgsModifyer

变更记录

v1.0.75 新增

功能描述

获取当前 Hook 对象的 method or constructor 的参数数组最后一位。

ArgsModifyer [class]

inner class ArgsModifyer(private val index: Int)

变更记录

v1.0 添加

功能描述

对方法参数的修改进行实例化类。

cast [method]

fun <T> cast(): T?

变更记录

v1.0.66 新增

v1.0.68 修改

修改 ofcast

功能描述

得到方法参数的实例对象 T

byte [method]

fun byte(): Byte?

变更记录

v1.0.68 新增

功能描述

得到方法参数的实例对象 Byte。

int [method]

fun int(): Int

变更记录

v1.0.66 新增

v1.0.68 修改

修改 ofIntint

功能描述

得到方法参数的实例对象 Int。

long [method]

fun long(): Long

变更记录

v1.0.66 新增

v1.0.68 修改

修改 ofLonglong

功能描述

得到方法参数的实例对象 Long。

short [method]

fun short(): Short

变更记录

v1.0.66 新增

v1.0.68 修改

修改 ofShortshort

功能描述

得到方法参数的实例对象 Short。

double [method]

fun double(): Double

变更记录

v1.0.66 新增

v1.0.68 修改

修改 ofDoubledouble

功能描述

得到方法参数的实例对象 Double。

float [method]

fun float(): Float

变更记录

v1.0.66 新增

v1.0.68 修改

修改 ofFloatfloat

功能描述

得到方法参数的实例对象 Float。

string [method]

fun string(): String

变更记录

v1.0.66 新增

v1.0.68 修改

修改 ofStringstring

功能描述

得到方法参数的实例对象 String。

char [method]

fun char(): Char

变更记录

v1.0.68 新增

功能描述

得到方法参数的实例对象 Char。

boolean [method]

fun boolean(): Boolean

变更记录

v1.0.66 新增

v1.0.68 修改

修改 ofBooleanboolean

功能描述

得到方法参数的实例对象 Boolean。

any [method]

fun any(): Any?

变更记录

v1.0.76 新增

功能描述

得到方法参数的实例对象 Any。

array [method]

inline fun <reified T> array(): Array<T>

变更记录

v1.0.68 新增

功能描述

得到方法参数的实例对象 Array。

list [method]

inline fun <reified T> list(): List<T>

变更记录

v1.0.68 新增

功能描述

得到方法参数的实例对象 List。

set [method]

fun <T> set(any: T?)

变更记录

v1.0 添加

功能描述

设置方法参数的实例对象。

setNull [method]

fun setNull()

变更记录

v1.0 添加

功能描述

设置方法参数的实例对象为 null

setTrue [method]

fun setTrue()

变更记录

v1.0 添加

功能描述

设置方法参数的实例对象为 true

!> 请确保目标对象的类型是 Boolean

setFalse [method]

fun setFalse()

变更记录

v1.0 添加

功能描述

设置方法参数的实例对象为 false

!> 请确保目标对象的类型是 Boolean