diff --git a/docs/api/document.md b/docs/api/document.md index 2e0ab01a..372e2523 100644 --- a/docs/api/document.md +++ b/docs/api/document.md @@ -54,9 +54,9 @@ [filename](public/YukiBaseHooker.md ':include') -[filename](public/YukiMemberHookCreater.md ':include') +[filename](public/YukiMemberHookCreator.md ':include') -[filename](public/YukiResourcesHookCreater.md ':include') +[filename](public/YukiResourcesHookCreator.md ':include') [filename](public/MethodFinder.md ':include') diff --git a/docs/api/public/ConstructorFinder.md b/docs/api/public/ConstructorFinder.md index 23329d6e..b876a7fa 100644 --- a/docs/api/public/ConstructorFinder.md +++ b/docs/api/public/ConstructorFinder.md @@ -1,7 +1,7 @@ ## ConstructorFinder *- class* ```kotlin -class ConstructorFinder internal constructor(override val hookInstance: YukiMemberHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder() +class ConstructorFinder internal constructor(override val hookInstance: YukiMemberHookCreator.MemberHookCreator?, override val classSet: Class<*>) : BaseFinder() ``` **变更记录** @@ -12,6 +12,10 @@ class ConstructorFinder internal constructor(override val hookInstance: YukiMemb 合并到 `BaseFinder` +`v1.0.93` `修改` + +修正拼写错误的 **Creater** 命名到 **Creator** + **功能描述** > `Constructor` 查找类。 diff --git a/docs/api/public/FieldFinder.md b/docs/api/public/FieldFinder.md index 0f54b696..94ccd341 100644 --- a/docs/api/public/FieldFinder.md +++ b/docs/api/public/FieldFinder.md @@ -1,7 +1,7 @@ ## FieldFinder *- class* ```kotlin -class FieldFinder internal constructor(override val hookInstance: YukiMemberHookCreater.MemberHookCreater?, override val classSet: Class<*>?) : BaseFinder() +class FieldFinder internal constructor(override val hookInstance: YukiMemberHookCreator.MemberHookCreator?, override val classSet: Class<*>?) : BaseFinder() ``` **变更记录** diff --git a/docs/api/public/HookParam.md b/docs/api/public/HookParam.md index 6d317477..cec60925 100644 --- a/docs/api/public/HookParam.md +++ b/docs/api/public/HookParam.md @@ -1,7 +1,7 @@ ## HookParam *- class* ```kotlin -class HookParam internal constructor(private val createrInstance: YukiMemberHookCreater, private var param: YukiHookCallback.Param?) +class HookParam internal constructor(private val creatorInstance: YukiMemberHookCreator, private var param: YukiHookCallback.Param?) ``` **变更记录** @@ -12,6 +12,10 @@ class HookParam internal constructor(private val createrInstance: YukiMemberHook 移动 `HookParamWrapper` 到 `YukiHookCallback.Param` +`v1.0.93` `修改` + +修正拼写错误的 **creater** 命名到 **creator** + **功能描述** > Hook 方法、构造方法的目标对象实现类。 @@ -186,7 +190,7 @@ fun Throwable.throwToApp() 使用 `throwable` 获取当前设置的方法调用抛出异常。 -仅会在回调方法的 `MemberHookCreater.beforeHook` or `MemberHookCreater.afterHook` 中生效。 +仅会在回调方法的 `MemberHookCreator.beforeHook` or `MemberHookCreator.afterHook` 中生效。 !> 设置后会同时执行 `resultNull` 方法并将异常抛出给当前 Hook APP。 diff --git a/docs/api/public/MethodFinder.md b/docs/api/public/MethodFinder.md index 6a383631..8d0695f7 100644 --- a/docs/api/public/MethodFinder.md +++ b/docs/api/public/MethodFinder.md @@ -1,7 +1,7 @@ ## MethodFinder *- class* ```kotlin -class MethodFinder internal constructor(override val hookInstance: YukiMemberHookCreater.MemberHookCreater?, override val classSet: Class<*>) : BaseFinder() +class MethodFinder internal constructor(override val hookInstance: YukiMemberHookCreator.MemberHookCreator?, override val classSet: Class<*>) : BaseFinder() ``` **变更记录** diff --git a/docs/api/public/PackageParam.md b/docs/api/public/PackageParam.md index a2a7616f..8ebef8f6 100644 --- a/docs/api/public/PackageParam.md +++ b/docs/api/public/PackageParam.md @@ -642,19 +642,19 @@ customClassLoader?.fetching { clazz, resolve -> ### String+Class+VariousClass+HookClass.hook *- i-ext-method* ```kotlin -inline fun String.hook(initiate: YukiMemberHookCreater.() -> Unit): YukiMemberHookCreater.Result +inline fun String.hook(initiate: YukiMemberHookCreator.() -> Unit): YukiMemberHookCreator.Result ``` ```kotlin -inline fun Class<*>.hook(initiate: YukiMemberHookCreater.() -> Unit): YukiMemberHookCreater.Result +inline fun Class<*>.hook(initiate: YukiMemberHookCreator.() -> Unit): YukiMemberHookCreator.Result ``` ```kotlin -inline fun VariousClass.hook(initiate: YukiMemberHookCreater.() -> Unit): YukiMemberHookCreater.Result +inline fun VariousClass.hook(initiate: YukiMemberHookCreator.() -> Unit): YukiMemberHookCreator.Result ``` ```kotlin -inline fun HookClass.hook(initiate: YukiMemberHookCreater.() -> Unit): YukiMemberHookCreater.Result +inline fun HookClass.hook(initiate: YukiMemberHookCreator.() -> Unit): YukiMemberHookCreator.Result ``` **变更记录** @@ -671,7 +671,7 @@ inline fun HookClass.hook(initiate: YukiMemberHookCreater.() -> Unit): YukiMembe `v1.0.3` `修改` -新增 `YukiMemberHookCreater.Result` 返回值 +新增 `YukiMemberHookCreator.Result` 返回值 `v1.0.70` `修改` @@ -748,7 +748,7 @@ findClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").hook { ### HookResources.hook *- i-ext-method* ```kotlin -inline fun HookResources.hook(initiate: YukiResourcesHookCreater.() -> Unit) +inline fun HookResources.hook(initiate: YukiResourcesHookCreator.() -> Unit) ``` **变更记录** diff --git a/docs/api/public/YukiMemberHookCreater.md b/docs/api/public/YukiMemberHookCreator.md similarity index 96% rename from docs/api/public/YukiMemberHookCreater.md rename to docs/api/public/YukiMemberHookCreator.md index 9ab9016d..21439a56 100644 --- a/docs/api/public/YukiMemberHookCreater.md +++ b/docs/api/public/YukiMemberHookCreator.md @@ -1,7 +1,7 @@ -## YukiMemberHookCreater *- class* +## YukiMemberHookCreator *- class* ```kotlin -class YukiMemberHookCreater(internal val packageParam: PackageParam, internal val hookClass: HookClass) +class YukiMemberHookCreator(internal val packageParam: PackageParam, internal val hookClass: HookClass) ``` **变更记录** @@ -12,6 +12,10 @@ class YukiMemberHookCreater(internal val packageParam: PackageParam, internal va 对 `hookClass` 进行 inline 处理 +`v1.0.93` `修改` + +修正拼写错误的 **Creater** 命名到 **Creator** + **功能描述** > `YukiHookAPI` 的 `Member` 核心 Hook 实现类。 @@ -81,7 +85,7 @@ val instanceClass: Class<*> ### injectMember *- method* ```kotlin -inline fun injectMember(priority: Int, tag: String, initiate: MemberHookCreater.() -> Unit): MemberHookCreater.Result +inline fun injectMember(priority: Int, tag: String, initiate: MemberHookCreator.() -> Unit): MemberHookCreator.Result ``` **变更记录** @@ -152,10 +156,10 @@ fun useDangerousOperation(option: String) !> 若你不知道允许此功能会带来何种后果,请勿使用。 -### MemberHookCreater *- class* +### MemberHookCreator *- class* ```kotlin -inner class MemberHookCreater internal constructor(private val priority: Int, internal val tag: String) +inner class MemberHookCreator internal constructor(private val priority: Int, internal val tag: String) ``` **变更记录** @@ -174,6 +178,8 @@ inner class MemberHookCreater internal constructor(private val priority: Int, in 移除 `packageName` +修正拼写错误的 **Creater** 命名到 **Creator** + **功能描述** > Hook 核心功能实现类,查找和处理需要 Hook 的 `Method`、`Constructor`。 @@ -453,7 +459,7 @@ inline fun HookParam.constructor(initiate: ConstructorCondition): ConstructorFin #### HookParam.injectMember *- i-ext-method* ```kotlin -inline fun HookParam.injectMember(priority: Int, tag: String, initiate: MemberHookCreater.() -> Unit): MemberHookCreater.Result +inline fun HookParam.injectMember(priority: Int, tag: String, initiate: MemberHookCreator.() -> Unit): MemberHookCreator.Result ``` **变更记录** diff --git a/docs/api/public/YukiResourcesHookCreater.md b/docs/api/public/YukiResourcesHookCreator.md similarity index 95% rename from docs/api/public/YukiResourcesHookCreater.md rename to docs/api/public/YukiResourcesHookCreator.md index 5c739036..0afb6e5d 100644 --- a/docs/api/public/YukiResourcesHookCreater.md +++ b/docs/api/public/YukiResourcesHookCreator.md @@ -1,13 +1,17 @@ -## YukiResourcesHookCreater *- class* +## YukiResourcesHookCreator *- class* ```kotlin -class YukiResourcesHookCreater(internal val packageParam: PackageParam, internal val hookResources: HookResources) +class YukiResourcesHookCreator(internal val packageParam: PackageParam, internal val hookResources: HookResources) ``` **变更记录** `v1.0.80` `新增` +`v1.0.93` `修改` + +修正拼写错误的 **Creater** 命名到 **Creator** + **功能描述** > `YukiHookAPI` 的 `Resources` 核心 Hook 实现类。 @@ -15,7 +19,7 @@ class YukiResourcesHookCreater(internal val packageParam: PackageParam, internal ### injectResource *- method* ```kotlin -inline fun injectResource(tag: String, initiate: ResourceHookCreater.() -> Unit): ResourceHookCreater.Result +inline fun injectResource(tag: String, initiate: ResourceHookCreator.() -> Unit): ResourceHookCreator.Result ``` **变更记录** @@ -48,10 +52,10 @@ injectResource(tag = "KuriharaYuki") { } ``` -### ResourcesHookCreater *- class* +### ResourcesHookCreator *- class* ```kotlin -inner class ResourcesHookCreater internal constructor(private val tag: String) +inner class ResourcesHookCreator internal constructor(private val tag: String) ``` **变更记录** @@ -62,6 +66,8 @@ inner class ResourcesHookCreater internal constructor(private val tag: String) 移除 `packageName` +修正拼写错误的 **Creater** 命名到 **Creator** + **功能描述** > Hook 核心功能实现类。 diff --git a/docs/config/api-exception.md b/docs/config/api-exception.md index fd930b91..32989527 100644 --- a/docs/config/api-exception.md +++ b/docs/config/api-exception.md @@ -879,7 +879,7 @@ loadZygote { **异常原因** -在 `MemberHookCreater` 中调用 `members()` 但是未设置需要 Hook 的 `Member` 实例。 +在 `MemberHookCreator` 中调用 `members()` 但是未设置需要 Hook 的 `Member` 实例。 > 示例如下 diff --git a/docs/guide/example.md b/docs/guide/example.md index 5778ab89..b38592ea 100644 --- a/docs/guide/example.md +++ b/docs/guide/example.md @@ -8,23 +8,23 @@ ``` Host Environment -└── YukiMemberHookCreater +└── YukiMemberHookCreator └── Class - └── MemberHookCreater + └── MemberHookCreator └── Member ├── Before └── After - MemberHookCreater + MemberHookCreator └── Member ├── Before └── After ... - YukiResourcesHookCreater + YukiResourcesHookCreator └── Resources - └── ResourcesHookCreater + └── ResourcesHookCreator └── Drawable └── Replace - ResourcesHookCreater + ResourcesHookCreator └── Layout └── Inject ... @@ -192,7 +192,7 @@ TestClass.hook { } ``` -更多功能请参考 [MemberHookCreater](api/document?id=memberhookcreater-class)。 +更多功能请参考 [MemberHookCreator](api/document?id=memberhookcreator-class)。 ### Hook Zygote @@ -304,7 +304,7 @@ loadZygote { } ``` -更多功能请参考 [ResourcesHookCreater](api/document?id=resourceshookcreater-class)。 +更多功能请参考 [ResourcesHookCreator](api/document?id=resourceshookcreator-class)。 ### 解除 Hook @@ -346,7 +346,7 @@ injectMember { } ``` -更多功能请参考 [MemberHookCreater](api/document?id=memberhookcreater-class)。 +更多功能请参考 [MemberHookCreator](api/document?id=memberhookcreator-class)。 ## 异常处理 @@ -412,7 +412,7 @@ method { } ``` -更多功能请参考 [MemberHookCreater.Result](api/document?id=result-class) 与 [ResourcesHookCreater.Result](api/document?id=result-class-2)。 +更多功能请参考 [MemberHookCreator.Result](api/document?id=result-class) 与 [ResourcesHookCreator.Result](api/document?id=result-class-2)。 这里介绍了可能发生的常见异常,若要了解更多请参考 [API 异常处理](config/api-exception.md)。 diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreater.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt similarity index 95% rename from yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreater.kt rename to yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt index df7e3980..05bf5454 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreater.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt @@ -62,7 +62,7 @@ import java.lang.reflect.Method * @param packageParam 需要传入 [PackageParam] 实现方法调用 * @param hookClass 要 Hook 的 [HookClass] 实例 */ -class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackageParam, @PublishedApi internal val hookClass: HookClass) { +class YukiMemberHookCreator(@PublishedApi internal val packageParam: PackageParam, @PublishedApi internal val hookClass: HookClass) { /** 默认 Hook 回调优先级 */ val PRIORITY_DEFAULT = YukiHookPriority.PRIORITY_DEFAULT @@ -79,13 +79,13 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara /** [hookClass] 找不到时出现的错误回调 */ private var onHookClassNotFoundFailureCallback: ((Throwable) -> Unit)? = null - /** 是否对当前 [YukiMemberHookCreater] 禁止执行 Hook 操作 */ + /** 是否对当前 [YukiMemberHookCreator] 禁止执行 Hook 操作 */ @PublishedApi - internal var isDisableCreaterRunHook = false + internal var isDisableCreatorRunHook = false /** 设置要 Hook 的 [Method]、[Constructor] */ @PublishedApi - internal var preHookMembers = HashMap() + internal var preHookMembers = HashMap() /** * 得到当前被 Hook 的 [Class] @@ -102,10 +102,10 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara * @param priority Hook 优先级 - 默认 [PRIORITY_DEFAULT] * @param tag 可设置标签 - 在发生错误时方便进行调试 * @param initiate 方法体 - * @return [MemberHookCreater.Result] + * @return [MemberHookCreator.Result] */ - inline fun injectMember(priority: Int = PRIORITY_DEFAULT, tag: String = "Default", initiate: MemberHookCreater.() -> Unit) = - MemberHookCreater(priority, tag).apply(initiate).apply { preHookMembers[toString()] = this }.build() + inline fun injectMember(priority: Int = PRIORITY_DEFAULT, tag: String = "Default", initiate: MemberHookCreator.() -> Unit) = + MemberHookCreator(priority, tag).apply(initiate).apply { preHookMembers[toString()] = this }.build() /** * 允许 Hook 过程中的所有危险行为 @@ -134,7 +134,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara preHookMembers.isEmpty() -> Result().also { yLoggerW(msg = "Hook Members is empty in [${hookClass.name}], hook aborted") } else -> Result().await { when { - isDisableCreaterRunHook.not() && hookClass.instance != null -> runCatching { + isDisableCreatorRunHook.not() && hookClass.instance != null -> runCatching { hookClass.instance?.apply { checkingInternal(); checkingDangerous() } it.onPrepareHook?.invoke() preHookMembers.forEach { (_, m) -> m.hook() } @@ -143,7 +143,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara yLoggerE(msg = "Hook initialization failed because got an Exception", e = it) else onHookClassNotFoundFailureCallback?.invoke(it) } - isDisableCreaterRunHook.not() && hookClass.instance == null -> + isDisableCreatorRunHook.not() && hookClass.instance == null -> if (onHookClassNotFoundFailureCallback == null) yLoggerE(msg = "HookClass [${hookClass.name}] not found", e = hookClass.throwable) else onHookClassNotFoundFailureCallback?.invoke(hookClass.throwable ?: Throwable("[${hookClass.name}] not found")) @@ -193,7 +193,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara * @param priority Hook 优先级 * @param tag 当前设置的标签 */ - inner class MemberHookCreater @PublishedApi internal constructor(private val priority: Int, internal val tag: String) { + inner class MemberHookCreator @PublishedApi internal constructor(private val priority: Int, internal val tag: String) { /** Hook 结果实例 */ private var result: Result? = null @@ -234,7 +234,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara /** 是否为替换 Hook 模式 */ private var isReplaceHookMode = false - /** 是否对当前 [MemberHookCreater] 禁止执行 Hook 操作 */ + /** 是否对当前 [MemberHookCreator] 禁止执行 Hook 操作 */ @PublishedApi internal var isDisableMemberRunHook = false @@ -354,8 +354,8 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara * @return [FieldFinder.Result] */ inline fun HookParam.field(initiate: FieldCondition) = - if (hookClass.instance == null) FieldFinder(hookInstance = this@MemberHookCreater).failure(hookClass.throwable) - else FieldFinder(hookInstance = this@MemberHookCreater, hookClass.instance).apply(initiate).build() + if (hookClass.instance == null) FieldFinder(hookInstance = this@MemberHookCreator).failure(hookClass.throwable) + else FieldFinder(hookInstance = this@MemberHookCreator, hookClass.instance).apply(initiate).build() /** * 使用当前 [hookClass] 查找并得到 [Method] @@ -363,8 +363,8 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara * @return [MethodFinder.Result] */ inline fun HookParam.method(initiate: MethodCondition) = - if (hookClass.instance == null) MethodFinder(hookInstance = this@MemberHookCreater).failure(hookClass.throwable) - else MethodFinder(hookInstance = this@MemberHookCreater, hookClass.instance).apply(initiate).build() + if (hookClass.instance == null) MethodFinder(hookInstance = this@MemberHookCreator).failure(hookClass.throwable) + else MethodFinder(hookInstance = this@MemberHookCreator, hookClass.instance).apply(initiate).build() /** * 使用当前 [hookClass] 查找并得到 [Constructor] @@ -372,21 +372,21 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara * @return [ConstructorFinder.Result] */ inline fun HookParam.constructor(initiate: ConstructorCondition = { emptyParam() }) = - if (hookClass.instance == null) ConstructorFinder(hookInstance = this@MemberHookCreater).failure(hookClass.throwable) - else ConstructorFinder(hookInstance = this@MemberHookCreater, hookClass.instance).apply(initiate).build() + if (hookClass.instance == null) ConstructorFinder(hookInstance = this@MemberHookCreator).failure(hookClass.throwable) + else ConstructorFinder(hookInstance = this@MemberHookCreator, hookClass.instance).apply(initiate).build() /** * 注入要 Hook 的 [Method]、[Constructor] (嵌套 Hook) * @param priority Hook 优先级 - 默认 [PRIORITY_DEFAULT] * @param tag 可设置标签 - 在发生错误时方便进行调试 * @param initiate 方法体 - * @return [MemberHookCreater.Result] + * @return [MemberHookCreator.Result] */ inline fun HookParam.injectMember( priority: Int = PRIORITY_DEFAULT, tag: String = "InnerDefault", - initiate: MemberHookCreater.() -> Unit - ) = this@YukiMemberHookCreater.injectMember(priority, tag, initiate).also { this@YukiMemberHookCreater.hook() } + initiate: MemberHookCreator.() -> Unit + ) = this@YukiMemberHookCreator.injectMember(priority, tag, initiate).also { this@YukiMemberHookCreator.hook() } /** * 在 [Member] 执行完成前 Hook @@ -550,7 +550,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara */ private fun Member.hook(): Pair { /** 定义替换 Hook 的 [HookParam] */ - val replaceHookParam = HookParam(createrInstance = this@YukiMemberHookCreater) + val replaceHookParam = HookParam(creatorInstance = this@YukiMemberHookCreator) /** 定义替换 Hook 回调方法体 */ val replaceMent = object : YukiMemberReplacement(priority) { @@ -573,10 +573,10 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara } /** 定义前 Hook 的 [HookParam] */ - val beforeHookParam = HookParam(createrInstance = this@YukiMemberHookCreater) + val beforeHookParam = HookParam(creatorInstance = this@YukiMemberHookCreator) /** 定义后 Hook 的 [HookParam] */ - val afterHookParam = HookParam(createrInstance = this@YukiMemberHookCreater) + val afterHookParam = HookParam(creatorInstance = this@YukiMemberHookCreator) /** 定义前后 Hook 回调方法体 */ val beforeAfterHook = object : YukiMemberHook(priority) { @@ -814,7 +814,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara it.remove() onHookLogMsg(msg = "Remove Hooked Member [${it.member}] done [$tag]") } - runCatching { preHookMembers.remove(this@MemberHookCreater.toString()) } + runCatching { preHookMembers.remove(this@MemberHookCreator.toString()) } clear() result(true) } ?: result(false) @@ -847,7 +847,7 @@ class YukiMemberHookCreater(@PublishedApi internal val packageParam: PackagePara * @return [Result] 可继续向下监听 */ inline fun by(condition: () -> Boolean): Result { - isDisableCreaterRunHook = (runCatching { condition() }.getOrNull() ?: false).not() + isDisableCreatorRunHook = (runCatching { condition() }.getOrNull() ?: false).not() return this } diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreater.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.kt similarity index 96% rename from yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreater.kt rename to yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.kt index 2b155749..ac2d604c 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreater.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.kt @@ -46,20 +46,20 @@ import com.highcapable.yukihookapi.hook.xposed.bridge.dummy.YukiResources * @param packageParam 需要传入 [PackageParam] 实现方法调用 * @param hookResources 要 Hook 的 [HookResources] 实例 */ -class YukiResourcesHookCreater(@PublishedApi internal val packageParam: PackageParam, @PublishedApi internal val hookResources: HookResources) { +class YukiResourcesHookCreator(@PublishedApi internal val packageParam: PackageParam, @PublishedApi internal val hookResources: HookResources) { /** 设置要 Hook 的 Resources */ @PublishedApi - internal var preHookResources = HashMap() + internal var preHookResources = HashMap() /** * 注入要 Hook 的 Resources * @param tag 可设置标签 - 在发生错误时方便进行调试 * @param initiate 方法体 - * @return [ResourcesHookCreater.Result] + * @return [ResourcesHookCreator.Result] */ - inline fun injectResource(tag: String = "Default", initiate: ResourcesHookCreater.() -> Unit) = - ResourcesHookCreater(tag).apply(initiate).apply { preHookResources[toString()] = this }.build() + inline fun injectResource(tag: String = "Default", initiate: ResourcesHookCreator.() -> Unit) = + ResourcesHookCreator(tag).apply(initiate).apply { preHookResources[toString()] = this }.build() /** Hook 执行入口 */ @PublishedApi @@ -77,7 +77,7 @@ class YukiResourcesHookCreater(@PublishedApi internal val packageParam: PackageP * 查找和处理需要 Hook 的 Resources * @param tag 当前设置的标签 */ - inner class ResourcesHookCreater @PublishedApi internal constructor(private val tag: String) { + inner class ResourcesHookCreator @PublishedApi internal constructor(private val tag: String) { /** 是否已经执行 Hook */ private var isHooked = false @@ -88,9 +88,9 @@ class YukiResourcesHookCreater(@PublishedApi internal val packageParam: PackageP */ private inner class ModuleResFwd(var resId: Int) - /** 是否对当前 [ResourcesHookCreater] 禁止执行 Hook 操作 */ + /** 是否对当前 [ResourcesHookCreator] 禁止执行 Hook 操作 */ @PublishedApi - internal var isDisableCreaterRunHook = false + internal var isDisableCreatorRunHook = false /** 当前的查找条件 */ @PublishedApi @@ -177,7 +177,7 @@ class YukiResourcesHookCreater(@PublishedApi internal val packageParam: PackageP internal fun hook() { if (isHooked) return isHooked = true - if (isDisableCreaterRunHook.not()) runCatching { + if (isDisableCreatorRunHook.not()) runCatching { when { conditions == null -> yLoggerE(msg = "You must set the conditions before hook a Resources [$tag]") replaceInstance == null && layoutInstance == null -> yLoggerE(msg = "Resources Hook got null replaceInstance [$tag]") @@ -347,7 +347,7 @@ class YukiResourcesHookCreater(@PublishedApi internal val packageParam: PackageP * @return [Result] 可继续向下监听 */ inline fun by(condition: () -> Boolean): Result { - isDisableCreaterRunHook = (runCatching { condition() }.getOrNull() ?: false).not() + isDisableCreatorRunHook = (runCatching { condition() }.getOrNull() ?: false).not() return this } diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/ConstructorFinder.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/ConstructorFinder.kt index 8ca15feb..194b5205 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/ConstructorFinder.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/ConstructorFinder.kt @@ -31,7 +31,7 @@ package com.highcapable.yukihookapi.hook.core.finder import com.highcapable.yukihookapi.annotation.YukiPrivateApi import com.highcapable.yukihookapi.hook.bean.VariousClass -import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreater +import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreator import com.highcapable.yukihookapi.hook.core.finder.base.BaseFinder import com.highcapable.yukihookapi.hook.core.finder.type.ModifierRules import com.highcapable.yukihookapi.hook.core.reflex.tools.ReflectionTool @@ -49,12 +49,12 @@ import java.lang.reflect.Member * [Constructor] 查找类 * * 可通过指定类型查找指定构造方法或一组构造方法 - * @param hookInstance 当前 Hook 实例 - 填写后将自动设置 [YukiMemberHookCreater.MemberHookCreater.members] + * @param hookInstance 当前 Hook 实例 - 填写后将自动设置 [YukiMemberHookCreator.MemberHookCreator.members] * @param classSet 当前需要查找的 [Class] 实例 */ class ConstructorFinder @PublishedApi internal constructor( @property:YukiPrivateApi - override val hookInstance: YukiMemberHookCreater.MemberHookCreater? = null, + override val hookInstance: YukiMemberHookCreator.MemberHookCreator? = null, @property:YukiPrivateApi override val classSet: Class<*>? = null ) : BaseFinder(tag = "Constructor", hookInstance, classSet) { @@ -185,7 +185,7 @@ class ConstructorFinder @PublishedApi internal constructor( /** * 设置实例 - * @param isBind 是否将结果设置到目标 [YukiMemberHookCreater.MemberHookCreater] + * @param isBind 是否将结果设置到目标 [YukiMemberHookCreator.MemberHookCreator] * @param constructors 当前找到的 [Constructor] 数组 */ private fun setInstance(isBind: Boolean, constructors: HashSet>) { @@ -199,7 +199,7 @@ class ConstructorFinder @PublishedApi internal constructor( /** * 得到 [Constructor] 结果 - * @param isBind 是否将结果设置到目标 [YukiMemberHookCreater.MemberHookCreater] + * @param isBind 是否将结果设置到目标 [YukiMemberHookCreator.MemberHookCreator] */ private fun build(isBind: Boolean) { if (classSet == null) error("classSet is null") diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/FieldFinder.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/FieldFinder.kt index 64c65220..2b4fd63a 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/FieldFinder.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/FieldFinder.kt @@ -32,7 +32,7 @@ package com.highcapable.yukihookapi.hook.core.finder import com.highcapable.yukihookapi.annotation.YukiPrivateApi import com.highcapable.yukihookapi.hook.bean.CurrentClass import com.highcapable.yukihookapi.hook.bean.VariousClass -import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreater +import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreator import com.highcapable.yukihookapi.hook.core.finder.base.BaseFinder import com.highcapable.yukihookapi.hook.core.finder.type.ModifierRules import com.highcapable.yukihookapi.hook.core.finder.type.NameConditions @@ -55,7 +55,7 @@ import java.lang.reflect.Field */ class FieldFinder @PublishedApi internal constructor( @property:YukiPrivateApi - override val hookInstance: YukiMemberHookCreater.MemberHookCreater? = null, + override val hookInstance: YukiMemberHookCreator.MemberHookCreator? = null, @property:YukiPrivateApi override val classSet: Class<*>? = null ) : BaseFinder(tag = "Field", hookInstance, classSet) { diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/MethodFinder.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/MethodFinder.kt index 0b631040..5faee7f4 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/MethodFinder.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/core/finder/MethodFinder.kt @@ -31,7 +31,7 @@ package com.highcapable.yukihookapi.hook.core.finder import com.highcapable.yukihookapi.annotation.YukiPrivateApi import com.highcapable.yukihookapi.hook.bean.VariousClass -import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreater +import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreator import com.highcapable.yukihookapi.hook.core.finder.base.BaseFinder import com.highcapable.yukihookapi.hook.core.finder.type.ModifierRules import com.highcapable.yukihookapi.hook.core.finder.type.NameConditions @@ -51,12 +51,12 @@ import java.lang.reflect.Method * [Method] 查找类 * * 可通过指定类型查找指定方法或一组方法 - * @param hookInstance 当前 Hook 实例 - 填写后将自动设置 [YukiMemberHookCreater.MemberHookCreater.members] + * @param hookInstance 当前 Hook 实例 - 填写后将自动设置 [YukiMemberHookCreator.MemberHookCreator.members] * @param classSet 当前需要查找的 [Class] 实例 */ class MethodFinder @PublishedApi internal constructor( @property:YukiPrivateApi - override val hookInstance: YukiMemberHookCreater.MemberHookCreater? = null, + override val hookInstance: YukiMemberHookCreator.MemberHookCreator? = null, @property:YukiPrivateApi override val classSet: Class<*>? = null ) : BaseFinder(tag = "Method", hookInstance, classSet) { @@ -252,7 +252,7 @@ class MethodFinder @PublishedApi internal constructor( /** * 设置实例 - * @param isBind 是否将结果设置到目标 [YukiMemberHookCreater.MemberHookCreater] + * @param isBind 是否将结果设置到目标 [YukiMemberHookCreator.MemberHookCreator] * @param methods 当前找到的 [Method] 数组 */ private fun setInstance(isBind: Boolean, methods: HashSet) { @@ -266,7 +266,7 @@ class MethodFinder @PublishedApi internal constructor( /** * 得到 [Method] 结果 - * @param isBind 是否将结果设置到目标 [YukiMemberHookCreater.MemberHookCreater] + * @param isBind 是否将结果设置到目标 [YukiMemberHookCreator.MemberHookCreator] */ private fun build(isBind: Boolean) { if (classSet == null) error("classSet is null") diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/HookParam.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/HookParam.kt index 0c28cded..f528ceb1 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/HookParam.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/HookParam.kt @@ -29,8 +29,8 @@ package com.highcapable.yukihookapi.hook.param -import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreater -import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreater.MemberHookCreater +import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreator +import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreator.MemberHookCreator import com.highcapable.yukihookapi.hook.factory.classOf import com.highcapable.yukihookapi.hook.log.yLoggerE import com.highcapable.yukihookapi.hook.xposed.bridge.factory.YukiHookCallback @@ -41,10 +41,10 @@ import java.lang.reflect.Method /** * Hook 方法、构造方法的目标对象实现类 - * @param createrInstance [YukiMemberHookCreater] 的实例对象 + * @param creatorInstance [YukiMemberHookCreator] 的实例对象 * @param param Hook 结果回调接口 */ -class HookParam internal constructor(private val createrInstance: YukiMemberHookCreater, private var param: YukiHookCallback.Param? = null) { +class HookParam internal constructor(private val creatorInstance: YukiMemberHookCreator, private var param: YukiHookCallback.Param? = null) { internal companion object { @@ -89,7 +89,7 @@ class HookParam internal constructor(private val createrInstance: YukiMemberHook * 获取当前 Hook 实例的类对象 * @return [Class] */ - val instanceClass get() = param?.instance?.javaClass ?: createrInstance.instanceClass + val instanceClass get() = param?.instance?.javaClass ?: creatorInstance.instanceClass /** * 获取当前 Hook 对象的 [Member] @@ -143,7 +143,7 @@ class HookParam internal constructor(private val createrInstance: YukiMemberHook * * 使用 [throwable] 获取当前设置的方法调用抛出异常 * - * - 仅会在回调方法的 [MemberHookCreater.beforeHook] or [MemberHookCreater.afterHook] 中生效 + * - 仅会在回调方法的 [MemberHookCreator.beforeHook] or [MemberHookCreator.afterHook] 中生效 * * - ❗设置后会同时执行 [resultNull] 方法并将异常抛出给当前 Hook APP * @return [Throwable] or null diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt index 9c4a7972..d69ce8b0 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt @@ -40,8 +40,8 @@ import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed import com.highcapable.yukihookapi.hook.bean.HookClass import com.highcapable.yukihookapi.hook.bean.HookResources import com.highcapable.yukihookapi.hook.bean.VariousClass -import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreater -import com.highcapable.yukihookapi.hook.core.YukiResourcesHookCreater +import com.highcapable.yukihookapi.hook.core.YukiMemberHookCreator +import com.highcapable.yukihookapi.hook.core.YukiResourcesHookCreator import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker import com.highcapable.yukihookapi.hook.factory.classOf import com.highcapable.yukihookapi.hook.factory.hasClass @@ -366,18 +366,18 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper: * * - ❗为防止任何字符串都被当做 [Class] 进行 Hook - 推荐优先使用 [findClass] * @param initiate 方法体 - * @return [YukiMemberHookCreater.Result] + * @return [YukiMemberHookCreator.Result] */ - inline fun String.hook(initiate: YukiMemberHookCreater.() -> Unit) = findClass(name = this).hook(initiate) + inline fun String.hook(initiate: YukiMemberHookCreator.() -> Unit) = findClass(name = this).hook(initiate) /** * Hook 方法、构造方法 * * - 自动选择与当前 [Class] 相匹配的 [ClassLoader] - 优先使用 [appClassLoader] * @param initiate 方法体 - * @return [YukiMemberHookCreater.Result] + * @return [YukiMemberHookCreator.Result] */ - inline fun Class<*>.hook(initiate: YukiMemberHookCreater.() -> Unit) = when { + inline fun Class<*>.hook(initiate: YukiMemberHookCreator.() -> Unit) = when { name.hasClass(appClassLoader) -> findClass(name) else -> hookClass }.hook(initiate) @@ -387,17 +387,17 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper: * * - 使用当前 [appClassLoader] 装载目标 [Class] * @param initiate 方法体 - * @return [YukiMemberHookCreater.Result] + * @return [YukiMemberHookCreator.Result] */ - inline fun VariousClass.hook(initiate: YukiMemberHookCreater.() -> Unit) = hookClass(appClassLoader).hook(initiate) + inline fun VariousClass.hook(initiate: YukiMemberHookCreator.() -> Unit) = hookClass(appClassLoader).hook(initiate) /** * Hook 方法、构造方法 * @param initiate 方法体 - * @return [YukiMemberHookCreater.Result] + * @return [YukiMemberHookCreator.Result] */ - inline fun HookClass.hook(initiate: YukiMemberHookCreater.() -> Unit) = - YukiMemberHookCreater(packageParam = this@PackageParam, hookClass = this).apply(initiate).hook() + inline fun HookClass.hook(initiate: YukiMemberHookCreator.() -> Unit) = + YukiMemberHookCreator(packageParam = this@PackageParam, hookClass = this).apply(initiate).hook() /** * Hook APP 的 Resources @@ -405,8 +405,8 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper: * - ❗请注意你需要确保当前 Hook Framework 支持且 [InjectYukiHookWithXposed.isUsingResourcesHook] 已启用 * @param initiate 方法体 */ - inline fun HookResources.hook(initiate: YukiResourcesHookCreater.() -> Unit) = - YukiResourcesHookCreater(packageParam = this@PackageParam, hookResources = this).apply(initiate).hook() + inline fun HookResources.hook(initiate: YukiResourcesHookCreator.() -> Unit) = + YukiResourcesHookCreator(packageParam = this@PackageParam, hookResources = this).apply(initiate).hook() /** * [VariousClass] 转换为 [HookClass]