mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 10:45:47 +08:00
Merge new documentation
This commit is contained in:
108
docs/config/api-using.md
Normal file
108
docs/config/api-using.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# 作为 Hook API 使用的相关配置
|
||||
|
||||
> 作为 Hook API 通常为做自身 APP 热更新或功能需要以及产品测试的 Hook 操作。
|
||||
|
||||
## 依赖配置
|
||||
|
||||
你只需要集成 `com.highcapable.yukihookapi:api` 依赖即可。
|
||||
|
||||
然后请集成你目标使用的 `Hook Framework` 依赖。
|
||||
|
||||
## 入口配置
|
||||
|
||||
创建你的自定义 `Application`。
|
||||
|
||||
在 `attachBaseContext` 中添加 `YukiHookAPI.encase` 方法。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
class MyApplication : Application() {
|
||||
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
// 装载 Hook Framework
|
||||
//
|
||||
// Your code here.
|
||||
//
|
||||
// 配置 YukiHookAPI
|
||||
YukiHookApi.configs {
|
||||
// Your code here.
|
||||
}
|
||||
// 装载 YukiHookAPI
|
||||
YukiHookAPI.encase(base) {
|
||||
// Your code here.
|
||||
}
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
这样,你就完成了 API 的相关配置。
|
||||
|
||||
你可以 [点击这里](config/api-example?id=作为-hook-api-使用需要注意的地方) 查看异同点和注意事项。
|
||||
|
||||
!> 你不能再使用 `loadApp` 进行包装,可直接开始编写你的 Hook 代码。
|
||||
|
||||
## Hook Framework
|
||||
|
||||
> 这里给出了一些较高使用率的 `Hook Framework` 如何对接 `YukiHookAPI` 的相关方式。
|
||||
|
||||
### [Pine](https://github.com/canyie/pine)
|
||||
|
||||
> <b>所需 Xposed API 依赖</b> `top.canyie.pine:xposed`
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
// 装载 Pine
|
||||
PineConfig.debug = true
|
||||
PineConfig.debuggable = BuildConfig.DEBUG
|
||||
// 装载 YukiHookAPI
|
||||
YukiHookAPI.encase(base) {
|
||||
// Your code here.
|
||||
}
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
```
|
||||
|
||||
### [SandHook](https://github.com/asLody/SandHook)
|
||||
|
||||
> <b>所需 Xposed API 依赖</b> `com.swift.sandhook:xposedcompat` 或 `com.swift.sandhook:xposedcompat_new`
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
// 装载 SandHook
|
||||
SandHookConfig.DEBUG = BuildConfig.DEBUG
|
||||
XposedCompat.cacheDir = base?.cacheDir
|
||||
XposedCompat.context = base
|
||||
XposedCompat.classLoader = javaClass.classLoader
|
||||
XposedCompat.isFirstApplication = base?.processName == base?.packageName
|
||||
// 装载 YukiHookAPI
|
||||
YukiHookAPI.encase(base) {
|
||||
// Your code here.
|
||||
}
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
```
|
||||
|
||||
### [Whale](https://github.com/asLody/whale)
|
||||
|
||||
> <b>所需 Xposed API 依赖</b> `com.wind.xposed:xposed-on-whale`
|
||||
|
||||
请参考 [xposed-hook-based-on-whale](https://github.com/WindySha/xposed-hook-based-on-whale)。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
// 装载 Whale 不需要任何配置
|
||||
// 装载 YukiHookAPI
|
||||
YukiHookAPI.encase(base) {
|
||||
// Your code here.
|
||||
}
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
```
|
Reference in New Issue
Block a user