diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.kt index a0a497c8..43e8df41 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.kt @@ -106,6 +106,10 @@ val Any?.isXposedModuleActive get() = YukiHookModuleStatus.isActive() /** * 仅判断模块是否在太极、无极中激活 + * + * 下方的代码来自太极官方文档封装和改进 + * + * 详情请参考太极开发指南中的 [如何判断模块是否激活了?](https://taichi.cool/zh/doc/for-xposed-dev.html#%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E6%A8%A1%E5%9D%97%E6%98%AF%E5%90%A6%E6%BF%80%E6%B4%BB%E4%BA%86%EF%BC%9F) * @return [Boolean] 是否激活 */ val Context.isTaiChiModuleActive: Boolean diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/log/LoggerFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/log/LoggerFactory.kt index dd2b04c6..bf4d7f3a 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/log/LoggerFactory.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/log/LoggerFactory.kt @@ -38,9 +38,10 @@ import de.robv.android.xposed.XposedBridge * * - ❗此方法为私有功能性 API - 你不应该手动调用此方法 * @param msg 日志打印的内容 + * @param isDisableLog 禁止打印日志 - 标识后将什么也不做 - 默认为 false */ -internal fun yLoggerD(msg: String) { - if (YukiHookAPI.Configs.isAllowPrintingLogs) loggerD(msg = msg) +internal fun yLoggerD(msg: String, isDisableLog: Boolean = false) { + if (YukiHookAPI.Configs.isAllowPrintingLogs) if (!isDisableLog) loggerD(msg = msg) } /** @@ -48,9 +49,10 @@ internal fun yLoggerD(msg: String) { * * - ❗此方法为私有功能性 API - 你不应该手动调用此方法 * @param msg 日志打印的内容 + * @param isDisableLog 禁止打印日志 - 标识后将什么也不做 - 默认为 false */ -internal fun yLoggerI(msg: String) { - if (YukiHookAPI.Configs.isAllowPrintingLogs) loggerI(msg = msg) +internal fun yLoggerI(msg: String, isDisableLog: Boolean = false) { + if (YukiHookAPI.Configs.isAllowPrintingLogs) if (!isDisableLog) loggerI(msg = msg) } /** @@ -58,9 +60,10 @@ internal fun yLoggerI(msg: String) { * * - ❗此方法为私有功能性 API - 你不应该手动调用此方法 * @param msg 日志打印的内容 + * @param isDisableLog 禁止打印日志 - 标识后将什么也不做 - 默认为 false */ -internal fun yLoggerW(msg: String) { - if (YukiHookAPI.Configs.isAllowPrintingLogs) loggerW(msg = msg) +internal fun yLoggerW(msg: String, isDisableLog: Boolean = false) { + if (YukiHookAPI.Configs.isAllowPrintingLogs) if (!isDisableLog) loggerW(msg = msg) } /** @@ -69,9 +72,10 @@ internal fun yLoggerW(msg: String) { * - ❗此方法为私有功能性 API - 你不应该手动调用此方法 * @param msg 日志打印的内容 * @param e 可填入异常堆栈信息 - 将自动完整打印到控制台 + * @param isDisableLog 禁止打印日志 - 标识后将什么也不做 - 默认为 false */ -internal fun yLoggerE(msg: String, e: Throwable? = null) { - if (YukiHookAPI.Configs.isAllowPrintingLogs) loggerE(msg = msg, e = e) +internal fun yLoggerE(msg: String, e: Throwable? = null, isDisableLog: Boolean = false) { + if (YukiHookAPI.Configs.isAllowPrintingLogs) if (!isDisableLog) loggerE(msg = msg, e = e) } /** diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt index b96482fd..188ba2f5 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt @@ -467,6 +467,18 @@ val JavaMemberClass get() = Member::class.java */ val JavaAnnotationClass get() = Annotation::class.java +/** + * 获得 [java.util.function.Function] 类型 + * @return [Class] + */ +val FunctionClass get() = java.util.function.Function::class.java + +/** + * 获得 [Objects] 类型 + * @return [Class] + */ +val ObjectsClass get() = Objects::class.java + /** * 获得 [Runtime] 类型 * @return [Class] diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/YukiHookModuleStatus.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/YukiHookModuleStatus.kt index 2d76595c..0eab1d59 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/YukiHookModuleStatus.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/YukiHookModuleStatus.kt @@ -33,6 +33,7 @@ import com.highcapable.yukihookapi.annotation.DoNotUseMethod import com.highcapable.yukihookapi.hook.factory.isModuleActive import com.highcapable.yukihookapi.hook.factory.isTaiChiModuleActive import com.highcapable.yukihookapi.hook.factory.isXposedModuleActive +import com.highcapable.yukihookapi.hook.log.yLoggerD import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus.executorName import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus.executorVersion import de.robv.android.xposed.XposedBridge @@ -93,7 +94,10 @@ object YukiHookModuleStatus { @Keep @DoNotUseMethod @JvmName(IS_ACTIVE_METHOD_NAME) - internal fun isActive() = false + internal fun isActive(): Boolean { + yLoggerD(msg = IS_ACTIVE_METHOD_NAME, isDisableLog = true) + return false + } /** * 此方法经过 Hook 后返回 [XposedBridge.getXposedVersion] @@ -101,7 +105,10 @@ object YukiHookModuleStatus { */ @Keep @JvmName(GET_XPOSED_VERSION_METHOD_NAME) - private fun getXposedVersion() = -1 + private fun getXposedVersion(): Int { + yLoggerD(msg = GET_XPOSED_VERSION_METHOD_NAME, isDisableLog = true) + return -1 + } /** * 此方法经过 Hook 后返回 [XposedBridge] 的 TAG @@ -109,5 +116,8 @@ object YukiHookModuleStatus { */ @Keep @JvmName(GET_XPOSED_TAG_METHOD_NAME) - private fun getXposedBridgeTag() = "unknown" + private fun getXposedBridgeTag(): String { + yLoggerD(msg = GET_XPOSED_TAG_METHOD_NAME, isDisableLog = true) + return "unknown" + } } \ No newline at end of file