diff --git a/m3u8_sv.js b/m3u8_sv.js new file mode 100644 index 0000000..c330948 --- /dev/null +++ b/m3u8_sv.js @@ -0,0 +1,21 @@ +setTimeout(function () { + Java.performNow(function () { + Java.use("com.apple.android.music.common.MainContentActivity"); + var SVPlaybackLeaseManagerProxy; + Java.choose("com.apple.android.music.playback.SVPlaybackLeaseManagerProxy", { + onMatch: function (x) { + SVPlaybackLeaseManagerProxy = x + }, + onComplete: function (x) {} + }); + var HLSParam = Java.array('java.lang.String', ["HLS"]) + function getM3U8(adamID) { + var MediaAssetInfo = SVPlaybackLeaseManagerProxy.requestAsset(parseInt(adamID), HLSParam, false) + if (MediaAssetInfo === null) { + return -1 + } + return MediaAssetInfo.getDownloadUrl() + } + rpc.exports = {"getm3u8": getM3U8} + }) +}, 8000) \ No newline at end of file diff --git a/src/adb.py b/src/adb.py index 9da4375..53dbd01 100644 --- a/src/adb.py +++ b/src/adb.py @@ -194,7 +194,7 @@ class Device: self.fridaDevice = frida.get_device_manager().get_device(self.device.serial) self.pid = self.fridaDevice.spawn("com.apple.android.music") self.fridaSession = self.fridaDevice.attach(self.pid) - with open("m3u8.js", "r") as f: + with open("m3u8_sv.js", "r") as f: m3u8_script = f.read() self.m3u8Script = self.fridaSession.create_script(m3u8_script) self.m3u8Script.load()