mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-01 16:25:31 +08:00
...
This commit is contained in:
@@ -35,6 +35,7 @@ import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed
|
||||
import com.highcapable.yukihookapi.demo.InjectTest
|
||||
import com.highcapable.yukihookapi.demo.MainActivity
|
||||
import com.highcapable.yukihookapi.hook.factory.encase
|
||||
import com.highcapable.yukihookapi.hook.factory.findMethod
|
||||
import com.highcapable.yukihookapi.hook.proxy.YukiHookInitializeProxy
|
||||
import com.highcapable.yukihookapi.hook.type.ActivityClass
|
||||
import com.highcapable.yukihookapi.hook.type.BundleClass
|
||||
@@ -88,6 +89,12 @@ class HookMain : YukiHookInitializeProxy {
|
||||
}.show()
|
||||
}
|
||||
}
|
||||
injectMethod {
|
||||
specify = hookClass.findMethod(name = "onStart")
|
||||
afterHook {
|
||||
Toast.makeText(instance(), "手动 Hook", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -112,6 +112,13 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
|
||||
/** 方法返回值 */
|
||||
var returnType: Class<*>? = null
|
||||
|
||||
/**
|
||||
* 手动指定方法
|
||||
*
|
||||
* 你可以调用 [hookClass] 来手动查询要 Hook 的方法
|
||||
*/
|
||||
var specify: Member? = null
|
||||
|
||||
/**
|
||||
* 方法参数
|
||||
* @param param 参数数组
|
||||
@@ -217,7 +224,7 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
|
||||
* @throws NoSuchMethodError 如果找不到方法
|
||||
*/
|
||||
private val hookMember: Member by lazy {
|
||||
when {
|
||||
specify ?: when {
|
||||
name.isBlank() && !isConstructor -> error("Method name cannot be empty")
|
||||
isConstructor ->
|
||||
if (params != null)
|
||||
@@ -295,7 +302,7 @@ class YukiHookCreater(private val packageParam: PackageParam, val hookClass: Cla
|
||||
Log.e(YukiHookAPI.TAG, "Try to hook $hookClass[$hookMember] got an Exception", throwable)
|
||||
}
|
||||
|
||||
override fun toString() = "$name$returnType$params$isConstructor$hookMember$hookClass#YukiHook"
|
||||
override fun toString() = "$name$returnType$params$isConstructor$hookMember$hookClass$specify#YukiHook"
|
||||
|
||||
/**
|
||||
* 监听 Hook 结果实现类
|
||||
|
Reference in New Issue
Block a user