mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 01:35:17 +08:00
Update English translation for api-using documentation
This commit is contained in:
@@ -1,9 +1,112 @@
|
||||
# Use as Hook API Configs *
|
||||
# Use as Hook API Configs
|
||||
|
||||
> As a Hook API, it is usually used for Hook operations for hot updates or functional needs of its own app and product testing.
|
||||
|
||||
## Dependency Configs
|
||||
|
||||
You just need to integrate the `com.highcapable.yukihookapi:api` dependency.
|
||||
|
||||
Then please integrate the `Hook Framework` dependencies used by your target.
|
||||
|
||||
## Entry Configs
|
||||
|
||||
Create your custom `Application`.
|
||||
|
||||
Add `YukiHookAPI.encase` method to `attachBaseContext`.
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
class MyApplication : Application() {
|
||||
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
// Load Hook Framework
|
||||
//
|
||||
// Your code here.
|
||||
//
|
||||
// Configure YukiHookAPI
|
||||
YukiHookApi.configs {
|
||||
// Your code here.
|
||||
}
|
||||
// Load YukiHookAPI
|
||||
YukiHookAPI.encase(base) {
|
||||
// Your code here.
|
||||
}
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
In this way, you have completed the relevant configuration of the API.
|
||||
|
||||
You can [click here](../config/api-example#precautions-when-using-as-hook-api) to see the similarities, differences and caveats.
|
||||
|
||||
::: warning
|
||||
|
||||
The current page has not been translated yet.
|
||||
You can no longer wrap with **loadApp** and start writing your Hook code directly.
|
||||
|
||||
If necessary, please temporarily switch to the **Simplified Chinese** page, or help us improve the translation of this page.
|
||||
:::
|
||||
|
||||
:::
|
||||
## Hook Framework
|
||||
|
||||
> Here are some related ways of how to connect the `Hook Framework` with the `YukiHookAPI`, which is widely used.
|
||||
|
||||
### [Pine](https://github.com/canyie/pine)
|
||||
|
||||
> **Required Xposed API dependencies** `top.canyie.pine:xposed`
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
// Load Pine
|
||||
PineConfig.debug = true
|
||||
PineConfig.debuggable = BuildConfig.DEBUG
|
||||
// Load YukiHookAPI
|
||||
YukiHookAPI.encase(base) {
|
||||
// Your code here.
|
||||
}
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
```
|
||||
|
||||
### [SandHook](https://github.com/asLody/SandHook)
|
||||
|
||||
> **Required Xposed API dependencies** `com.swift.sandhook:xposedcompat` or `com.swift.sandhook:xposedcompat_new`
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
// Load SandHook
|
||||
SandHookConfig.DEBUG = BuildConfig.DEBUG
|
||||
XposedCompat.cacheDir = base?.cacheDir
|
||||
XposedCompat.context = base
|
||||
XposedCompat.classLoader = javaClass.classLoader
|
||||
XposedCompat.isFirstApplication = base?.processName == base?.packageName
|
||||
// Load YukiHookAPI
|
||||
YukiHookAPI.encase(base) {
|
||||
// Your code here.
|
||||
}
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
```
|
||||
|
||||
### [Whale](https://github.com/asLody/whale)
|
||||
|
||||
> **Required Xposed API dependencies** `com.wind.xposed:xposed-on-whale`
|
||||
|
||||
Please refer to [xposed-hook-based-on-whale](https://github.com/WindySha/xposed-hook-based-on-whale).
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
override fun attachBaseContext(base: Context?) {
|
||||
// Loading Whale does not require any configuration
|
||||
// Load YukiHookAPI
|
||||
YukiHookAPI.encase(base) {
|
||||
// Your code here.
|
||||
}
|
||||
super.attachBaseContext(base)
|
||||
}
|
||||
```
|
Reference in New Issue
Block a user