diff --git a/app/src/main/assets/app_rules.json b/app/src/main/assets/app_rules.json
index 677cb00..d1f2117 100644
--- a/app/src/main/assets/app_rules.json
+++ b/app/src/main/assets/app_rules.json
@@ -400,8 +400,23 @@
"remarks": ""
}
]
+ },
+ {
+ "packageName": "com.netease.cloudmusic.lite",
+ "name": "网易云音乐极速版",
+ "rules": [
+ {
+ "startVersionCode": 0,
+ "endVersionCode": 2147483647,
+ "excludeVersions": [],
+ "apiVersion": 0,
+ "useApi": false,
+ "getLyricType": 2,
+ "remarks": ""
+ }
+ ]
}
],
- "appRulesVersion": 4,
+ "appRulesVersion": 5,
"version": 3
}
diff --git a/app/src/main/java/cn/lyric/getter/hook/MainHook.kt b/app/src/main/java/cn/lyric/getter/hook/MainHook.kt
index f910f20..55dd47d 100644
--- a/app/src/main/java/cn/lyric/getter/hook/MainHook.kt
+++ b/app/src/main/java/cn/lyric/getter/hook/MainHook.kt
@@ -13,6 +13,7 @@ import cn.lyric.getter.hook.app.Meizu
import cn.lyric.getter.hook.app.MiPlayer
import cn.lyric.getter.hook.app.MobileMusic
import cn.lyric.getter.hook.app.Netease
+import cn.lyric.getter.hook.app.NeteaseLite
import cn.lyric.getter.hook.app.QQMusic
import cn.lyric.getter.hook.app.Qinalt
import cn.lyric.getter.hook.app.RPlayer
@@ -36,6 +37,7 @@ class MainHook : IXposedHookLoadPackage, IXposedHookZygoteInit {
"com.tencent.qqmusic" -> initHooks(QQMusic)
"com.miui.player" -> initHooks(MiPlayer)
"com.netease.cloudmusic" -> initHooks(Netease)
+ "com.netease.cloudmusic.lite" -> initHooks(NeteaseLite)
"com.kugou.android", "com.kugou.android.lite" -> initHooks(Kugou)
"cn.kuwo.player" -> initHooks(Kuwo)
"remix.myplayer" -> initHooks(APlayer)
diff --git a/app/src/main/java/cn/lyric/getter/hook/app/Netease.kt b/app/src/main/java/cn/lyric/getter/hook/app/Netease.kt
index 2a163e5..c38bc7d 100644
--- a/app/src/main/java/cn/lyric/getter/hook/app/Netease.kt
+++ b/app/src/main/java/cn/lyric/getter/hook/app/Netease.kt
@@ -1,7 +1,6 @@
package cn.lyric.getter.hook.app
import android.annotation.SuppressLint
-import android.content.Context
import cn.lyric.getter.hook.BaseHook
import cn.lyric.getter.tool.HookTools
import cn.lyric.getter.tool.HookTools.MockFlyme
@@ -17,25 +16,27 @@ import org.luckypray.dexkit.DexKitBridge
@SuppressLint("StaticFieldLeak")
object Netease : BaseHook() {
+ init {
+ System.loadLibrary("dexkit")
+ }
+
override fun init() {
super.init()
MockFlyme().mock()
fuckTinker()
HookTools.getApplication {
- System.loadLibrary("dexkit")
val verCode = it.packageManager?.getPackageInfo(it.packageName, 0)?.versionCode ?: 0
- verCode.log()
if (verCode >= 8000041 || it.packageName == "com.hihonor.cloudmusic") {
DexKitBridge.create(it.classLoader, false).use { use ->
use.apply {
- val result = findMethod {
+ val result = findClass {
matcher {
addEqString("StatusBarLyricController")
- returnType = Void::class.java.name
- paramTypes(Context::class.java)
+// returnType = Void::class.java.name
+// paramTypes(Context::class.java)
}
- }.single()
- loadClass(result.declaredClassName).methodFinder().filterByParamCount(0).filterByReturnType(String::class.java).first().createHook {
+ }.log()!!.single()
+ loadClass(result.name).methodFinder().filterByParamCount(0).filterByReturnType(String::class.java).first().createHook {
after { hookParam ->
eventTools.sendLyric(hookParam.result as String)
}
diff --git a/app/src/main/java/cn/lyric/getter/hook/app/NeteaseLite.kt b/app/src/main/java/cn/lyric/getter/hook/app/NeteaseLite.kt
new file mode 100644
index 0000000..ec4a148
--- /dev/null
+++ b/app/src/main/java/cn/lyric/getter/hook/app/NeteaseLite.kt
@@ -0,0 +1,47 @@
+package cn.lyric.getter.hook.app
+
+import android.view.View
+import cn.lyric.getter.hook.BaseHook
+import cn.lyric.getter.tool.HookTools
+import cn.xiaowine.xkt.LogTool.log
+import cn.xiaowine.xkt.Tool
+import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
+import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
+import com.github.kyuubiran.ezxhelper.finders.ConstructorFinder.`-Static`.constructorFinder
+import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
+import org.luckypray.dexkit.DexKitBridge
+
+object NeteaseLite : BaseHook() {
+ init {
+ System.loadLibrary("dexkit")
+ }
+
+ var lyric: String by Tool.observableChange("") { _, _, newValue ->
+ HookTools.eventTools.sendLyric(newValue)
+ }
+
+ override fun init() {
+ super.init()
+ loadClass("com.netease.cloudmusic.meta.LyricLine").methodFinder().filterByName("getContent").first().createHook {
+ after {
+ lyric = it.result.toString()
+ }
+ }
+ HookTools.getApplication { application ->
+ DexKitBridge.create(application.classLoader, false).use { dexKitBridge ->
+ dexKitBridge.apply {
+ val single = findClass {
+ matcher {
+ addEqString("JwsARRhTXw==")
+ }
+ }.log()!!.single()
+ loadClass(single.name).constructorFinder().first().createHook {
+ after {
+ (it.thisObject as View).visibility = View.GONE
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 057e832..7b4772d 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -24,5 +24,6 @@
- com.xuncorp.qinalt.music
- statusbar.finder
- com.hihonor.cloudmusic
+ - com.netease.cloudmusic.lite