Skip to content

Commit

Permalink
适配网易云音乐极速版
Browse files Browse the repository at this point in the history
修复更换dexkit2.0后高版本网易云无法使用
  • Loading branch information
xiaowine committed Dec 5, 2023
1 parent 641fda6 commit a0ecea7
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 9 deletions.
17 changes: 16 additions & 1 deletion app/src/main/assets/app_rules.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
2 changes: 2 additions & 0 deletions app/src/main/java/cn/lyric/getter/hook/MainHook.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down
17 changes: 9 additions & 8 deletions app/src/main/java/cn/lyric/getter/hook/app/Netease.kt
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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)
}
Expand Down
47 changes: 47 additions & 0 deletions app/src/main/java/cn/lyric/getter/hook/app/NeteaseLite.kt
Original file line number Diff line number Diff line change
@@ -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
}
}
}
}
}
}
}
1 change: 1 addition & 0 deletions app/src/main/res/values/arrays.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,6 @@
<item>com.xuncorp.qinalt.music</item>
<item>statusbar.finder</item>
<item>com.hihonor.cloudmusic</item>
<item>com.netease.cloudmusic.lite</item>
</array>
</resources>

0 comments on commit a0ecea7

Please sign in to comment.