From c66705c77ba68ba13200fa4ac2249923992e0970 Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Fri, 1 Apr 2022 23:11:01 +0800 Subject: [PATCH] Fix hookAllMembers failed but no error throws --- .../highcapable/yukihookapi/hook/core/YukiHookCreater.kt | 6 +++++- .../yukihookapi/hook/core/finder/base/BaseFinder.kt | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiHookCreater.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiHookCreater.kt index 9dc8053c..c5c19347 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiHookCreater.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiHookCreater.kt @@ -461,18 +461,22 @@ class YukiHookCreater(private val packageParam: PackageParam, private val hookCl HookMemberMode.HOOK_ALL_METHODS -> if (isReplaceHookMode) XposedBridge.hookAllMethods(hookClass.instance, allMethodsName, replaceMent) + .also { if (it.size <= 0) throw NoSuchMethodError("No method name \"$allMethodsName\" matched") } else XposedBridge.hookAllMethods(hookClass.instance, allMethodsName, beforeAfterHook) + .also { if (it.size <= 0) throw NoSuchMethodError("No method name \"$allMethodsName\" matched") } HookMemberMode.HOOK_ALL_CONSTRUCTORS -> if (isReplaceHookMode) XposedBridge.hookAllConstructors(hookClass.instance, replaceMent) + .also { if (it.size <= 0) throw NoSuchMethodError("No constructor matched") } else XposedBridge.hookAllConstructors(hookClass.instance, beforeAfterHook) + .also { if (it.size <= 0) throw NoSuchMethodError("No constructor matched") } else -> error("Hooked got a no error possible") } }.onFailure { val isMemberNotFound = it.message?.lowercase()?.contains(other = "nosuch") == true if (isMemberNotFound) onNoSuchMemberFailureCallback?.invoke(it) onAllFailureCallback?.invoke(it) - if ((isNotIgnoredHookingFailure && !isMemberNotFound) || (isNotIgnoredNoSuchMemberFailure && isMemberNotFound)) + if ((isNotIgnoredHookingFailure && isMemberNotFound.not()) || (isNotIgnoredNoSuchMemberFailure && isMemberNotFound)) yLoggerE(msg = "Hooked All Members with an error in Class [$hookClass] [$tag]") } } diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/base/BaseFinder.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/base/BaseFinder.kt index 7fe63896..dcfad44e 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/base/BaseFinder.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/base/BaseFinder.kt @@ -80,7 +80,7 @@ abstract class BaseFinder( else Thread { /** 延迟使得方法取到返回值 */ SystemClock.sleep(1) - if (isNotIgnoredNoSuchMemberFailure && !isUsingRemedyPlan && !isShutErrorPrinting) print() + if (isNotIgnoredNoSuchMemberFailure && isUsingRemedyPlan.not() && isShutErrorPrinting.not()) print() }.start() }