import{_ as s,o as a,c as n,a as e}from"./app-BpUB8-Q8.js";const o={},l=e(`
注意
由于维护成本,YukiHookAPI
从 1.3.0
版本开始将不再会对此文档进行更新且在 2.0.0
版本切换为 Dokka 插件自动生成的 API 文档。
class YukiResourcesHookCreator internal constructor(internal val packageParam: PackageParam, internal val hookResources: HookResources)
变更记录
v1.0.80
新增
v1.1.0
修改
修正拼写错误的 Creater 命名到 Creator
v1.1.5
修改
私有化构造方法
功能描述
YukiHookAPI
的Resources
核心 Hook 实现类。
inline fun injectResource(tag: String, initiate: ResourceHookCreator.() -> Unit): ResourceHookCreator.Result
变更记录
v1.0.80
新增
功能描述
注入要 Hook 的 Resources。
功能示例
你可以注入任意 Resources,使用 injectResource
即可创建一个 Hook
对象。
示例如下
injectResource {
// Your code here.
}
你还可以自定义 tag
,方便你在调试的时候能够区分你的 Hook
对象。
示例如下
injectResource(tag = "KuriharaYuki") {
// Your code here.
}
inner class ResourcesHookCreator internal constructor(private val tag: String)
变更记录
v1.0.80
新增
v1.1.0
修改
移除 packageName
修正拼写错误的 Creater 命名到 Creator
功能描述
Hook 核心功能实现类。
查找和处理需要 Hook 的 Resources。
var resourceId: Int
变更记录
v1.0.80
新增
功能描述
直接设置需要替换的 Resources Id。
注意
不建议使用此方法设置目标需要 Hook 的 Resources Id,你可以使用 conditions 方法。
功能示例
你可以直接设置并指定目标 Hook APP 的 Resources Id。
示例如下
injectResource {
resourceId = 0x7f060001.toInt()
replaceTo(...)
}
inline fun conditions(initiate: ConditionFinder.() -> Unit)
变更记录
v1.0.80
新增
功能描述
设置 Resources 查找条件。
若你设置了 resourceId
则此方法将不会被使用。
功能示例
你可参考 ConditionFinder 查看详细用法。
示例如下
injectResource {
conditions {
name = "test_string"
string()
}
replaceTo(...)
}
fun replaceTo(any: Any)
变更记录
v1.0.80
新增
功能描述
替换指定 Resources 为指定的值。
功能示例
你可以替换找到的 Resources 为你想要的值,可以是 String
、Drawable
等。
比如我们要替换一个找到的字符串 Resources。
示例如下
injectResource {
conditions {
name = "test_string"
string()
}
replaceTo("replace string")
}
或是替换为一个 Drawable
,你无需对目标 Resources 实现 fwd
方法或 DrawableLoader
。
示例如下
injectResource {
conditions {
name = "test_drawable"
drawable()
}
replaceTo(ColorDrawable(Color.RED))
}
fun replaceToTrue()
变更记录
v1.0.80
新增
功能描述
替换指定 Resources 为
true
。
特别注意
确保目标替换 Resources 的类型为 Boolean。
fun replaceToFalse()
变更记录
v1.0.80
新增
功能描述
替换指定 Resources 为
false
。
特别注意
确保目标替换 Resources 的类型为 Boolean。
fun replaceToModuleResource(resId: Int)
变更记录
v1.0.80
新增
功能描述
替换为当前 Xposed 模块的 Resources。
你可以直接使用模块的 R.string.xxx
、R.mipmap.xxx
、R.drawable.xxx
替换 Hook APP 的 Resources。
功能示例
使用此方法可非常方便地使用当前模块的 Resources 去替换目标 Hook APP 的 Resources。
这个过程你无需对目标 Resources 实现 fwd
方法。
比如我们要替换一个字符串。
示例如下
injectResource {
conditions {
name = "test_string"
string()
}
replaceToModuleResource(R.string.module_string)
}
还可以替换一些复杂的 Resources,比如 xml
创建的 drawable
。
示例如下
injectResource {
conditions {
name = "test_drawable"
drawable()
}
replaceToModuleResource(R.drawable.module_drawable)
}
fun replaceTo(result: (original: Any) -> Any?)
变更记录
v1.2.0
新增
功能描述
替换指定 Resources 为指定的值。
注意
此方法只支持部分类型,例如 String、Boolean。
此方法不支持在 HookEntryType.ZYGOTE 时使用。
fun replaceToModuleResource(result: (original: Any) -> Int)
变更记录
v1.2.0
新增
功能描述
替换为当前 Xposed 模块的 Resources。
你可以直接使用模块的 R.string.xxx
、R.mipmap.xxx
、R.drawable.xxx
替换 Hook APP 的 Resources。
注意
此方法只支持部分类型,例如 String、Boolean。
此方法不支持在 HookEntryType.ZYGOTE 时使用。
fun injectAsLayout(initiate: YukiResources.LayoutInflatedParam.() -> Unit)
变更记录
v1.0.80
新增
功能描述
作为装载的布局注入。
功能示例
你可以直接注入一个布局监听并修改它的内部 View
。
示例如下
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
。
示例如下
injectResource {
conditions {
name = "activity_main"
layout()
}
injectAsLayout {
Toast.makeText(currentView.context, "Hook this", Toast.LENGTH_SHORT).show()
}
}
inner class ConditionFinder internal constructor()
变更记录
v1.0.80
新增
功能描述
Resources 查找条件实现类。
var name: String
变更记录
v1.0.80
新增
功能描述
设置 Resources 名称。
fun anim()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为动画。
fun animator()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为属性动画。
fun bool()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为布朗(Boolean)。
fun color()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为颜色(Color)。
fun dimen()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为尺寸(Dimention)。
fun drawable()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为 Drawable。
fun integer()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为整型(Integer)。
fun layout()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为布局(Layout)。
fun plurals()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为 Plurals。
fun string()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为字符串(String)。
fun xml()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为 Xml。
fun mipmap()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为位图(Mipmap)。
fun array()
变更记录
v1.1.0
新增
功能描述
设置 Resources 类型为数组(Array)。
inner class Result internal constructor()
变更记录
v1.0.80
新增
功能描述
监听全部 Hook 结果实现类,可在这里处理失败事件监听。
inline fun result(initiate: Result.() -> Unit): Result
变更记录
v1.0.80
新增
功能描述
创建监听事件方法体。
inline fun by(condition: () -> Boolean): Result
变更记录
v1.0.80
新增
功能描述
添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
fun onHookingFailure(result: (Throwable) -> Unit): Result
变更记录
v1.0.80
新增
功能描述
监听 Hook 过程发生错误的回调方法。
fun ignoredHookingFailure(): Result
变更记录
v1.0.80
新增
功能描述
`,248),p=[l];function c(t,r){return a(),n("div",null,p)}const i=s(o,[["render",c],["__file","YukiResourcesHookCreator.html.vue"]]);export{i as default};忽略 Hook 过程出现的错误。