From 82ff6ac31119c777b8fe0e0945aa289f82309c05 Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Tue, 15 Feb 2022 12:51:13 +0800 Subject: [PATCH] Merge new version --- app/build.gradle | 4 ++-- .../com/fankes/tsbattery/hook/HookEntry.kt | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bfef4f9..6989617 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -46,8 +46,8 @@ android { dependencies { compileOnly 'de.robv.android.xposed:api:82' - implementation 'com.highcapable.yukihookapi:api:1.0' - ksp 'com.highcapable.yukihookapi:ksp-xposed:1.0' + implementation 'com.highcapable.yukihookapi:api:1.0.1' + ksp 'com.highcapable.yukihookapi:ksp-xposed:1.0.1' implementation 'com.geyifeng.immersionbar:immersionbar:3.2.0' implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.0' implementation 'androidx.core:core-ktx:1.7.0' diff --git a/app/src/main/java/com/fankes/tsbattery/hook/HookEntry.kt b/app/src/main/java/com/fankes/tsbattery/hook/HookEntry.kt index 960a234..780ce1c 100644 --- a/app/src/main/java/com/fankes/tsbattery/hook/HookEntry.kt +++ b/app/src/main/java/com/fankes/tsbattery/hook/HookEntry.kt @@ -42,7 +42,6 @@ import com.highcapable.yukihookapi.YukiHookAPI.configs import com.highcapable.yukihookapi.annotation.xposed.InjectYukiHookWithXposed import com.highcapable.yukihookapi.hook.bean.VariousClass import com.highcapable.yukihookapi.hook.factory.encase -import com.highcapable.yukihookapi.hook.factory.modifyStaticField import com.highcapable.yukihookapi.hook.log.loggerD import com.highcapable.yukihookapi.hook.param.PackageParam import com.highcapable.yukihookapi.hook.type.android.* @@ -55,7 +54,7 @@ class HookEntry : YukiHookXposedInitProxy { companion object { /** BaseChatPie 类名 */ - private val QQ_BASE_CHAT_PIE = + private val qqBaseChatPieClass = VariousClass("$QQ_PACKAGE_NAME.activity.aio.core.BaseChatPie", "$QQ_PACKAGE_NAME.activity.BaseChatPie") } @@ -110,11 +109,11 @@ class HookEntry : YukiHookXposedInitProxy { } /** - * 拦截 [QQ_BASE_CHAT_PIE] 的目标方法体封装 + * 拦截 [qqBaseChatPieClass] 的目标方法体封装 * @param methodName 方法名 */ private fun PackageParam.interceptBaseChatPie(methodName: String) = - findClass(QQ_BASE_CHAT_PIE).hook { + qqBaseChatPieClass.hook { injectMember { method { name = methodName @@ -340,12 +339,18 @@ class HookEntry : YukiHookXposedInitProxy { /** 由于在 onCreate 里有一行判断只要型号是 xiaomi 的设备就开电源锁,所以说这里临时替换成菊花厂 */ origDevice = Build.MANUFACTURER if (Build.MANUFACTURER.lowercase() == "xiaomi") - BuildClass.modifyStaticField(name = "MANUFACTURER", value = "HUAWEI") + field { + classSet = BuildClass + name = "MANUFACTURER" + }.get().set("HUAWEI") } afterHook { instance().finish() /** 这里再把型号替换回去 - 不影响应用变量等 Xposed 模块修改的型号 */ - BuildClass.modifyStaticField(name = "MANUFACTURER", origDevice) + field { + classSet = BuildClass + name = "MANUFACTURER" + }.get().set(origDevice) } } } @@ -374,7 +379,7 @@ class HookEntry : YukiHookXposedInitProxy { injectMember { method { name = "onHook" - param(StringType, AnyType, AnyArrayClass(AnyType), AnyType) + param(StringType, AnyType, AnyArrayClass, AnyType) } intercept() }