diff --git a/app/src/main/java/com/highcapable/yukihookapi/demo/hook/HookMain.kt b/app/src/main/java/com/highcapable/yukihookapi/demo/hook/HookMain.kt index 8388c982..e882065f 100644 --- a/app/src/main/java/com/highcapable/yukihookapi/demo/hook/HookMain.kt +++ b/app/src/main/java/com/highcapable/yukihookapi/demo/hook/HookMain.kt @@ -37,15 +37,15 @@ import com.highcapable.yukihookapi.hook.type.BundleClass class HookMain : YukiHookInitializeProxy { override fun onHook() = encase { - optApp(name = "com.highcapable.yukihookapi.demo") { - classOf(name = "$packageName.MainActivity").hook { - grabMember = hookClass.methodOf(name = "hello") + loadApp(name = "com.highcapable.yukihookapi.demo") { + loadClass(name = "$packageName.MainActivity").hook { + grabMember = hookClass.loadMethod(name = "hello") replaceTo(any = "这是一段 Hook 的文字内容") } } - optApp(name = "com.android.browser") { + loadApp(name = "com.android.browser") { ActivityClass.hook { - grabMember = hookClass.methodOf(name = "onCreate", BundleClass) + grabMember = hookClass.loadMethod(name = "onCreate", BundleClass) afterHook { Toast.makeText(thisAny as Activity, "Hook Success", Toast.LENGTH_SHORT).show() } diff --git a/yukihookapi/src/main/java/com/highcapable/yukihookapi/param/PackageParam.kt b/yukihookapi/src/main/java/com/highcapable/yukihookapi/param/PackageParam.kt index 0e778456..ae535e3f 100644 --- a/yukihookapi/src/main/java/com/highcapable/yukihookapi/param/PackageParam.kt +++ b/yukihookapi/src/main/java/com/highcapable/yukihookapi/param/PackageParam.kt @@ -81,11 +81,11 @@ class PackageParam( val isFirstApplication get() = instance?.isFirstApplication ?: true /** - * Hook 指定包名的 APP + * 装载并 Hook 指定包名的 APP * @param name 包名 * @param initiate 方法体 */ - fun optApp(name: String, initiate: PackageParam.() -> Unit) { + fun loadApp(name: String, initiate: PackageParam.() -> Unit) { if (packageName == name) initiate(this) } @@ -95,7 +95,7 @@ class PackageParam( * @return [Class] * @throws NoClassDefFoundError 如果找不到类会报错 */ - fun classOf(name: String): Class<*> = appClassLoader.loadClass(name) + fun loadClass(name: String): Class<*> = appClassLoader.loadClass(name) /** * 查找目标方法 @@ -104,7 +104,7 @@ class PackageParam( * @return [Method] * @throws NoSuchMethodError 如果找不到方法会报错 */ - fun Class<*>.methodOf(name: String, vararg params: Class<*>): Method = + fun Class<*>.loadMethod(name: String, vararg params: Class<*>): Method = getDeclaredMethod(name, *params).apply { isAccessible = true } /** @@ -113,7 +113,7 @@ class PackageParam( * @return [Constructor] * @throws NoSuchMethodError 如果找不到方法会报错 */ - fun Class<*>.constructorOf(vararg params: Class<*>): Constructor<*> = + fun Class<*>.loadConstructor(vararg params: Class<*>): Constructor<*> = getDeclaredConstructor(*params).apply { isAccessible = true } /**