Modify change appClassLoader field to get/set type and the value can be set manually in PackageParam

This commit is contained in:
2022-11-29 01:59:35 +08:00
parent 6e1a149b97
commit c77ad3757b
3 changed files with 43 additions and 8 deletions

View File

@@ -27,16 +27,28 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
## appClassLoader <span class="symbol">- field</span>
```kotlin:no-line-numbers
val appClassLoaderClassLoader
var appClassLoaderClassLoader
```
**Change Records**
`v1.0` `first`
`v1.1.5` `modified`
可以动态修改此变量的值
**Function Illustrate**
> 获取当前 Hook APP 的 `ClassLoader`。
> 获取、设置当前 Hook APP 的 `ClassLoader`。
你可以在这里手动设置当前 Hook APP 的 `ClassLoader`,默认情况下会自动获取。
::: danger
如果设置了错误或无效的 **ClassLoader** 会造成功能异常,请谨慎操作。
:::
## appInfo <span class="symbol">- field</span>

View File

@@ -19,16 +19,28 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
## appClassLoader <span class="symbol">- field</span>
```kotlin:no-line-numbers
val appClassLoaderClassLoader
var appClassLoaderClassLoader
```
**变更记录**
`v1.0` `添加`
`v1.1.5` `修改`
可以动态修改此变量的值
**功能描述**
> 获取当前 Hook APP 的 `ClassLoader`。
> 获取、设置当前 Hook APP 的 `ClassLoader`。
你可以在这里手动设置当前 Hook APP 的 `ClassLoader`,默认情况下会自动获取。
::: danger
如果设置了错误或无效的 **ClassLoader** 会造成功能异常,请谨慎操作。
:::
## appInfo <span class="symbol">- field</span>

View File

@@ -63,14 +63,25 @@ import com.highcapable.yukihookapi.hook.xposed.prefs.YukiHookModulePrefs
*/
open class PackageParam internal constructor(@PublishedApi internal var wrapper: PackageParamWrapper? = null) {
/** 当前设置的 [ClassLoader] */
private var currentClassLoader: ClassLoader? = null
/**
* 获取当前 Hook APP 的 [ClassLoader]
* 获取、设置当前 Hook APP 的 [ClassLoader]
*
* 你可以在这里手动设置当前 Hook APP 的 [ClassLoader] - 默认情况下会自动获取
*
* - ❗如果设置了错误或无效的 [ClassLoader] 会造成功能异常 - 请谨慎操作
* @return [ClassLoader]
* @throws IllegalStateException 如果 [ClassLoader] 是空的
*/
val appClassLoader
get() = wrapper?.appClassLoader ?: YukiHookAppHelper.currentApplication()?.classLoader ?: javaClass.classLoader
?: error("PackageParam got null ClassLoader")
var appClassLoader
get() = currentClassLoader ?: wrapper?.appClassLoader
?: YukiHookAppHelper.currentApplication()?.classLoader
?: javaClass.classLoader ?: error("PackageParam got null ClassLoader")
set(value) {
currentClassLoader = value
}
/**
* 获取当前 Hook APP 的 [ApplicationInfo]