diff --git a/app/src/main/assets/app_rules.json b/app/src/main/assets/app_rules.json index 29a912c..24c4d82 100644 --- a/app/src/main/assets/app_rules.json +++ b/app/src/main/assets/app_rules.json @@ -142,7 +142,7 @@ "apiVersion": 0, "useApi": false, "getLyricType": 0, - "remarks": "" + "remarks": "需在APP设置中打开状态栏歌词开关,如遇到开启开关无法显示歌词请issues带版本及官方签名apk反馈" } ] }, @@ -166,7 +166,7 @@ "apiVersion": 0, "useApi": false, "getLyricType": 0, - "remarks": "需在APP设置中打开状态栏歌词开关" + "remarks": "需在APP设置中打开状态栏歌词开关,如遇到开启开关无法显示歌词请issues带版本及官方签名apk反馈" } ] }, @@ -543,6 +543,6 @@ ] } ], - "appRulesVersion": 12, - "version": 9 + "appRulesVersion": 13, + "version": 10 } diff --git a/app/src/main/kotlin/cn/lyric/getter/hook/app/Kugou.kt b/app/src/main/kotlin/cn/lyric/getter/hook/app/Kugou.kt index 12f5828..d2c2307 100755 --- a/app/src/main/kotlin/cn/lyric/getter/hook/app/Kugou.kt +++ b/app/src/main/kotlin/cn/lyric/getter/hook/app/Kugou.kt @@ -8,12 +8,13 @@ import cn.lyric.getter.tool.HookTools import cn.lyric.getter.tool.HookTools.eventTools import cn.lyric.getter.tool.HookTools.fuckTinker import cn.lyric.getter.tool.Tools.getVersionCode -import cn.xiaowine.xkt.LogTool.log import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass import com.github.kyuubiran.ezxhelper.EzXHelper.classLoader import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder +import cn.xiaowine.xkt.LogTool.log import android.os.Process +import java.util.Arrays object Kugou : BaseHook() { override fun init() { @@ -26,30 +27,34 @@ object Kugou : BaseHook() { "com.kugou.android" -> { if (getProcessName(app) == "com.kugou.android") return@getApplication when { - verCode <= 10000 -> hookMethodForVersionA() + verCode <= 10000 -> hookcarLyric() verCode <= 12009 -> { HookTools.MockFlyme().mock() hookLocalBroadcast("android.support.v4.content.LocalBroadcastManager") + hookfixStatusBarLyric() } else -> { HookTools.MockFlyme().mock() hookLocalBroadcast("androidx.localbroadcastmanager.content.LocalBroadcastManager") + hookfixStatusBarLyric() } } } "com.kugou.android.lite" -> { when { - verCode <= 10648 -> hookMethodForVersionA() + verCode <= 10648 -> hookcarLyric() verCode <= 10999 -> { HookTools.MockFlyme().mock() hookLocalBroadcast("android.support.v4.content.LocalBroadcastManager") + hookfixStatusBarLyric() } else -> { HookTools.MockFlyme().mock() hookLocalBroadcast("androidx.localbroadcastmanager.content.LocalBroadcastManager") + hookfixStatusBarLyric() } } } @@ -68,7 +73,7 @@ object Kugou : BaseHook() { return null } - private fun hookMethodForVersionA() { + private fun hookcarLyric() { loadClass("com.kugou.framework.player.c").methodFinder() .filterByParamTypes(HashMap::class.java).first { name == "a" } .createHook { @@ -78,7 +83,15 @@ object Kugou : BaseHook() { } } } - + private fun hookfixStatusBarLyric() { + loadClass("com.kugou.android.lyric.e").methodFinder() + .first { name == "a" && parameterTypes.size == 3 && parameterTypes[2] == Boolean::class.java} + .createHook { + before { param -> + param.args[2] = true + } + } + } private fun hookLocalBroadcast(className: String) { loadClass(className, classLoader).methodFinder() .first { name == "sendBroadcast" }