diff --git a/demo-module/src/main/java/com/highcapable/yukihookapi/demo_module/hook/HookEntry.kt b/demo-module/src/main/java/com/highcapable/yukihookapi/demo_module/hook/HookEntry.kt
index e9f19e1a..e405627b 100644
--- a/demo-module/src/main/java/com/highcapable/yukihookapi/demo_module/hook/HookEntry.kt
+++ b/demo-module/src/main/java/com/highcapable/yukihookapi/demo_module/hook/HookEntry.kt
@@ -35,10 +35,10 @@ import com.highcapable.yukihookapi.hook.type.android.BundleClass
import com.highcapable.yukihookapi.hook.type.java.StringArrayClass
import com.highcapable.yukihookapi.hook.type.java.StringType
import com.highcapable.yukihookapi.hook.type.java.UnitType
-import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
+import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
@InjectYukiHookWithXposed
-class HookEntry : YukiHookXposedInitProxy {
+class HookEntry : IYukiHookXposedInit {
override fun onInit() {
// 配置 YuKiHookAPI
diff --git a/docs/api/document.md b/docs/api/document.md
index 197b2cd1..481232f2 100644
--- a/docs/api/document.md
+++ b/docs/api/document.md
@@ -12,7 +12,7 @@
[filename](public/InjectYukiHookWithXposed.md ':include')
-[filename](public/YukiHookXposedInitProxy.md ':include')
+[filename](public/IYukiHookXposedInit.md ':include')
[filename](public/YukiHookModulePrefs.md ':include')
diff --git a/docs/api/public/YukiHookXposedInitProxy.md b/docs/api/public/IYukiHookXposedInit.md
similarity index 68%
rename from docs/api/public/YukiHookXposedInitProxy.md
rename to docs/api/public/IYukiHookXposedInit.md
index c00eb00c..86d820ff 100644
--- a/docs/api/public/YukiHookXposedInitProxy.md
+++ b/docs/api/public/IYukiHookXposedInit.md
@@ -1,13 +1,19 @@
-## YukiHookXposedInitProxy [interface]
+## IYukiHookXposedInit [interface]
```kotlin
-interface YukiHookXposedInitProxy
+interface IYukiHookXposedInit
```
**变更记录**
`v1.0` `添加`
+`v1.0.80` `修改` `作废`
+
+作废了 ~~`YukiHookXposedInitProxy`~~ 名称但保留接口
+
+转移到 `IYukiHookXposedInit` 新名称
+
**功能描述**
> YukiHookAPI 的 Xposed 装载 API 调用接口。
diff --git a/docs/api/public/YukiHookAPI.md b/docs/api/public/YukiHookAPI.md
index 4a6bfdf5..14544506 100644
--- a/docs/api/public/YukiHookAPI.md
+++ b/docs/api/public/YukiHookAPI.md
@@ -199,7 +199,7 @@ fun configs(initiate: Configs.() -> Unit)
> 示例如下
```kotlin
-class HookEntryClass : YukiHookXposedInitProxy {
+class HookEntryClass : IYukiHookXposedInit {
override fun onInit() {
YukiHookAPI.configs {
@@ -222,7 +222,7 @@ class HookEntryClass : YukiHookXposedInitProxy {
> 示例如下
```kotlin
-class HookEntryClass : YukiHookXposedInitProxy {
+class HookEntryClass : IYukiHookXposedInit {
override fun onInit() = configs {
debugTag = "YukiHookAPI"
@@ -243,7 +243,7 @@ class HookEntryClass : YukiHookXposedInitProxy {
> 示例如下
```kotlin
-class HookEntryClass : YukiHookXposedInitProxy {
+class HookEntryClass : IYukiHookXposedInit {
override fun onInit() {
YukiHookAPI.Configs.debugTag = "YukiHookAPI"
diff --git a/docs/api/public/YukiHookFactory.md b/docs/api/public/YukiHookFactory.md
index 8a09ce53..af9efe82 100644
--- a/docs/api/public/YukiHookFactory.md
+++ b/docs/api/public/YukiHookFactory.md
@@ -11,7 +11,7 @@
### configs [method]
```kotlin
-fun YukiHookXposedInitProxy.configs(initiate: YukiHookAPI.Configs.() -> Unit)
+fun IYukiHookXposedInit.configs(initiate: YukiHookAPI.Configs.() -> Unit)
```
**变更记录**
@@ -20,16 +20,16 @@ fun YukiHookXposedInitProxy.configs(initiate: YukiHookAPI.Configs.() -> Unit)
**功能描述**
-> 在 `YukiHookXposedInitProxy` 中配置 `Configs`。
+> 在 `IYukiHookXposedInit` 中配置 `Configs`。
### encase [method]
```kotlin
-fun YukiHookXposedInitProxy.encase(initiate: PackageParam.() -> Unit)
+fun IYukiHookXposedInit.encase(initiate: PackageParam.() -> Unit)
```
```kotlin
-fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker)
+fun IYukiHookXposedInit.encase(vararg hooker: YukiBaseHooker)
```
**变更记录**
@@ -38,7 +38,7 @@ fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker)
**功能描述**
-> 在 `YukiHookXposedInitProxy` 中装载 `YukiHookAPI`。
+> 在 `IYukiHookXposedInit` 中装载 `YukiHookAPI`。
### modulePrefs [field]
diff --git a/docs/config/api-example.md b/docs/config/api-example.md
index 33c4ba54..a136de10 100644
--- a/docs/config/api-example.md
+++ b/docs/config/api-example.md
@@ -120,7 +120,7 @@ class CustomHooker : YukiBaseHooker() {
> 示例如下
```kotlin
-class HookEntryClass : YukiHookXposedInitProxy {
+class HookEntryClass : IYukiHookXposedInit {
override fun onHook() = encase {
loadApp(name = "com.example.demo", ChildCustomHooker())
@@ -159,7 +159,7 @@ class FirstHooker : YukiBaseHooker() {
> 示例如下
```kotlin
-class HookEntryClass : YukiHookXposedInitProxy {
+class HookEntryClass : IYukiHookXposedInit {
override fun onHook() =
YukiHookAPI.encase(FirstHooker(), SecondHooker(), ThirdHooker() ...)
@@ -171,7 +171,7 @@ class HookEntryClass : YukiHookXposedInitProxy {
> 示例如下
```kotlin
-class HookEntryClass : YukiHookXposedInitProxy {
+class HookEntryClass : IYukiHookXposedInit {
override fun onHook() = encase(FirstHooker(), SecondHooker(), ThirdHooker() ...)
}
diff --git a/docs/config/api-exception.md b/docs/config/api-exception.md
index 9c294244..1b9fe4a4 100644
--- a/docs/config/api-exception.md
+++ b/docs/config/api-exception.md
@@ -20,12 +20,12 @@
**异常原因**
-你尝试在继承 `YukiHookXposedInitProxy` 的 Hook 入口类的 `onInit` 方法中装载了 `encase` 方法。
-
+你尝试在继承 `IYukiHookXposedInit` 的 Hook 入口类的 `onInit` 方法中装载了 `encase` 方法。
+
> 示例如下
```kotlin
-class HookEntry : YukiHookXposedInitProxy {
+class HookEntry : IYukiHookXposedInit {
override fun onInit() {
// ❗错误的使用方法
@@ -47,7 +47,7 @@ class HookEntry : YukiHookXposedInitProxy {
> 示例如下
```kotlin
-class HookEntry : YukiHookXposedInitProxy {
+class HookEntry : IYukiHookXposedInit {
override fun onInit() {
// 这里只能装载 configs 方法
diff --git a/docs/config/xposed-using.md b/docs/config/xposed-using.md
index 00c0bf98..a4d15c69 100644
--- a/docs/config/xposed-using.md
+++ b/docs/config/xposed-using.md
@@ -20,7 +20,7 @@ annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePack
`@InjectYukiHookWithXposed` 注解是一个标记模块 Hook 入口的重要注解。
-!> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `YukiHookXposedInitProxy` 接口。
+!> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `IYukiHookXposedInit` 接口。
!> 在你当前项目中的所有 `Class` 标记中**只能存在一次**,若**存在多个声明自动处理程序会在编译时抛出异常**,你可以自定义其相关参数。
@@ -74,10 +74,10 @@ annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePack
You set the customize module package name to "com.example.demo", please check for yourself if it is correct
```
-### YukiHookXposedInitProxy 接口
+### IYukiHookXposedInit 接口
```kotlin
-interface YukiHookXposedInitProxy {
+interface IYukiHookXposedInit {
fun onInit()
@@ -85,12 +85,12 @@ interface YukiHookXposedInitProxy {
}
```
-`YukiHookXposedInitProxy` 接口为你的 `HookEntryClass` 必须实现的接口,这是你的模块开始 Hook 的起点。
+`IYukiHookXposedInit` 接口为你的 `HookEntryClass` 必须实现的接口,这是你的模块开始 Hook 的起点。
-若要了解更多可 [点击这里](api/document?id=yukihookxposedinitproxy-interface) 进行查看。
+若要了解更多可 [点击这里](api/document?id=iyukihookxposedinit-interface) 进行查看。
当你的模块被 Xposed 装载后,`onHook` 方法将会被回调,你需要在此方法中开始使用 `YukiHookAPI`。
-> 基本的调用流程为 `_YukiHookXposedInit.handleLoadPackage` → `HookEntryClass.onInit` → `HookEntryClass.onHook` → `YukiHookAPI.onXposedLoaded`
+> 基本的调用流程为 `YukiHookInjectXposedInitClass.handleLoadPackage` → `HookEntryClass.onInit` → `HookEntryClass.onHook` → `YukiHookAPI.onXposedLoaded`
详情请参考 [API 基本配置](config/api-example)。
\ No newline at end of file
diff --git a/docs/guide/home.md b/docs/guide/home.md
index 4bb07a10..316f7087 100644
--- a/docs/guide/home.md
+++ b/docs/guide/home.md
@@ -70,7 +70,7 @@
```kotlin
@InjectYukiHookWithXposed
-class MainHook : YukiHookXposedInitProxy {
+class MainHook : IYukiHookXposedInit {
override fun onHook() = encase {
loadApp(name = "com.android.browser") {
diff --git a/docs/guide/quick-start.md b/docs/guide/quick-start.md
index 7102bc3d..eac71914 100644
--- a/docs/guide/quick-start.md
+++ b/docs/guide/quick-start.md
@@ -93,7 +93,7 @@ dependencies {
android:value="true"/>
```
-在你的项目中创建一个 Hook 入口类,继承于 `YukiHookXposedInitProxy` 并加入注解 `@InjectYukiHookWithXposed`。
+在你的项目中创建一个 Hook 入口类,继承于 `IYukiHookXposedInit` 并加入注解 `@InjectYukiHookWithXposed`。
!> 在默认配置情况下,你的入口类需要建立在你的包名的 hook 子包名下,假设你的包名为 `com.example.demo`,入口类应为 `com.example.demo.hook.你的入口类名称`。
@@ -101,7 +101,7 @@ dependencies {
```kotlin
@InjectYukiHookWithXposed
-class MainHook : YukiHookXposedInitProxy {
+class MainHook : IYukiHookXposedInit {
override fun onHook() = YukiHookAPI.encase {
// Your code here.
diff --git a/yukihookapi-ksp-xposed/src/api/kotlin/com/highcapable/yukihookapi_ksp_xposed/YukiHookXposedProcessor.kt b/yukihookapi-ksp-xposed/src/api/kotlin/com/highcapable/yukihookapi_ksp_xposed/YukiHookXposedProcessor.kt
index d5842c61..1c78a5df 100644
--- a/yukihookapi-ksp-xposed/src/api/kotlin/com/highcapable/yukihookapi_ksp_xposed/YukiHookXposedProcessor.kt
+++ b/yukihookapi-ksp-xposed/src/api/kotlin/com/highcapable/yukihookapi_ksp_xposed/YukiHookXposedProcessor.kt
@@ -107,7 +107,7 @@ class YukiHookXposedProcessor : SymbolProcessorProvider {
* @param resolver [Resolver]
*/
private fun injectProcess(resolver: Resolver) = environment {
- var injectOnce = true
+ var isInjectOnce = true
resolver.getSymbolsWithAnnotation(annotationName).apply {
/**
* 检索需要注入的类
@@ -116,8 +116,8 @@ class YukiHookXposedProcessor : SymbolProcessorProvider {
*/
fun fetchKSClassDeclaration(sourcePath: String, modulePackageName: String) {
asSequence().filterIsInstance().forEach {
- if (injectOnce)
- if (it.superTypes.any { type -> type.element.toString() == "YukiHookXposedInitProxy" }) {
+ if (isInjectOnce) when {
+ it.superTypes.any { type -> type.element.toString() == "IYukiHookXposedInit" } -> {
injectAssets(
codePath = (it.location as? FileLocation?)?.filePath ?: "",
sourcePath = sourcePath,
@@ -125,10 +125,14 @@ class YukiHookXposedProcessor : SymbolProcessorProvider {
className = it.simpleName.asString(),
)
injectClass(it.packageName.asString(), it.simpleName.asString(), modulePackageName)
- } else error(msg = "HookEntryClass \"${it.simpleName.asString()}\" must be implements YukiHookXposedInitProxy")
+ }
+ it.superTypes.any { type -> type.element.toString() == "YukiHookXposedInitProxy" } ->
+ error(msg = "\"YukiHookXposedInitProxy\" was deprecated, please replace to \"IYukiHookXposedInit\"")
+ else -> error(msg = "HookEntryClass \"${it.simpleName.asString()}\" must be implements \"IYukiHookXposedInit\"")
+ }
else error(msg = "\"@InjectYukiHookWithXposed\" only can be use in once times")
/** 仅处理第一个标记的类 - 再次处理将拦截并报错 */
- injectOnce = false
+ isInjectOnce = false
}
}
forEach {
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/annotation/xposed/InjectYukiHookWithXposed.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/annotation/xposed/InjectYukiHookWithXposed.kt
index 4cc92e8b..7b9e2717 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/annotation/xposed/InjectYukiHookWithXposed.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/annotation/xposed/InjectYukiHookWithXposed.kt
@@ -28,7 +28,7 @@
package com.highcapable.yukihookapi.annotation.xposed
import com.highcapable.yukihookapi.YukiHookAPI
-import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
+import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
/**
* 标识 [YukiHookAPI] 注入 Xposed 入口的类注解
@@ -53,7 +53,7 @@ import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
*
* - ❗最后这一点很重要:请不要随意修改项目 ../[sourcePath]/assets/xposed_init 中的内容 - 否则可能会导致模块无法装载
*
- * - ❗你必须将被注解的类继承于 [YukiHookXposedInitProxy] 接口实现 [YukiHookXposedInitProxy.onHook] 方法 - 否则编译会报错
+ * - ❗你必须将被注解的类继承于 [IYukiHookXposedInit] 接口实现 [IYukiHookXposedInit.onHook] 方法 - 否则编译会报错
*
* - ❗只能拥有一个 Hook 入口 - 若存在多个注解编译会报错
*
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/entity/YukiBaseHooker.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/entity/YukiBaseHooker.kt
index 95991192..318a82f6 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/entity/YukiBaseHooker.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/entity/YukiBaseHooker.kt
@@ -30,7 +30,7 @@ package com.highcapable.yukihookapi.hook.entity
import com.highcapable.yukihookapi.YukiHookAPI
import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
import com.highcapable.yukihookapi.hook.param.PackageParam
-import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
+import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
/**
* [YukiHookAPI] 的子类 Hooker 实现
@@ -39,7 +39,7 @@ import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
*
* 你可以继续继承此类进行自定义 Hooker 相关参数
*
- * 你可以在 [YukiHookXposedInitProxy] 的 [YukiHookXposedInitProxy.onHook] 中实现如下用法:
+ * 你可以在 [IYukiHookXposedInit] 的 [IYukiHookXposedInit.onHook] 中实现如下用法:
*
* 1.调用 [YukiHookAPI.encase] encase(MainHooker(), SecondHooker(), ThirdHooker() ...)
*
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 11e005af..68ad312b 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
@@ -25,7 +25,7 @@
*
* This file is Created by fankes on 2022/2/2.
*/
-@file:Suppress("unused")
+@file:Suppress("unused", "DEPRECATION", "DeprecatedCallableAddReplaceWith")
package com.highcapable.yukihookapi.hook.factory
@@ -39,28 +39,38 @@ import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
import com.highcapable.yukihookapi.hook.param.PackageParam
import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus
import com.highcapable.yukihookapi.hook.xposed.prefs.YukiHookModulePrefs
+import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
import java.io.BufferedReader
import java.io.File
import java.io.FileReader
/**
- * 在 [YukiHookXposedInitProxy] 中装载 [YukiHookAPI.Configs]
+ * 在 [IYukiHookXposedInit] 中装载 [YukiHookAPI.Configs]
* @param initiate Hook 方法体
*/
-fun YukiHookXposedInitProxy.configs(initiate: YukiHookAPI.Configs.() -> Unit) = YukiHookAPI.configs(initiate)
+fun IYukiHookXposedInit.configs(initiate: YukiHookAPI.Configs.() -> Unit) = YukiHookAPI.configs(initiate)
/**
- * 在 [YukiHookXposedInitProxy] 中装载 [YukiHookAPI]
+ * 在 [IYukiHookXposedInit] 中装载 [YukiHookAPI]
* @param initiate Hook 方法体
*/
-fun YukiHookXposedInitProxy.encase(initiate: PackageParam.() -> Unit) = YukiHookAPI.encase(initiate)
+fun IYukiHookXposedInit.encase(initiate: PackageParam.() -> Unit) = YukiHookAPI.encase(initiate)
/**
- * 在 [YukiHookXposedInitProxy] 中装载 [YukiHookAPI]
+ * 在 [IYukiHookXposedInit] 中装载 [YukiHookAPI]
* @param hooker Hook 子类数组 - 必填不能为空
* @throws IllegalStateException 如果 [hooker] 是空的
*/
+fun IYukiHookXposedInit.encase(vararg hooker: YukiBaseHooker) = YukiHookAPI.encase(hooker = hooker)
+
+@Deprecated("请将接口转移到 IYukiHookXposedInit")
+fun YukiHookXposedInitProxy.configs(initiate: YukiHookAPI.Configs.() -> Unit) = YukiHookAPI.configs(initiate)
+
+@Deprecated("请将接口转移到 IYukiHookXposedInit")
+fun YukiHookXposedInitProxy.encase(initiate: PackageParam.() -> Unit) = YukiHookAPI.encase(initiate)
+
+@Deprecated("请将接口转移到 IYukiHookXposedInit")
fun YukiHookXposedInitProxy.encase(vararg hooker: YukiBaseHooker) = YukiHookAPI.encase(hooker = hooker)
/**
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/application/ModuleApplication.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/application/ModuleApplication.kt
index ba6f27a2..4ca0a871 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/application/ModuleApplication.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/application/ModuleApplication.kt
@@ -32,7 +32,7 @@ import android.content.Context
import com.highcapable.yukihookapi.YukiHookAPI
import com.highcapable.yukihookapi.hook.xposed.application.ModuleApplication.Companion.appContext
import com.highcapable.yukihookapi.hook.xposed.application.inject.ModuleApplication_Injector
-import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
+import com.highcapable.yukihookapi.hook.xposed.proxy.IYukiHookXposedInit
import me.weishu.reflection.Reflection
/**
@@ -78,6 +78,6 @@ open class ModuleApplication : Application() {
callApiInit()
}
- /** 调用入口类的 [YukiHookXposedInitProxy.onInit] 方法 */
+ /** 调用入口类的 [IYukiHookXposedInit.onInit] 方法 */
private fun callApiInit() = runCatching { ModuleApplication_Injector.callApiInit() }
}
\ No newline at end of file
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/proxy/IYukiHookXposedInit.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/proxy/IYukiHookXposedInit.kt
new file mode 100644
index 00000000..057d4d59
--- /dev/null
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/proxy/IYukiHookXposedInit.kt
@@ -0,0 +1,72 @@
+/*
+ * YukiHookAPI - An efficient Kotlin version of the Xposed Hook API.
+ * Copyright (C) 2019-2022 HighCapable
+ * https://github.com/fankes/YukiHookAPI
+ *
+ * MIT License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * This file is Created by fankes on 2022/2/2.
+ * This file is Modified by fankes on 2022/4/22.
+ */
+@file:Suppress("unused")
+
+package com.highcapable.yukihookapi.hook.xposed.proxy
+
+import com.highcapable.yukihookapi.YukiHookAPI
+import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
+import com.highcapable.yukihookapi.hook.factory.configs
+import com.highcapable.yukihookapi.hook.factory.encase
+
+/**
+ * [YukiHookAPI] 的 Xposed 装载 API 调用接口
+ *
+ * - ❗请在此类上添加注解 [InjectYukiHookWithXposed] 标记模块 Hook 入口
+ *
+ * [YukiHookAPI] 初始化时将自动调用 [onInit] 方法
+ *
+ * Hook 开始时将自动调用 [onHook] 方法
+ *
+ * 请在 [onInit] 中调用 [YukiHookAPI.configs] 或直接调用 [configs]
+ *
+ * 请在 [onHook] 中调用 [YukiHookAPI.encase] 或直接调用 [encase]
+ *
+ * 详情请参考 [IYukiHookXposedInit 接口](https://fankes.github.io/YukiHookAPI/#/config/xposed-using?id=iyukihookxposedinit-%e6%8e%a5%e5%8f%a3)
+ */
+interface IYukiHookXposedInit {
+
+ /**
+ * 配置 [YukiHookAPI.Configs] 的初始化方法
+ *
+ * - ❗在这里只能进行初始化配置 - 不能进行 Hook 操作
+ *
+ * 此方法可选 - 你也可以选择不对 [YukiHookAPI.Configs] 进行配置
+ */
+ fun onInit() {}
+
+ /**
+ * 模块装载调用入口方法
+ *
+ * Xposed API
+ *
+ * 调用 [YukiHookAPI.encase] 或直接调用 [encase] 开始 Hook
+ */
+ fun onHook()
+}
\ No newline at end of file
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/proxy/YukiHookXposedInitProxy.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/proxy/YukiHookXposedInitProxy.kt
index 97b04457..9c018334 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/proxy/YukiHookXposedInitProxy.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/proxy/YukiHookXposedInitProxy.kt
@@ -25,47 +25,36 @@
*
* This file is Created by fankes on 2022/2/2.
*/
-@file:Suppress("unused")
+@file:Suppress("unused", "DeprecatedCallableAddReplaceWith")
package com.highcapable.yukihookapi.hook.xposed.proxy
import com.highcapable.yukihookapi.YukiHookAPI
-import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
-import com.highcapable.yukihookapi.hook.factory.configs
-import com.highcapable.yukihookapi.hook.factory.encase
+import com.highcapable.yukihookapi.hook.log.yLoggerW
/**
* [YukiHookAPI] 的 Xposed 装载 API 调用接口
*
- * - ❗请在此类上添加注解 [InjectYukiHookWithXposed] 标记模块 Hook 入口
+ * - ❗此接口名称已弃用 - 在不久的版本中将直接被删除
*
- * [YukiHookAPI] 初始化时将自动调用 [onInit] 方法
- *
- * Hook 开始时将自动调用 [onHook] 方法
- *
- * 请在 [onInit] 中调用 [YukiHookAPI.configs] 或直接调用 [configs]
- *
- * 请在 [onHook] 中调用 [YukiHookAPI.encase] 或直接调用 [encase]
- *
- * 详情请参考 [YukiHookXposedInitProxy 接口](https://fankes.github.io/YukiHookAPI/#/config/xposed-using?id=yukihookxposedinitproxy-%e6%8e%a5%e5%8f%a3)
+ * - ❗请现在转移到 [IYukiHookXposedInit] 否则此接口的声明将在自动处理程序中被拦截
*/
+@Deprecated(message = "此接口的命名已被弃用", ReplaceWith(expression = "IYukiHookXposedInit"))
interface YukiHookXposedInitProxy {
/**
* 配置 [YukiHookAPI.Configs] 的初始化方法
*
- * - ❗在这里只能进行初始化配置 - 不能进行 Hook 操作
- *
- * 此方法可选 - 你也可以选择不对 [YukiHookAPI.Configs] 进行配置
+ * - ❗请将接口转移到 [IYukiHookXposedInit]
*/
- fun onInit() {}
+ @Deprecated(message = "请将接口转移到 IYukiHookXposedInit")
+ fun onInit() = yLoggerW(msg = "YukiHookXposedInitProxy was deprecated")
/**
* 模块装载调用入口方法
*
- * Xposed API
- *
- * 调用 [YukiHookAPI.encase] 或直接调用 [encase] 开始 Hook
+ * - ❗请将接口转移到 [IYukiHookXposedInit]
*/
+ @Deprecated(message = "请将接口转移到 IYukiHookXposedInit")
fun onHook()
}
\ No newline at end of file