提供 joox 解密/meta 更新支持 #215

Merged
jixunmoe merged 21 commits from feature/joox-encryption into master 2021-12-25 03:49:24 +00:00
jixunmoe commented 2021-12-19 23:06:41 +00:00 (Migrated from github.com)

TODO:

  • 添加如何获取 uuid 的指引(设定窗口)
    • 表单验证提示
  • 如何获取曲目信息?复用了 QQ 音乐的 meta 信息代码部分。
  • 测试 chrome 扩展(uuid 的存储)
  • 更新文档
  • 部分单元测试
TODO: - [x] 添加如何获取 uuid 的指引(设定窗口) - [x] 表单验证提示 - [x] 如何获取曲目信息?复用了 QQ 音乐的 meta 信息代码部分。 - [x] 测试 chrome 扩展(uuid 的存储) - [x] 更新文档 - [x] 部分单元测试
jixunmoe commented 2021-12-19 23:47:03 +00:00 (Migrated from github.com)

问题:作为 unpacked chrome extension 加载时无法正确存储 joox uuid 信息。

chrome.storage 与 localStorage 均不可使用的样子,还需要调查。

问题:作为 unpacked chrome extension 加载时无法正确存储 joox uuid 信息。 chrome.storage 与 localStorage 均不可使用的样子,还需要调查。
ix64 commented 2021-12-19 23:50:11 +00:00 (Migrated from github.com)

chrome.storage 与 localStorage 均不可使用的样子,还需要调查。

需要添加 storage 权限
在这个文件: https://github.com/unlock-music/unlock-music/blob/master/extension-manifest.json

ref: https://developer.chrome.com/docs/extensions/reference/storage/

> chrome.storage 与 localStorage 均不可使用的样子,还需要调查。 需要添加 `storage` 权限 在这个文件: https://github.com/unlock-music/unlock-music/blob/master/extension-manifest.json ref: https://developer.chrome.com/docs/extensions/reference/storage/
jixunmoe commented 2021-12-19 23:52:34 +00:00 (Migrated from github.com)

chrome.storage 与 localStorage 均不可使用的样子,还需要调查。

需要添加 storage 权限

ref: https://developer.chrome.com/docs/extensions/reference/storage/

好,我下班后实验看看,应该问题不大。

> > chrome.storage 与 localStorage 均不可使用的样子,还需要调查。 > > 需要添加 `storage` 权限 > > ref: https://developer.chrome.com/docs/extensions/reference/storage/ 好,我下班后实验看看,应该问题不大。
ix64 commented 2021-12-19 23:54:30 +00:00 (Migrated from github.com)

可以试下重新打包joox,打包为debug模式,这样就不用root就可以获取uuid

可以试下重新打包joox,打包为debug模式,这样就不用root就可以获取uuid
jixunmoe commented 2021-12-20 00:01:48 +00:00 (Migrated from github.com)

可以试下重新打包joox,打包为debug模式,这样就不用root就可以获取uuid

  • 怀疑应用有签名验证,有被封锁账号/设备的风险。
  • 签名不同应该需要卸载再安装,这个 uuid 会重新生成还是保持不变?
  • 如果设备 uuid 重新生成,之前下载的文件无法解密。
  • 使用模拟层(如太极)环境安装能否绕过签名校验的限制?可以写自定义 xposed 模块用来提取设备 uuid。当然,歌曲应该还是需要重新下载的。

不过可以写到 wiki 内,将这个方法的优缺点都写进去。

> 可以试下重新打包joox,打包为debug模式,这样就不用root就可以获取uuid - 怀疑应用有签名验证,有被封锁账号/设备的风险。 - 签名不同应该需要卸载再安装,这个 uuid 会重新生成还是保持不变? - 如果设备 uuid 重新生成,之前下载的文件无法解密。 - 使用模拟层(如[太极](https://github.com/taichi-framework/TaiChi/wiki/For-Xposed-developer))环境安装能否绕过签名校验的限制?可以写自定义 xposed 模块用来提取设备 uuid。当然,歌曲应该还是需要重新下载的。 不过可以写到 wiki 内,将这个方法的优缺点都写进去。
ix64 commented 2021-12-20 00:10:00 +00:00 (Migrated from github.com)

签名不同应该需要卸载再安装,这个 uuid 会重新生成还是保持不变?

确实,会变化,只能当作方法之一

如果设备 uuid 重新生成,之前下载的文件无法解密。

卸载后 /sdcard/Android/ 下的东西都会删掉,肯定得重下

> 签名不同应该需要卸载再安装,这个 uuid 会重新生成还是保持不变? 确实,会变化,只能当作方法之一 > 如果设备 uuid 重新生成,之前下载的文件无法解密。 卸载后 /sdcard/Android/<package> 下的东西都会删掉,肯定得重下
ix64 commented 2021-12-20 00:11:07 +00:00 (Migrated from github.com)

使用模拟层(如太极)环境安装能否绕过签名校验的限制?可以写自定义 xposed 模块提取设备 uuid。

这个肯定没问题,不过一般应用都会进行反检测,也难处理

> 使用模拟层(如太极)环境安装能否绕过签名校验的限制?可以写自定义 xposed 模块提取设备 uuid。 这个肯定没问题,不过一般应用都会进行反检测,也难处理
jixunmoe commented 2021-12-20 00:16:23 +00:00 (Migrated from github.com)

使用模拟层(如太极)环境安装能否绕过签名校验的限制?可以写自定义 xposed 模块提取设备 uuid。

这个肯定没问题,不过一般应用都会进行反检测,也难处理

还是把各种方法和风险都写上去,让用户自己权衡做决定吧。

> > 使用模拟层(如太极)环境安装能否绕过签名校验的限制?可以写自定义 xposed 模块提取设备 uuid。 > > 这个肯定没问题,不过一般应用都会进行反检测,也难处理 还是把各种方法和风险都写上去,让用户自己权衡做决定吧。
jixunmoe commented 2021-12-20 19:42:45 +00:00 (Migrated from github.com)

扩展页可以读取,但是扩展的 service worker 读不了设定。还是需要研究研究。

扩展页可以读取,但是扩展的 service worker 读不了设定。还是需要研究研究。
jixunmoe commented 2021-12-20 22:23:59 +00:00 (Migrated from github.com)

Chrome 扩展 + Worker 内读取设定搞定了。现在在解密的时候把设定格式化一下传给这个解密函数。

Chrome 扩展 + Worker 内读取设定搞定了。现在在解密的时候把设定格式化一下传给这个解密函数。
jixunmoe commented 2021-12-20 23:34:44 +00:00 (Migrated from github.com)

洋洋洒洒写了一堆内容,到时候把链接添加到设定窗口内。

获取设备 UUID · unlock-music/joox-crypto Wiki

洋洋洒洒写了一堆内容,到时候把链接添加到设定窗口内。 [获取设备 UUID · unlock-music/joox-crypto Wiki](https://github.com/unlock-music/joox-crypto/wiki/%E8%8E%B7%E5%8F%96%E8%AE%BE%E5%A4%87-UUID)
ix64 commented 2021-12-21 00:02:15 +00:00 (Migrated from github.com)

https://github.com/unlock-music/unlock-music/discussions/212#discussioncomment-1844523

还有一种办法,清除数据后 首次启动的时 监控log
adb logcat -e "getOpenUUID
仅出现一次,但没啥风险

https://github.com/unlock-music/unlock-music/discussions/212#discussioncomment-1844523 还有一种办法,清除数据后 首次启动的时 监控log `adb logcat -e "getOpenUUID` 仅出现一次,但没啥风险
jixunmoe commented 2021-12-21 22:37:37 +00:00 (Migrated from github.com)

文档加入了监控方法。

文档加入了监控方法。
jixunmoe commented 2021-12-21 22:38:14 +00:00 (Migrated from github.com)

加入了流媒体文件元信息的提取,复用了 QMC 里面的信息提取部分代码。

加入了流媒体文件元信息的提取,复用了 QMC 里面的信息提取部分代码。
jixunmoe commented 2021-12-21 23:11:46 +00:00 (Migrated from github.com)

image

稍微优化了下这个界面,但是不清楚为什么无法显示自定义验证规则的提示信息。赶明再看吧。

![image](https://user-images.githubusercontent.com/5713045/147009435-a0116052-70bd-45b0-9fcd-23f44486288f.png) 稍微优化了下这个界面,但是不清楚为什么无法显示自定义验证规则的提示信息。赶明再看吧。
jixunmoe commented 2021-12-23 15:00:48 +00:00 (Migrated from github.com)

image

现在可以对 joox 解密的曲目获得正确的 meta 信息了。

不使用 API 之前:告白气球是拼音且图片错误、Last Christmas 无法提供任何有效信息

IMG_20211223_153139_908.jpg

![image](https://user-images.githubusercontent.com/5713045/147257713-a969cd50-6e59-4790-a624-906e86eca0dc.png) 现在可以对 joox 解密的曲目获得正确的 meta 信息了。 不使用 API 之前:告白气球是拼音且图片错误、Last Christmas 无法提供任何有效信息 ![IMG_20211223_153139_908.jpg](https://user-images.githubusercontent.com/5713045/147261370-daffa143-bd33-4e45-9112-be74cdc55cca.jpg)
jixunmoe commented 2021-12-23 23:25:09 +00:00 (Migrated from github.com)

加了一些基本的基准测试。感觉差不多可以合并了?还是再提升一下测试覆盖率?

加了一些基本的基准测试。感觉差不多可以合并了?还是再提升一下测试覆盖率?
ix64 commented 2021-12-23 23:42:33 +00:00 (Migrated from github.com)

我稍微看一下,就准备合并吧,暂时不追求覆盖率

我稍微看一下,就准备合并吧,暂时不追求覆盖率
ix64 (Migrated from github.com) approved these changes 2021-12-25 03:46:47 +00:00
This repo is archived. You cannot comment on pull requests.
No description provided.