mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 17:55:24 +08:00
Update README.md
This commit is contained in:
64
README.md
64
README.md
@@ -47,6 +47,70 @@
|
|||||||
| [TaiChi](https://github.com/taichi-framework/TaiChi) | ⭕ | 可以作为模块使用 |
|
| [TaiChi](https://github.com/taichi-framework/TaiChi) | ⭕ | 可以作为模块使用 |
|
||||||
| [Xposed](https://github.com/rovo89/Xposed) | ❎ | 未测试,不再推荐使用 |
|
| [Xposed](https://github.com/rovo89/Xposed) | ❎ | 未测试,不再推荐使用 |
|
||||||
|
|
||||||
|
# Advantage
|
||||||
|
|
||||||
|
以前,我们在构建 Xposed 模块的时候,首先需要在 `assets` 下创建 `xposed_init` 文件。<br/><br/>
|
||||||
|
然后,将自己的入口类名手动填入文件中,使用 `XposedHelper` 去实现我们的 Hook 逻辑。
|
||||||
|
|
||||||
|
- 示例如下
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
class MainHook : IXposedHookLoadPackage {
|
||||||
|
|
||||||
|
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
|
||||||
|
if (lpparam.packageName == "com.android.browser")
|
||||||
|
XposedHelpers.findAndHookMethod(
|
||||||
|
Activity::class.java.name,
|
||||||
|
lpparam.classLoader,
|
||||||
|
"onCreate",
|
||||||
|
Bundle::class.java,
|
||||||
|
object : XC_MethodHook() {
|
||||||
|
override fun beforeHookedMethod(param: MethodHookParam?) {
|
||||||
|
// Your code here.
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun afterHookedMethod(param: MethodHookParam?) {
|
||||||
|
// Your code here.
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
自 `Kotlin` 作为 Android 主要开发语言以来,这套 API 用起来确实已经不是很优雅了。<br/><br/>
|
||||||
|
有没有什么 <b>好用、轻量、优雅</b> 的解决办法呢?<br/><br/>
|
||||||
|
本着这样的想法,于是 `YukiHookAPI` 就这样诞生了,我们只需要编写少量的代码,一切时间开销和花费交给自动化处理。
|
||||||
|
|
||||||
|
- 示例如下
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
@InjectYukiHookWithXposed
|
||||||
|
class MainHook : YukiHookXposedInitProxy {
|
||||||
|
|
||||||
|
override fun onHook() = encase {
|
||||||
|
loadApp(name = "com.android.browser") {
|
||||||
|
ActivityClass.hook {
|
||||||
|
injectMember {
|
||||||
|
method {
|
||||||
|
name = "onCreate"
|
||||||
|
param(BundleClass)
|
||||||
|
}
|
||||||
|
beforeHook {
|
||||||
|
// Your code here.
|
||||||
|
}
|
||||||
|
afterHook {
|
||||||
|
// Your code here.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
你没有看错,仅仅就需要这几行代码,就一切安排妥当。<br/><br/>
|
||||||
|
代码量少,逻辑清晰,借助高效强大的 `YukiHookAPI`,你就可以实现一个非常简单的 Xposed 模块。
|
||||||
|
|
||||||
# Get Started
|
# Get Started
|
||||||
|
|
||||||
- 你可以点击[快速开始](https://github.com/fankes/YukiHookAPI/wiki#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B),集成 `YukiHookAPI` 并开始使用。
|
- 你可以点击[快速开始](https://github.com/fankes/YukiHookAPI/wiki#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B),集成 `YukiHookAPI` 并开始使用。
|
||||||
|
Reference in New Issue
Block a user