mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 02:35:40 +08:00
Update document file
This commit is contained in:
569
docs/api/public/YukiResourcesHookCreater.md
Normal file
569
docs/api/public/YukiResourcesHookCreater.md
Normal file
@@ -0,0 +1,569 @@
|
||||
## YukiResourcesHookCreater [class]
|
||||
|
||||
```kotlin
|
||||
class YukiResourcesHookCreater(private val packageParam: PackageParam, internal val hookResources: HookResources)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> `YukiHookAPI` 的 `Resources` 核心 Hook 实现类。
|
||||
|
||||
### injectResource [method]
|
||||
|
||||
```kotlin
|
||||
inline fun injectResource(tag: String, initiate: ResourceHookCreater.() -> Unit): ResourceHookCreater.Result
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 注入要 Hook 的 Resources。
|
||||
|
||||
**功能示例**
|
||||
|
||||
你可以注入任意 Resources,使用 `injectResource` 即可创建一个 `Hook` 对象。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
你还可以自定义 `tag`,方便你在调试的时候能够区分你的 `Hook` 对象。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource(tag = "KuriharaYuki") {
|
||||
// Your code here.
|
||||
}
|
||||
```
|
||||
|
||||
### ResourcesHookCreater [class]
|
||||
|
||||
```kotlin
|
||||
inner class ResourcesHookCreater(private val tag: String)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> Hook 核心功能实现类。
|
||||
|
||||
查找和处理需要 Hook 的 Resources。
|
||||
|
||||
#### resourceId [field]
|
||||
|
||||
```kotlin
|
||||
var resourceId: Int
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 直接设置需要替换的 Resources Id。
|
||||
|
||||
!> 不建议使用此方法设置目标需要 Hook 的 Resources Id,你可以使用 `conditions` 方法。
|
||||
|
||||
**功能示例**
|
||||
|
||||
你可以直接设置并指定目标 Hook APP 的 Resources Id。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource {
|
||||
resourceId = 0x7f060001.toInt()
|
||||
replaceTo(...)
|
||||
}
|
||||
```
|
||||
|
||||
#### conditions [method]
|
||||
|
||||
```kotlin
|
||||
inline fun conditions(initiate: ConditionFinder.() -> Unit)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 查找条件。
|
||||
|
||||
若你设置了 `resourceId` 则此方法将不会被使用。
|
||||
|
||||
**功能示例**
|
||||
|
||||
你可参考 [ConditionFinder](#conditionfinder-class) 查看详细用法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource {
|
||||
conditions {
|
||||
name = "test_string"
|
||||
string()
|
||||
}
|
||||
replaceTo(...)
|
||||
}
|
||||
```
|
||||
|
||||
#### replaceTo [method]
|
||||
|
||||
```kotlin
|
||||
fun replaceTo(any: Any)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 替换指定 Resources 为指定的值。
|
||||
|
||||
**功能示例**
|
||||
|
||||
你可以替换找到的 Resources 为你想要的值,可以是 `String`、`Drawable` 等。
|
||||
|
||||
比如我们要替换一个找到的字符串 Resources。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource {
|
||||
conditions {
|
||||
name = "test_string"
|
||||
string()
|
||||
}
|
||||
replaceTo("replace string")
|
||||
}
|
||||
```
|
||||
|
||||
或是替换为一个 `Drawable`,你无需对目标 Resources 实现 `fwd` 方法或 `DrawableLoader`。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource {
|
||||
conditions {
|
||||
name = "test_drawable"
|
||||
drawable()
|
||||
}
|
||||
replaceTo(ColorDrawable(Color.RED))
|
||||
}
|
||||
```
|
||||
|
||||
#### replaceToTrue [method]
|
||||
|
||||
```kotlin
|
||||
fun replaceToTrue()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 替换指定 Resources 为 `true`。
|
||||
|
||||
!> 确保目标替换 Resources 的类型为 `Boolean`。
|
||||
|
||||
#### replaceToFalse [method]
|
||||
|
||||
```kotlin
|
||||
fun replaceToFalse()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 替换指定 Resources 为 `false`。
|
||||
|
||||
!> 确保目标替换 Resources 的类型为 `Boolean`。
|
||||
|
||||
#### replaceToModuleResource [method]
|
||||
|
||||
```kotlin
|
||||
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` 方法。
|
||||
|
||||
比如我们要替换一个字符串。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource {
|
||||
conditions {
|
||||
name = "test_string"
|
||||
string()
|
||||
}
|
||||
replaceToModuleResource(R.id.module_string)
|
||||
}
|
||||
```
|
||||
|
||||
还可以替换一些复杂的 Resources,比如 `xml` 创建的 `drawable`。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource {
|
||||
conditions {
|
||||
name = "test_drawable"
|
||||
drawable()
|
||||
}
|
||||
replaceToModuleResource(R.drawable.module_drawable)
|
||||
}
|
||||
```
|
||||
|
||||
#### injectAsLayout [method]
|
||||
|
||||
```kotlin
|
||||
fun injectAsLayout(initiate: YukiResources.LayoutInflatedParam.() -> Unit)
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 作为装载的布局注入。
|
||||
|
||||
**功能示例**
|
||||
|
||||
你可以直接注入一个布局监听并修改它的内部 `View`。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
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`。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
injectResource {
|
||||
conditions {
|
||||
name = "activity_main"
|
||||
layout()
|
||||
}
|
||||
injectAsLayout {
|
||||
Toast.makeText(currentView.context, "Hook this", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### ConditionFinder [class]
|
||||
|
||||
```kotlin
|
||||
inner class ConditionFinder
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> Resources 查找条件实现类。
|
||||
|
||||
##### name [field]
|
||||
|
||||
```kotlin
|
||||
var name: String
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 名称。
|
||||
|
||||
##### anim [method]
|
||||
|
||||
```kotlin
|
||||
fun anim()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为动画。
|
||||
|
||||
##### animator [method]
|
||||
|
||||
```kotlin
|
||||
fun animator()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为属性动画。
|
||||
|
||||
##### bool [method]
|
||||
|
||||
```kotlin
|
||||
fun bool()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为布朗(Boolean)。
|
||||
|
||||
##### color [method]
|
||||
|
||||
```kotlin
|
||||
fun color()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为颜色(Color)。
|
||||
|
||||
##### dimen [method]
|
||||
|
||||
```kotlin
|
||||
fun dimen()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为尺寸(Dimention)。
|
||||
|
||||
##### drawable [method]
|
||||
|
||||
```kotlin
|
||||
fun drawable()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为 Drawable。
|
||||
|
||||
##### integer [method]
|
||||
|
||||
```kotlin
|
||||
fun integer()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为整型(Integer)。
|
||||
|
||||
##### layout [method]
|
||||
|
||||
```kotlin
|
||||
fun layout()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为布局(Layout)。
|
||||
|
||||
##### plurals [method]
|
||||
|
||||
```kotlin
|
||||
fun plurals()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为 Plurals。
|
||||
|
||||
##### string [method]
|
||||
|
||||
```kotlin
|
||||
fun string()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为字符串(String)。
|
||||
|
||||
##### xml [method]
|
||||
|
||||
```kotlin
|
||||
fun xml()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为 Xml。
|
||||
|
||||
##### mipmap [method]
|
||||
|
||||
```kotlin
|
||||
fun mipmap()
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 设置 Resources 类型为位图(Mipmap)。
|
||||
|
||||
#### Result [class]
|
||||
|
||||
```kotlin
|
||||
inner class Result
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 监听全部 Hook 结果实现类,可在这里处理失败事件监听。
|
||||
|
||||
##### result [method]
|
||||
|
||||
```kotlin
|
||||
inline fun result(initiate: Result.() -> Unit): Result
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 创建监听事件方法体。
|
||||
|
||||
##### by [method]
|
||||
|
||||
```kotlin
|
||||
inline fun by(initiate: () -> Boolean): Result
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
|
||||
|
||||
#### onHookingFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun onHookingFailure(initiate: (Throwable) -> Unit): Result
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 监听 Hook 过程发生错误的回调方法。
|
||||
|
||||
#### ignoredHookingFailure [method]
|
||||
|
||||
```kotlin
|
||||
fun ignoredHookingFailure(): Result
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.80` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 忽略 Hook 过程出现的错误。
|
Reference in New Issue
Block a user