From 7e13b80791dbe51c6f862bdd19993d27dfd6ae71 Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Mon, 21 Mar 2022 14:17:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=A8=A1=E5=9D=97=20UI=20?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E7=9B=B8=E5=85=B3=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fankes/tsbattery/hook/HookEntry.kt | 80 +++++++------ .../tsbattery/ui/view/MaterialSwitch.kt | 3 + app/src/main/res/layout/activity_main.xml | 108 ++++++++++++++---- app/src/main/res/mipmap-xxhdpi/ic_bug.png | Bin 0 -> 5428 bytes app/src/main/res/mipmap-xxhdpi/ic_help.png | Bin 0 -> 5749 bytes app/src/main/res/mipmap-xxhdpi/ic_home.png | Bin 0 -> 4793 bytes .../main/res/mipmap-xxhdpi/ic_yukihookapi.png | Bin 0 -> 8490 bytes 7 files changed, 126 insertions(+), 65 deletions(-) create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_bug.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_help.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_home.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_yukihookapi.png 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 43eb0c5..e92fca7 100644 --- a/app/src/main/java/com/fankes/tsbattery/hook/HookEntry.kt +++ b/app/src/main/java/com/fankes/tsbattery/hook/HookEntry.kt @@ -257,50 +257,18 @@ class HookEntry : YukiHookXposedInitProxy { * @param isQQ 是否为 QQ - 单独处理 */ private fun PackageParam.hookCoreService(isQQ: Boolean) { - if (prefs.getBoolean(ENABLE_QQTIM_CORESERVICE_BAN)) - CoreServiceClass.hook { - if (isQQ) { - injectMember { - method { name = "startTempService" } - intercept() - } - injectMember { - method { - name = "startCoreService" - param(BooleanType) - } - intercept() - } - injectMember { - method { - name = "onStartCommand" - param(IntentClass, IntType, IntType) - } - replaceTo(any = 2) - } + CoreServiceClass.hook { + if (isQQ) { + injectMember { + method { name = "startTempService" } + intercept() } injectMember { - method { name = "onCreate" } - afterHook { - instance().apply { - stopForeground(true) - stopService(Intent(applicationContext, javaClass)) - loggerD(msg = "Shutdown CoreService OK!") - } - } - } - } - if (prefs.getBoolean(ENABLE_QQTIM_CORESERVICE_CHILD_BAN)) - CoreService_KernelServiceClass.hook { - injectMember { - method { name = "onCreate" } - afterHook { - instance().apply { - stopForeground(true) - stopService(Intent(applicationContext, javaClass)) - loggerD(msg = "Shutdown CoreService\$KernelService OK!") - } + method { + name = "startCoreService" + param(BooleanType) } + intercept() } injectMember { method { @@ -310,6 +278,36 @@ class HookEntry : YukiHookXposedInitProxy { replaceTo(any = 2) } } + injectMember { + method { name = "onCreate" } + afterHook { + instance().apply { + stopForeground(true) + stopService(Intent(applicationContext, javaClass)) + loggerD(msg = "Shutdown CoreService OK!") + } + } + } + }.by { prefs.getBoolean(ENABLE_QQTIM_CORESERVICE_BAN) } + CoreService_KernelServiceClass.hook { + injectMember { + method { name = "onCreate" } + afterHook { + instance().apply { + stopForeground(true) + stopService(Intent(applicationContext, javaClass)) + loggerD(msg = "Shutdown CoreService\$KernelService OK!") + } + } + } + injectMember { + method { + name = "onStartCommand" + param(IntentClass, IntType, IntType) + } + replaceTo(any = 2) + } + }.by { prefs.getBoolean(ENABLE_QQTIM_CORESERVICE_CHILD_BAN) } } override fun onInit() = configs { diff --git a/app/src/main/java/com/fankes/tsbattery/ui/view/MaterialSwitch.kt b/app/src/main/java/com/fankes/tsbattery/ui/view/MaterialSwitch.kt index fe8acd3..e9c0153 100644 --- a/app/src/main/java/com/fankes/tsbattery/ui/view/MaterialSwitch.kt +++ b/app/src/main/java/com/fankes/tsbattery/ui/view/MaterialSwitch.kt @@ -26,6 +26,7 @@ package com.fankes.tsbattery.ui.view import android.content.Context import android.content.res.ColorStateList import android.graphics.Color +import android.text.TextUtils import android.util.AttributeSet import androidx.appcompat.widget.SwitchCompat import com.fankes.tsbattery.utils.drawable.drawabletoolbox.DrawableBuilder @@ -64,5 +65,7 @@ class MaterialSwitch(context: Context, attrs: AttributeSet?) : SwitchCompat(cont 0xFFCCCCCC.toInt(), 0xFFCCCCCC.toInt() ) + isSingleLine = true + ellipsize = TextUtils.TruncateAt.END } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a7eb647..73203bb 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -546,8 +546,31 @@ android:gravity="center" android:orientation="vertical" android:paddingLeft="15dp" + android:paddingTop="15dp" android:paddingRight="15dp"> + + + + + + + + + + + + + + + android:padding="15dp" + android:paddingTop="15dp"> - + android:layout_marginEnd="10dp" + android:src="@mipmap/ic_help" /> @@ -669,8 +714,8 @@ android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:alpha="0.8" - android:lineSpacingExtra="6dp" - android:text="Q.这个模块是做什么的?\nA.此模块的诞生来源于国内厂商毒瘤 APP 强行霸占后台耗电,QQ 在 8.6.0 版本以后也只是接入了 HMS 推送,但是可笑的是开发组却并没有删除之前疯狂耗电的接收消息方法,于是这个模块就诞生了。" + android:lineSpacingExtra="10dp" + android:text="Q.这个模块是做什么的?\nA.此模块的诞生来源于国内厂商毒瘤 APP 强行霸占后台耗电,QQ 在 8.6.0 版本以后也只是接入了 HMS 推送,但是可笑的是开发组却并没有删除之前疯狂耗电的接收消息方法,于是这个模块就因此而诞生了。" android:textColor="@color/colorTextDark" android:textSize="12sp" /> @@ -679,7 +724,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:alpha="0.8" - android:lineSpacingExtra="6dp" + android:lineSpacingExtra="10dp" android:text="Q.原理是什么?\nA.模块有两套工作方式,一种是针对 QQ、TIM Hook 掉系统自身的电源锁“WakeLock”使其不能影响系统休眠,这样子在锁屏的时候 QQ、TIM 就可以进入睡眠状态。第二种就是针对 QQ、TIM 删除其自身的无用耗电疯狂循环检测后台强行保活服务。" android:textColor="@color/colorTextDark" android:textSize="12sp" /> @@ -689,7 +734,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:alpha="0.8" - android:lineSpacingExtra="6dp" + android:lineSpacingExtra="10dp" android:text="Q.如何使用?\nA.目前模块支持 LSPosed、EdXposed 以及太极(无极)框架,在太极和 LSPosed 的作用域中,只需勾选 QQ、TIM、微信即可,模块可以做到即插即用,激活后无需重启手机,重启 QQ、TIM 或微信就可以了。" android:textColor="@color/colorTextDark" android:textSize="12sp" /> @@ -699,7 +744,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:alpha="0.8" - android:lineSpacingExtra="6dp" + android:lineSpacingExtra="10dp" android:text="Q.激活后一定可以非常省电吗?\nA.并不,模块只能减少 QQ、TIM、微信的耗电,但是请务必记住这一点,省电只是一个理论上的东西,实际水平由你使用的系统和硬件决定,如果你在前台疯狂使用 QQ、TIM,那么照样会耗电,模块只能保证后台运行和锁屏时毒瘤不会消耗过多的无用的电量,仅此而已。" android:textColor="@color/colorTextDark" android:textSize="12sp" /> @@ -709,7 +754,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:alpha="0.8" - android:lineSpacingExtra="6dp" + android:lineSpacingExtra="10dp" android:text="Q.模块是否需要挂后台?\nA.模块完全不需要挂后台,模块只是一个控制和显示的工具,真正的任务交由 Hook 处理,若出现失效的情况请发送模块运行日志给我们而不是将模块挂后台。" android:textColor="@color/colorTextDark" android:textSize="12sp" /> @@ -719,7 +764,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:alpha="0.8" - android:lineSpacingExtra="6dp" + android:lineSpacingExtra="10dp" android:text="Q.关于目前微信的适配情况?\nA.微信适配尚在实验阶段,敬请期待。" android:textColor="@color/colorTextDark" android:textSize="12sp" /> @@ -729,7 +774,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:alpha="0.8" - android:lineSpacingExtra="6dp" + android:lineSpacingExtra="10dp" android:text="Q.如何对单独的 APP 生效模块?\nA.请在 LSPosed 中勾选对应定义域即可,我们不建议使用 EdXposed。" android:textColor="@color/colorTextDark" android:textSize="12sp" /> @@ -738,7 +783,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:alpha="0.8" - android:lineSpacingExtra="6dp" + android:lineSpacingExtra="10dp" android:text="Q.如何反馈问题?\nA.酷安关注 @星夜不荟" android:textColor="@color/colorTextDark" android:textSize="12sp" /> @@ -794,19 +839,34 @@ android:textSize="16sp" /> - + android:gravity="center|start" + android:orientation="horizontal" + android:padding="10dp"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/ic_bug.png b/app/src/main/res/mipmap-xxhdpi/ic_bug.png new file mode 100644 index 0000000000000000000000000000000000000000..00bbd55ebe92fb8ed5bab19a5f5c650144198d05 GIT binary patch literal 5428 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_home.png b/app/src/main/res/mipmap-xxhdpi/ic_home.png new file mode 100644 index 0000000000000000000000000000000000000000..38fd182855d7c8de0f66fabc067ba0b596b826b0 GIT binary patch literal 4793 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 z