This commit is contained in:
2022-02-04 19:55:46 +08:00
parent b204ee29fe
commit 9c8f5061fe

View File

@@ -99,7 +99,7 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
private var onNoSuchMemberCallback: ((Throwable) -> Unit)? = null private var onNoSuchMemberCallback: ((Throwable) -> Unit)? = null
/** 全部错误回调 */ /** 全部错误回调 */
private var onFailureCallback: ((Throwable) -> Unit)? = null private var onAllFailureCallback: ((Throwable) -> Unit)? = null
/** 是否为替换 Hook 模式 */ /** 是否为替换 Hook 模式 */
private var isReplaceHookMode = false private var isReplaceHookMode = false
@@ -126,8 +126,8 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
}.onFailure { }.onFailure {
isStopHookMode = true isStopHookMode = true
onNoSuchMemberCallback?.invoke(it) onNoSuchMemberCallback?.invoke(it)
onFailureCallback?.invoke(it) onAllFailureCallback?.invoke(it)
if (onNoSuchMemberCallback == null && onFailureCallback == null) onHookFailureMsg(it) if (onNoSuchMemberCallback == null && onAllFailureCallback == null) onHookFailureMsg(it)
} }
} }
@@ -143,8 +143,8 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
}.onFailure { }.onFailure {
isStopHookMode = true isStopHookMode = true
onNoSuchMemberCallback?.invoke(it) onNoSuchMemberCallback?.invoke(it)
onFailureCallback?.invoke(it) onAllFailureCallback?.invoke(it)
if (onNoSuchMemberCallback == null && onFailureCallback == null) onHookFailureMsg(it) if (onNoSuchMemberCallback == null && onAllFailureCallback == null) onHookFailureMsg(it)
} }
} }
@@ -159,8 +159,8 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
} catch (e: Throwable) { } catch (e: Throwable) {
isStopHookMode = true isStopHookMode = true
onNoSuchMemberCallback?.invoke(e) onNoSuchMemberCallback?.invoke(e)
onFailureCallback?.invoke(e) onAllFailureCallback?.invoke(e)
if (onNoSuchMemberCallback == null && onFailureCallback == null) onHookFailureMsg(e) if (onNoSuchMemberCallback == null && onAllFailureCallback == null) onHookFailureMsg(e)
FieldFinder(hookClass).Result() FieldFinder(hookClass).Result()
} }
@@ -280,8 +280,8 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
replaceHookCallback?.invoke(param) replaceHookCallback?.invoke(param)
} catch (e: Throwable) { } catch (e: Throwable) {
onConductFailureCallback?.invoke(param, e) onConductFailureCallback?.invoke(param, e)
onFailureCallback?.invoke(e) onAllFailureCallback?.invoke(e)
if (onConductFailureCallback == null && onFailureCallback == null) if (onConductFailureCallback == null && onAllFailureCallback == null)
onHookFailureMsg(e) onHookFailureMsg(e)
null null
} }
@@ -297,8 +297,8 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
beforeHookCallback?.invoke(param) beforeHookCallback?.invoke(param)
}.onFailure { }.onFailure {
onConductFailureCallback?.invoke(param, it) onConductFailureCallback?.invoke(param, it)
onFailureCallback?.invoke(it) onAllFailureCallback?.invoke(it)
if (onConductFailureCallback == null && onFailureCallback == null) if (onConductFailureCallback == null && onAllFailureCallback == null)
onHookFailureMsg(it) onHookFailureMsg(it)
} }
} }
@@ -311,8 +311,8 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
afterHookCallback?.invoke(param) afterHookCallback?.invoke(param)
}.onFailure { }.onFailure {
onConductFailureCallback?.invoke(param, it) onConductFailureCallback?.invoke(param, it)
onFailureCallback?.invoke(it) onAllFailureCallback?.invoke(it)
if (onConductFailureCallback == null && onFailureCallback == null) if (onConductFailureCallback == null && onAllFailureCallback == null)
onHookFailureMsg(it) onHookFailureMsg(it)
} }
} }
@@ -320,14 +320,14 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
}) })
}.onFailure { }.onFailure {
onHookingFailureCallback?.invoke(it) onHookingFailureCallback?.invoke(it)
onFailureCallback?.invoke(it) onAllFailureCallback?.invoke(it)
if (onHookingFailureCallback == null && onFailureCallback == null) onHookFailureMsg(it) if (onHookingFailureCallback == null && onAllFailureCallback == null) onHookFailureMsg(it)
} }
} ?: error("Hook Member cannot be null") } ?: error("Hook Member cannot be null")
} }
/** /**
* Hook 失败但未设置 [onFailureCallback] 将默认输出失败信息 * Hook 失败但未设置 [onAllFailureCallback] 将默认输出失败信息
* @param throwable 异常信息 * @param throwable 异常信息
*/ */
private fun onHookFailureMsg(throwable: Throwable) = private fun onHookFailureMsg(throwable: Throwable) =
@@ -385,7 +385,7 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
* @return [Result] 可继续向下监听 * @return [Result] 可继续向下监听
*/ */
fun onAllFailure(initiate: (Throwable) -> Unit): Result { fun onAllFailure(initiate: (Throwable) -> Unit): Result {
onFailureCallback = initiate onAllFailureCallback = initiate
return this return this
} }
} }