- class
YukiResourcesHookCreatorclass 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 实现类。
- method
injectResourceinline 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.
}
- class
ResourcesHookCreatorinner class ResourcesHookCreator internal constructor(private val tag: String)
变更记录
v1.0.80
新增
v1.1.0
修改
移除 packageName
修正拼写错误的 Creater 命名到 Creator
功能描述
Hook 核心功能实现类。
查找和处理需要 Hook 的 Resources。
- field
resourceIdvar resourceId: Int
变更记录
v1.0.80
新增
功能描述
直接设置需要替换的 Resources Id。
注意
不建议使用此方法设置目标需要 Hook 的 Resources Id,你可以使用 conditions 方法。
功能示例
你可以直接设置并指定目标 Hook APP 的 Resources Id。
示例如下
injectResource {
resourceId = 0x7f060001.toInt()
replaceTo(...)
}
- method
conditionsinline fun conditions(initiate: ConditionFinder.() -> Unit)
变更记录
v1.0.80
新增
功能描述
设置 Resources 查找条件。
若你设置了 resourceId
则此方法将不会被使用。
功能示例
你可参考 ConditionFinder 查看详细用法。
示例如下
injectResource {
conditions {
name = "test_string"
string()
}
replaceTo(...)
}
- method
replaceTofun 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))
}
- method
replaceToTruefun replaceToTrue()
变更记录
v1.0.80
新增
功能描述
替换指定 Resources 为
true
。
特别注意
确保目标替换 Resources 的类型为 Boolean。
- method
replaceToFalsefun replaceToFalse()
变更记录
v1.0.80
新增
功能描述
替换指定 Resources 为
false
。
特别注意
确保目标替换 Resources 的类型为 Boolean。
- method
replaceToModuleResourcefun 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)
}
- method
replaceTofun replaceTo(result: (original: Any) -> Any?)
变更记录
v1.2.0
新增
功能描述
替换指定 Resources 为指定的值。
注意
此方法只支持部分类型,例如 String、Boolean。
此方法不支持在 HookEntryType.ZYGOTE 时使用。
- method
replaceToModuleResourcefun 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 时使用。
- method
injectAsLayoutfun 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()
}
}
- class
ConditionFinderinner class ConditionFinder internal constructor()
变更记录
v1.0.80
新增
功能描述
Resources 查找条件实现类。
- field
namevar name: String
变更记录
v1.0.80
新增
功能描述
设置 Resources 名称。
- method
animfun anim()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为动画。
- method
animatorfun animator()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为属性动画。
- method
boolfun bool()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为布朗(Boolean)。
- method
colorfun color()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为颜色(Color)。
- method
dimenfun dimen()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为尺寸(Dimention)。
- method
drawablefun drawable()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为 Drawable。
- method
integerfun integer()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为整型(Integer)。
- method
layoutfun layout()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为布局(Layout)。
- method
pluralsfun plurals()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为 Plurals。
- method
stringfun string()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为字符串(String)。
- method
xmlfun xml()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为 Xml。
- method
mipmapfun mipmap()
变更记录
v1.0.80
新增
功能描述
设置 Resources 类型为位图(Mipmap)。
- method
arrayfun array()
变更记录
v1.1.0
新增
功能描述
设置 Resources 类型为数组(Array)。
- class
Resultinner class Result internal constructor()
变更记录
v1.0.80
新增
功能描述
监听全部 Hook 结果实现类,可在这里处理失败事件监听。
- method
resultinline fun result(initiate: Result.() -> Unit): Result
变更记录
v1.0.80
新增
功能描述
创建监听事件方法体。
- method
byinline fun by(condition: () -> Boolean): Result
变更记录
v1.0.80
新增
功能描述
添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
- method
onHookingFailurefun onHookingFailure(result: (Throwable) -> Unit): Result
变更记录
v1.0.80
新增
功能描述
监听 Hook 过程发生错误的回调方法。
- method
ignoredHookingFailurefun ignoredHookingFailure(): Result
变更记录
v1.0.80
新增
功能描述
忽略 Hook 过程出现的错误。