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.

YukiResourcesHookCreator - class

class YukiResourcesHookCreator internal constructor(internal val packageParam: PackageParam, internal val hookResources: HookResources)

Change Records

v1.0.80 added

v1.1.0 modified

修正拼写错误的 Creater 命名到 Creator

v1.1.5 modified

私有化构造方法

Function Illustrate

YukiHookAPIResources 核心 Hook 实现类。

injectResource - method

inline fun injectResource(tag: String, initiate: ResourceHookCreator.() -> Unit): ResourceHookCreator.Result

Change Records

v1.0.80 added

Function Illustrate

注入要 Hook 的 Resources。

Function Example

你可以注入任意 Resources,使用 injectResource 即可创建一个 Hook 对象。

The following example

injectResource {
    // Your code here.
}

你还可以自定义 tag,方便你在调试的时候能够区分你的 Hook 对象。

The following example

injectResource(tag = "KuriharaYuki") {
    // Your code here.
}

ResourcesHookCreator - class

inner class ResourcesHookCreator internal constructor(private val tag: String)

Change Records

v1.0.80 added

v1.1.0 modified

移除 packageName

修正拼写错误的 Creater 命名到 Creator

Function Illustrate

Hook 核心功能实现类。

查找和处理需要 Hook 的 Resources。

resourceId - field

var resourceId: Int

Change Records

v1.0.80 added

Function Illustrate

直接设置需要替换的 Resources Id。

Notice

不建议使用此方法设置目标需要 Hook 的 Resources Id,你可以使用 conditions 方法。

Function Example

你可以直接设置并指定目标 Hook APP 的 Resources Id。

The following example

injectResource {
    resourceId = 0x7f060001.toInt()
    replaceTo(...)
}

conditions - method

inline fun conditions(initiate: ConditionFinder.() -> Unit)

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 查找条件。

若你设置了 resourceId 则此方法将不会被使用。

Function Example

你可参考 ConditionFinder 查看详细用法。

The following example

injectResource {
    conditions {
        name = "test_string"
        string()
    }
    replaceTo(...)
}

replaceTo - method

fun replaceTo(any: Any)

Change Records

v1.0.80 added

Function Illustrate

替换指定 Resources 为指定的值。

Function Example

你可以替换找到的 Resources 为你想要的值,可以是 StringDrawable 等。

比如我们要替换一个找到的字符串 Resources。

The following example

injectResource {
    conditions {
        name = "test_string"
        string()
    }
    replaceTo("replace string")
}

或是替换为一个 Drawable,你无需对目标 Resources 实现 fwd 方法或 DrawableLoader

The following example

injectResource {
    conditions {
        name = "test_drawable"
        drawable()
    }
    replaceTo(ColorDrawable(Color.RED))
}

replaceToTrue - method

fun replaceToTrue()

Change Records

v1.0.80 added

Function Illustrate

替换指定 Resources 为 true

Pay Attention

确保目标替换 Resources 的类型为 Boolean

replaceToFalse - method

fun replaceToFalse()

Change Records

v1.0.80 added

Function Illustrate

替换指定 Resources 为 false

Pay Attention

确保目标替换 Resources 的类型为 Boolean

replaceToModuleResource - method

fun replaceToModuleResource(resId: Int)

Change Records

v1.0.80 added

Function Illustrate

替换为当前 Xposed 模块的 Resources。

你可以直接使用模块的 R.string.xxxR.mipmap.xxxR.drawable.xxx 替换 Hook APP 的 Resources。

Function Example

使用此方法可非常方便地使用当前模块的 Resources 去替换目标 Hook APP 的 Resources。

这个过程你无需对目标 Resources 实现 fwd 方法。

比如我们要替换一个字符串。

The following example

injectResource {
    conditions {
        name = "test_string"
        string()
    }
    replaceToModuleResource(R.string.module_string)
}

还可以替换一些复杂的 Resources,比如 xml 创建的 drawable

The following example

injectResource {
    conditions {
        name = "test_drawable"
        drawable()
    }
    replaceToModuleResource(R.drawable.module_drawable)
}

replaceTo - method

fun replaceTo(result: (original: Any) -> Any?)

Change Records

v1.2.0 added

Function Illustrate

替换指定 Resources 为指定的值。

Notice

此方法只支持部分类型,例如 StringBoolean

此方法不支持在 HookEntryType.ZYGOTE 时使用。

replaceToModuleResource - method

fun replaceToModuleResource(result: (original: Any) -> Int)

Change Records

v1.2.0 added

Function Illustrate

替换为当前 Xposed 模块的 Resources。

你可以直接使用模块的 R.string.xxxR.mipmap.xxxR.drawable.xxx 替换 Hook APP 的 Resources。

Notice

此方法只支持部分类型,例如 StringBoolean

此方法不支持在 HookEntryType.ZYGOTE 时使用。

injectAsLayout - method

fun injectAsLayout(initiate: YukiResources.LayoutInflatedParam.() -> Unit)

Change Records

v1.0.80 added

Function Illustrate

作为装载的布局注入。

Function Example

你可以直接注入一个布局监听并修改它的内部 View

The following example

injectResource {
    conditions {
        name = "activity_main"
        layout()
    }
    injectAsLayout {
        findViewByIdentifier<View>(name = "test_view")?.isVisible = false
        findViewByIdentifier<TextView>(name = "test_text_view")?.text = "Hook this"
    }
}

你还可以通过 currentView 拿到 Context

The following example

injectResource {
    conditions {
        name = "activity_main"
        layout()
    }
    injectAsLayout {
        Toast.makeText(currentView.context, "Hook this", Toast.LENGTH_SHORT).show()
    }
}

ConditionFinder - class

inner class ConditionFinder internal constructor()

Change Records

v1.0.80 added

Function Illustrate

Resources 查找条件实现类。

name - field

var name: String

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 名称。

anim - method

fun anim()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为动画。

animator - method

fun animator()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为属性动画。

bool - method

fun bool()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为布朗(Boolean)。

color - method

fun color()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为颜色(Color)。

dimen - method

fun dimen()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为尺寸(Dimention)。

drawable - method

fun drawable()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为 Drawable。

integer - method

fun integer()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为整型(Integer)。

layout - method

fun layout()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为布局(Layout)。

plurals - method

fun plurals()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为 Plurals。

string - method

fun string()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为字符串(String)。

xml - method

fun xml()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为 Xml。

mipmap - method

fun mipmap()

Change Records

v1.0.80 added

Function Illustrate

设置 Resources 类型为位图(Mipmap)。

array - method

fun array()

Change Records

v1.1.0 added

Function Illustrate

设置 Resources 类型为数组(Array)。

Result - class

inner class Result internal constructor()

Change Records

v1.0.80 added

Function Illustrate

监听全部 Hook 结果实现类,可在这里处理失败事件监听。

result - method

inline fun result(initiate: Result.() -> Unit): Result

Change Records

v1.0.80 added

Function Illustrate

创建监听事件方法体。

by - method

inline fun by(condition: () -> Boolean): Result

Change Records

v1.0.80 added

Function Illustrate

添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。

onHookingFailure - method

fun onHookingFailure(result: (Throwable) -> Unit): Result

Change Records

v1.0.80 added

Function Illustrate

监听 Hook 过程发生错误的回调方法。

ignoredHookingFailure - method

fun ignoredHookingFailure(): Result

Change Records

v1.0.80 added

Function Illustrate

忽略 Hook 过程出现的错误。