mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 01:35:17 +08:00
Added more params function such as loadApp, loadZygote, loadSystem, withProcess in PackageParam
This commit is contained in:
@@ -356,6 +356,14 @@ inline fun loadApp(name: String, initiate: PackageParam.() -> Unit)
|
||||
fun loadApp(name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
inline fun loadApp(vararg name: String, initiate: PackageParam.() -> Unit)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun loadApp(name: String, vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
**Change Records**
|
||||
|
||||
`v1.0` `first`
|
||||
@@ -364,6 +372,10 @@ fun loadApp(name: String, hooker: YukiBaseHooker)
|
||||
|
||||
将方法体进行 inline
|
||||
|
||||
`v1.1.4` `modified`
|
||||
|
||||
新增两个方法,可以同时装载多个 APP 与子 Hooker
|
||||
|
||||
**Function Illustrate**
|
||||
|
||||
> 装载并 Hook 指定包名的 APP。
|
||||
@@ -404,6 +416,26 @@ loadApp {
|
||||
loadApp(hooker = CustomHooker)
|
||||
```
|
||||
|
||||
若想要同时装载多个需要 Hook 的 APP,可以直接使用如下方式。
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
// 同时装载多个需要 Hook 的 APP
|
||||
loadApp("com.example.test", "com.example.next") {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
若想要同时装载多个子 Hooker,可以直接使用如下方式,但此时只能指定一个需要 Hook 的 APP。
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
// 同时装载多个子 Hooker
|
||||
loadApp("com.example.test", CustomHooker1, CustomHooker2)
|
||||
```
|
||||
|
||||
## loadZygote <span class="symbol">- method</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
@@ -414,10 +446,18 @@ inline fun loadZygote(initiate: PackageParam.() -> Unit)
|
||||
fun loadZygote(hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun loadZygote(vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
**Change Records**
|
||||
|
||||
`v1.0.80` `added`
|
||||
|
||||
`v1.1.4` `modified`
|
||||
|
||||
新增一个方法,可以同时装载多个子 Hooker
|
||||
|
||||
**Function Illustrate**
|
||||
|
||||
> 装载 APP Zygote 事件。
|
||||
@@ -434,10 +474,18 @@ inline fun loadSystem(initiate: PackageParam.() -> Unit)
|
||||
fun loadSystem(hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun loadSystem(vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
**Change Records**
|
||||
|
||||
`v1.0.82` `added`
|
||||
|
||||
`v1.1.4` `modified`
|
||||
|
||||
新增一个方法,可以同时装载多个子 Hooker
|
||||
|
||||
**Function Illustrate**
|
||||
|
||||
> 装载并 Hook 系统框架。
|
||||
@@ -454,10 +502,22 @@ inline fun withProcess(name: String, initiate: PackageParam.() -> Unit)
|
||||
fun withProcess(name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun withProcess(vararg name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun withProcess(name: String, vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
**Change Records**
|
||||
|
||||
`v1.0.70` `added`
|
||||
|
||||
`v1.1.4` `modified`
|
||||
|
||||
新增两个方法,可以同时装载多个进程与子 Hooker
|
||||
|
||||
**Function Illustrate**
|
||||
|
||||
> 装载并 Hook APP 的指定进程。
|
||||
|
@@ -348,6 +348,14 @@ inline fun loadApp(name: String, initiate: PackageParam.() -> Unit)
|
||||
fun loadApp(name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
inline fun loadApp(vararg name: String, initiate: PackageParam.() -> Unit)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun loadApp(name: String, vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
@@ -356,6 +364,10 @@ fun loadApp(name: String, hooker: YukiBaseHooker)
|
||||
|
||||
将方法体进行 inline
|
||||
|
||||
`v1.1.4` `修改`
|
||||
|
||||
新增两个方法,可以同时装载多个 APP 与子 Hooker
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 装载并 Hook 指定包名的 APP。
|
||||
@@ -396,6 +408,26 @@ loadApp {
|
||||
loadApp(hooker = CustomHooker)
|
||||
```
|
||||
|
||||
若想要同时装载多个需要 Hook 的 APP,可以直接使用如下方式。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
// 同时装载多个需要 Hook 的 APP
|
||||
loadApp("com.example.test", "com.example.next") {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
若想要同时装载多个子 Hooker,可以直接使用如下方式,但此时只能指定一个需要 Hook 的 APP。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
// 同时装载多个子 Hooker
|
||||
loadApp("com.example.test", CustomHooker1, CustomHooker2)
|
||||
```
|
||||
|
||||
## loadZygote <span class="symbol">- method</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
@@ -406,10 +438,18 @@ inline fun loadZygote(initiate: PackageParam.() -> Unit)
|
||||
fun loadZygote(hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun loadZygote(vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
`v1.1.4` `修改`
|
||||
|
||||
新增一个方法,可以同时装载多个子 Hooker
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 装载 APP Zygote 事件。
|
||||
@@ -426,10 +466,18 @@ inline fun loadSystem(initiate: PackageParam.() -> Unit)
|
||||
fun loadSystem(hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun loadSystem(vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.82` `新增`
|
||||
|
||||
`v1.1.4` `修改`
|
||||
|
||||
新增一个方法,可以同时装载多个子 Hooker
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 装载并 Hook 系统框架。
|
||||
@@ -446,10 +494,22 @@ inline fun withProcess(name: String, initiate: PackageParam.() -> Unit)
|
||||
fun withProcess(name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun withProcess(vararg name: String, hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
fun withProcess(name: String, vararg hooker: YukiBaseHooker)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.70` `新增`
|
||||
|
||||
`v1.1.4` `修改`
|
||||
|
||||
新增两个方法,可以同时装载多个进程与子 Hooker
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 装载并 Hook APP 的指定进程。
|
||||
|
@@ -227,6 +227,20 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
|
||||
if (wrapper?.type != HookEntryType.ZYGOTE && (packageName == name || name.isBlank())) initiate(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载并 Hook 指定、全部包名的 APP
|
||||
*
|
||||
* 若要装载 APP Zygote 事件 - 请使用 [loadZygote]
|
||||
*
|
||||
* 若要 Hook 系统框架 - 请使用 [loadSystem]
|
||||
* @param name 包名数组 - 不填将过滤除了 [loadZygote] 事件外的全部 APP
|
||||
* @param initiate 方法体
|
||||
*/
|
||||
inline fun loadApp(vararg name: String, initiate: PackageParam.() -> Unit) {
|
||||
if (name.isEmpty()) return loadApp(initiate = initiate)
|
||||
if (wrapper?.type != HookEntryType.ZYGOTE && name.any { it == packageName }) initiate(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载并 Hook 指定、全部包名的 APP
|
||||
*
|
||||
@@ -240,6 +254,20 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
|
||||
if (wrapper?.type != HookEntryType.ZYGOTE && (packageName == name || name.isBlank())) loadHooker(hooker)
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载并 Hook 指定、全部包名的 APP
|
||||
*
|
||||
* 若要装载 APP Zygote 事件 - 请使用 [loadZygote]
|
||||
*
|
||||
* 若要 Hook 系统框架 - 请使用 [loadSystem]
|
||||
* @param name 包名 - 不填将过滤除了 [loadZygote] 事件外的全部 APP
|
||||
* @param hooker Hook 子类数组
|
||||
*/
|
||||
fun loadApp(name: String = "", vararg hooker: YukiBaseHooker) {
|
||||
if (hooker.isEmpty()) error("loadApp method need a \"hooker\" param")
|
||||
if (wrapper?.type != HookEntryType.ZYGOTE && (packageName == name || name.isBlank())) hooker.forEach { loadHooker(it) }
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载并 Hook 系统框架
|
||||
* @param initiate 方法体
|
||||
@@ -252,6 +280,15 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
|
||||
*/
|
||||
fun loadSystem(hooker: YukiBaseHooker) = loadApp(YukiHookBridge.SYSTEM_FRAMEWORK_NAME, hooker)
|
||||
|
||||
/**
|
||||
* 装载并 Hook 系统框架
|
||||
* @param hooker Hook 子类数组
|
||||
*/
|
||||
fun loadSystem(vararg hooker: YukiBaseHooker) {
|
||||
if (hooker.isEmpty()) error("loadSystem method need a \"hooker\" param")
|
||||
loadApp(YukiHookBridge.SYSTEM_FRAMEWORK_NAME, *hooker)
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载 APP Zygote 事件
|
||||
* @param initiate 方法体
|
||||
@@ -268,6 +305,15 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
|
||||
if (wrapper?.type == HookEntryType.ZYGOTE) loadHooker(hooker)
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载 APP Zygote 事件
|
||||
* @param hooker Hook 子类数组
|
||||
*/
|
||||
fun loadZygote(vararg hooker: YukiBaseHooker) {
|
||||
if (hooker.isEmpty()) error("loadZygote method need a \"hooker\" param")
|
||||
if (wrapper?.type == HookEntryType.ZYGOTE) hooker.forEach { loadHooker(it) }
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载并 Hook APP 的指定进程
|
||||
* @param name 进程名 - 若要指定主进程可填写 [mainProcessName] - 效果与 [isFirstApplication] 一致
|
||||
@@ -277,6 +323,16 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
|
||||
if (processName == name) initiate(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载并 Hook APP 的指定进程
|
||||
* @param name 进程名数组 - 若要指定主进程可填写 [mainProcessName] - 效果与 [isFirstApplication] 一致
|
||||
* @param initiate 方法体
|
||||
*/
|
||||
inline fun withProcess(vararg name: String, initiate: PackageParam.() -> Unit) {
|
||||
if (name.isEmpty()) error("withProcess method need a \"name\" param")
|
||||
if (name.any { it == processName }) initiate(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载并 Hook APP 的指定进程
|
||||
* @param name 进程名 - 若要指定主进程可填写 [mainProcessName] - 效果与 [isFirstApplication] 一致
|
||||
@@ -286,6 +342,16 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
|
||||
if (processName == name) loadHooker(hooker)
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载并 Hook APP 的指定进程
|
||||
* @param name 进程名 - 若要指定主进程可填写 [mainProcessName] - 效果与 [isFirstApplication] 一致
|
||||
* @param hooker Hook 子类数组
|
||||
*/
|
||||
fun withProcess(name: String, vararg hooker: YukiBaseHooker) {
|
||||
if (name.isEmpty()) error("withProcess method need a \"hooker\" param")
|
||||
if (processName == name) hooker.forEach { loadHooker(it) }
|
||||
}
|
||||
|
||||
/**
|
||||
* 装载 Hook 子类
|
||||
*
|
||||
|
Reference in New Issue
Block a user