# YukiHookFactory - kt | Yuki Hook API
An efficient Hook API and Xposed Module solution built in Kotlin

Notice

The English translation of this page has not been completed, you are welcome to contribute translations to us.

You can use the Chrome Translation Plugin to translate entire pages for reference.

# # YukiHookFactory - kt

Change Records

`v1.0` `first`

`v1.0.80` `modified`

合并到 `IYukiHookXposedInit`，将方法体进行 inline

Function Illustrate

> 这是 `YukiHookAPI` 相关 `lambda` 方法的封装类以及部分 API 用法。

## # IYukiHookXposedInit.configs - ext-method

    inline fun IYukiHookXposedInit.configs(initiate: YukiHookAPI.Configs.() -> Unit)

Change Records

`v1.0.1` `added`

`v1.0.80` `modified`

合并到 `IYukiHookXposedInit`

Function Illustrate

> 在 `IYukiHookXposedInit` 中配置 `Configs`。

## # IYukiHookXposedInit.encase - ext-method

    fun IYukiHookXposedInit.encase(initiate: PackageParam.() -> Unit)

    fun IYukiHookXposedInit.encase(vararg hooker: YukiBaseHooker)

Change Records

`v1.0` `first`

`v1.0.80` `modified`

合并到 `IYukiHookXposedInit`

Function Illustrate

> 在 `IYukiHookXposedInit` 中调用 `YukiHookAPI`。

## Context.modulePrefs - ext-field

Change Records

`v1.0` `first`

`v1.1.9` `deprecated`

请转移到 `prefs` 方法

## Context.modulePrefs - ext-method

Change Records

`v1.0` `first`

`v1.1.9` `deprecated`

请转移到 `prefs` 方法

## # Context.prefs - ext-method

    fun Context.prefs(name: String): YukiHookPrefsBridge

Change Records

`v1.1.9` `added`

Function Illustrate

> 创建 `YukiHookPrefsBridge` 对象。

可以同时在模块与 (Xposed) 宿主环境中使用。

如果你想在 (Xposed) 宿主环境将数据存入当前宿主的私有空间，请使用 `YukiHookPrefsBridge.native` 方法。

在未声明任何条件的情况下 (Xposed) 宿主环境默认读取模块中的数据。

## # Context.dataChannel - ext-method

    fun Context.dataChannel(packageName: String): YukiHookDataChannel.NameSpace

Change Records

`v1.0.88` `added`

Function Illustrate

> 获取 `YukiHookDataChannel` 对象。

Pay Attention

只能在模块环境使用此功能，其它环境下使用将不起作用。

## # Context.processName - ext-field

    val Context.processName: String

Change Records

`v1.0` `first`

Function Illustrate

> 获取当前进程名称。

## # Context+Resources.injectModuleAppResources - ext-method

    fun Context.injectModuleAppResources()

    fun Resources.injectModuleAppResources()

Change Records

`v1.1.0` `added`

Function Illustrate

> 向 Hook APP (宿主) `Context` 或 `Resources` 注入当前 Xposed 模块的资源。

注入成功后，你就可以直接使用例如 `ImageView.setImageResource` 或 `Resources.getString` 装载当前 Xposed 模块的资源 ID。

注入的资源作用域仅限当前 `Context` 或 `Resources`，你需要在每个用到宿主 `Context` 或 `Resources` 的地方重复调用此方法进行注入才能使用。

Pay Attention

只能在 (Xposed) 宿主环境使用此功能，其它环境下使用将不生效且会打印警告信息。

## # Context.registerModuleAppActivities - ext-method

    fun Context.registerModuleAppActivities(proxy: Any?)

Change Records

`v1.1.0` `added`

`v1.1.5` `modified`

加入最低 API 版本限制

Function Illustrate

> 向 Hook APP (宿主) 注册当前 Xposed 模块的 `Activity`。

注册成功后，你就可以直接使用 `Context.startActivity` 来启动未在宿主中注册的 `Activity`。

使用此方法会在未注册的 `Activity` 在 Hook APP (宿主) 中启动时自动调用 `injectModuleAppResources` 注入当前 Xposed 模块的资源。

你要将需要在宿主启动的 `Activity` 继承于 `ModuleAppActivity` 或 `ModuleAppCompatActivity`。

Pay Attention

只能在 (Xposed) 宿主环境使用此功能，其它环境下使用将不生效且会打印警告信息。

最低支持 Android 7.0 (API 24)。

## # Context.applyModuleTheme - ext-method

    fun Context.applyModuleTheme(theme: Int, configuration: Configuration?): ModuleContextThemeWrapper

Change Records

`v1.1.0` `added`

Function Illustrate

> 生成一个 `ContextThemeWrapper` 代理以应用当前 Xposed 模块的主题资源。

在 Hook APP (宿主) 中使用此方法会自动调用 `injectModuleAppResources` 注入当前 Xposed 模块的资源。

如果在 Hook APP (宿主) 中使用此方法发生 `ClassCastException`，请手动设置 `configuration`。

## isSupportResourcesHook - field

Change Records

`v1.0.80` `added`

`v1.0.91` `removed`

请转移到 `YukiHookAPI.Status.isSupportResourcesHook`

## isModuleActive - field

Change Records

`v1.0.6` `added`

`v1.0.91` `removed`

请转移到 `YukiHookAPI.Status.isModuleActive`

## isXposedModuleActive - field

Change Records

`v1.0.6` `added`

`v1.0.91` `removed`

请转移到 `YukiHookAPI.Status.isXposedModuleActive`

## isTaiChiModuleActive - field

Change Records

`v1.0` `first`

`v1.0.91` `removed`

请转移到 `YukiHookAPI.Status.isTaiChiModuleActive`

# YukiHookModuleStatus - class

Change Records

`v1.0` `first`

`v1.0.91` `deprecated`

请转移到 `YukiHookAPI.Status`