mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 17:55:24 +08:00
Merge YukiHookXposedInitProxy to IYukiHookXposedInit
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
|
||||
[filename](public/InjectYukiHookWithXposed.md ':include')
|
||||
|
||||
[filename](public/YukiHookXposedInitProxy.md ':include')
|
||||
[filename](public/IYukiHookXposedInit.md ':include')
|
||||
|
||||
[filename](public/YukiHookModulePrefs.md ':include')
|
||||
|
||||
|
@@ -1,13 +1,19 @@
|
||||
## YukiHookXposedInitProxy [interface]
|
||||
## IYukiHookXposedInit [interface]
|
||||
|
||||
```kotlin
|
||||
interface YukiHookXposedInitProxy
|
||||
interface IYukiHookXposedInit
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.80` `修改` `作废`
|
||||
|
||||
作废了 ~~`YukiHookXposedInitProxy`~~ 名称但保留接口
|
||||
|
||||
转移到 `IYukiHookXposedInit` 新名称
|
||||
|
||||
**功能描述**
|
||||
|
||||
> YukiHookAPI 的 Xposed 装载 API 调用接口。
|
@@ -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"
|
||||
|
@@ -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]
|
||||
|
||||
|
@@ -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() ...)
|
||||
}
|
||||
|
@@ -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 方法
|
||||
|
@@ -20,7 +20,7 @@ annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePack
|
||||
|
||||
`@InjectYukiHookWithXposed` 注解是一个标记模块 Hook 入口的重要注解。
|
||||
|
||||
!> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `YukiHookXposedInitProxy` 接口。
|
||||
!> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `IYukiHookXposedInit` 接口。
|
||||
|
||||
!> 在你当前项目中的所有 `Class` 标记中**只能存在一次**,若**存在多个声明自动处理程序<u>会在编译时抛出异常</u>**,你可以自定义其相关参数。
|
||||
|
||||
@@ -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)。
|
@@ -70,7 +70,7 @@
|
||||
|
||||
```kotlin
|
||||
@InjectYukiHookWithXposed
|
||||
class MainHook : YukiHookXposedInitProxy {
|
||||
class MainHook : IYukiHookXposedInit {
|
||||
|
||||
override fun onHook() = encase {
|
||||
loadApp(name = "com.android.browser") {
|
||||
|
@@ -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.
|
||||
|
Reference in New Issue
Block a user