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.
- class
YukiResourcesHookCreatorclass 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
YukiHookAPI
的Resources
核心 Hook 实现类。
- method
injectResourceinline 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.
}
- class
ResourcesHookCreatorinner 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。
- field
resourceIdvar 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(...)
}
- method
conditionsinline 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(...)
}
- method
replaceTofun replaceTo(any: Any)
Change Records
v1.0.80
added
Function Illustrate
替换指定 Resources 为指定的值。
Function Example
你可以替换找到的 Resources 为你想要的值,可以是 String
、Drawable
等。
比如我们要替换一个找到的字符串 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))
}
- method
replaceToTruefun replaceToTrue()
Change Records
v1.0.80
added
Function Illustrate
替换指定 Resources 为
true
。
Pay Attention
确保目标替换 Resources 的类型为 Boolean。
- method
replaceToFalsefun replaceToFalse()
Change Records
v1.0.80
added
Function Illustrate
替换指定 Resources 为
false
。
Pay Attention
确保目标替换 Resources 的类型为 Boolean。
- method
replaceToModuleResourcefun replaceToModuleResource(resId: Int)
Change Records
v1.0.80
added
Function Illustrate
替换为当前 Xposed 模块的 Resources。
你可以直接使用模块的 R.string.xxx
、R.mipmap.xxx
、R.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)
}
- method
replaceTofun replaceTo(result: (original: Any) -> Any?)
Change Records
v1.2.0
added
Function Illustrate
替换指定 Resources 为指定的值。
Notice
此方法只支持部分类型,例如 String、Boolean。
此方法不支持在 HookEntryType.ZYGOTE 时使用。
- method
replaceToModuleResourcefun replaceToModuleResource(result: (original: Any) -> Int)
Change Records
v1.2.0
added
Function Illustrate
替换为当前 Xposed 模块的 Resources。
你可以直接使用模块的 R.string.xxx
、R.mipmap.xxx
、R.drawable.xxx
替换 Hook APP 的 Resources。
Notice
此方法只支持部分类型,例如 String、Boolean。
此方法不支持在 HookEntryType.ZYGOTE 时使用。
- method
injectAsLayoutfun 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()
}
}
- class
ConditionFinderinner class ConditionFinder internal constructor()
Change Records
v1.0.80
added
Function Illustrate
Resources 查找条件实现类。
- field
namevar name: String
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 名称。
- method
animfun anim()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为动画。
- method
animatorfun animator()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为属性动画。
- method
boolfun bool()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为布朗(Boolean)。
- method
colorfun color()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为颜色(Color)。
- method
dimenfun dimen()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为尺寸(Dimention)。
- method
drawablefun drawable()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为 Drawable。
- method
integerfun integer()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为整型(Integer)。
- method
layoutfun layout()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为布局(Layout)。
- method
pluralsfun plurals()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为 Plurals。
- method
stringfun string()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为字符串(String)。
- method
xmlfun xml()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为 Xml。
- method
mipmapfun mipmap()
Change Records
v1.0.80
added
Function Illustrate
设置 Resources 类型为位图(Mipmap)。
- method
arrayfun array()
Change Records
v1.1.0
added
Function Illustrate
设置 Resources 类型为数组(Array)。
- class
Resultinner class Result internal constructor()
Change Records
v1.0.80
added
Function Illustrate
监听全部 Hook 结果实现类,可在这里处理失败事件监听。
- method
resultinline fun result(initiate: Result.() -> Unit): Result
Change Records
v1.0.80
added
Function Illustrate
创建监听事件方法体。
- method
byinline fun by(condition: () -> Boolean): Result
Change Records
v1.0.80
added
Function Illustrate
添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
- method
onHookingFailurefun onHookingFailure(result: (Throwable) -> Unit): Result
Change Records
v1.0.80
added
Function Illustrate
监听 Hook 过程发生错误的回调方法。
- method
ignoredHookingFailurefun ignoredHookingFailure(): Result
Change Records
v1.0.80
added
Function Illustrate
忽略 Hook 过程出现的错误。