mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 09:45:19 +08:00
...
This commit is contained in:
@@ -431,7 +431,7 @@ class YukiHookCreater(private val packageParam: PackageParam, private val hookCl
|
|||||||
* @param throwable 异常信息
|
* @param throwable 异常信息
|
||||||
*/
|
*/
|
||||||
private fun onHookFailureMsg(throwable: Throwable) =
|
private fun onHookFailureMsg(throwable: Throwable) =
|
||||||
loggerE(msg = "Try to hook $hookClass[$member] got an Exception [$tag]", e = throwable)
|
loggerE(msg = "Try to hook ${hookClass.instance ?: hookClass.name}[$member] got an Exception [$tag]", e = throwable)
|
||||||
|
|
||||||
override fun toString() = "$member$tag#YukiHook"
|
override fun toString() = "$member$tag#YukiHook"
|
||||||
|
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
*
|
*
|
||||||
* This file is Created by fankes on 2022/2/2.
|
* This file is Created by fankes on 2022/2/2.
|
||||||
*/
|
*/
|
||||||
@file:Suppress("unused", "MemberVisibilityCanBePrivate")
|
@file:Suppress("unused", "MemberVisibilityCanBePrivate", "UNCHECKED_CAST")
|
||||||
|
|
||||||
package com.highcapable.yukihookapi.hook.param
|
package com.highcapable.yukihookapi.hook.param
|
||||||
|
|
||||||
@@ -114,6 +114,15 @@ class HookParam(private val wrapper: HookParamWrapper) {
|
|||||||
*/
|
*/
|
||||||
fun args(index: Int = 0) = ArgsModifyer(index)
|
fun args(index: Int = 0) = ArgsModifyer(index)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行原始 [Member]
|
||||||
|
*
|
||||||
|
* 未进行 Hook 的 [Member]
|
||||||
|
* @param args 参数实例
|
||||||
|
* @return [T]
|
||||||
|
*/
|
||||||
|
fun <T> Member.invokeOriginal(vararg args: Array<Any?>?) = wrapper.invokeOriginalMember(member = this, *args) as? T?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置 [result] 返回值为 true
|
* 设置 [result] 返回值为 true
|
||||||
*
|
*
|
||||||
|
@@ -29,6 +29,7 @@ package com.highcapable.yukihookapi.hook.param.wrapper
|
|||||||
|
|
||||||
import com.highcapable.yukihookapi.hook.param.HookParam
|
import com.highcapable.yukihookapi.hook.param.HookParam
|
||||||
import de.robv.android.xposed.XC_MethodHook
|
import de.robv.android.xposed.XC_MethodHook
|
||||||
|
import de.robv.android.xposed.XposedBridge
|
||||||
import java.lang.reflect.Member
|
import java.lang.reflect.Member
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,4 +74,15 @@ class HookParamWrapper(private val baseParam: XC_MethodHook.MethodHookParam) {
|
|||||||
fun setArgs(index: Int, any: Any?) {
|
fun setArgs(index: Int, any: Any?) {
|
||||||
baseParam.args[index] = any
|
baseParam.args[index] = any
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行原始 [Member]
|
||||||
|
*
|
||||||
|
* 未进行 Hook 的 [Member]
|
||||||
|
* @param member 实例
|
||||||
|
* @param args 参数实例
|
||||||
|
* @return [Any] or null
|
||||||
|
*/
|
||||||
|
fun invokeOriginalMember(member: Member, vararg args: Array<Any?>?): Any? =
|
||||||
|
XposedBridge.invokeOriginalMethod(member, instance, args)
|
||||||
}
|
}
|
Reference in New Issue
Block a user