admin管理员组文章数量:1625096
越狱苹果手机导出网易云歌曲
- 1. 对苹果手机进行越狱
- 2. 在手机端使用Cydia安装openssh
- 3. 在电脑端使用putty和winscp连接手机
- 4. 定位网易云音乐文件
- 5. 使用winscp下载文件
- 6. 将uc!文件解码为MP3文件
撰写时间:20200424
1. 对苹果手机进行越狱
博主的机器是iPhoneSE,系统为iOS12.2。使用爱思助手进行越狱,遵循爱思助手的说明即可。
2. 在手机端使用Cydia安装openssh
手机越狱后会多出一个cydia应用,在cydia中添加源https://apt.binger/
添加完毕后,在屏幕底下的“search”选项卡中查找openssh。找到并选择OpenSSH,点击右上角“Modify”,选择“Install”。
安装完成后,一定要修改ssh密码!
3. 在电脑端使用putty和winscp连接手机
putty用于通过ssh访问手机控制台,winscp用于手机与电脑的文件互传。安装和使用的教程在这里。(关于putty中控制台字符的复制粘贴看这里)
putty
winscp
4. 定位网易云音乐文件
iOS文件系统中,应用程序数据会保存在该目录下
/var/mobile/Containers/Data/Application
在手机控制台使用cd命令切换到该目录下
cd /var/mobile/Containers/Data/Application
观察一下目录下应用程序文件夹的结构,无法看出什么信息。
不过,只要在网易云音乐听过歌,就一定会留下缓存文件,缓存文件后缀名一般为uc!因此只需要对子目录中*.uc!文件进行搜索即可。在控制台使用find指令进行搜索
find -name *uc!
搜索结果如下
最终发现网易云音乐歌曲存放的绝对路径如下
/var/mobile/Containers/Data/Application/0255F52E-C661-45D2-9EA8-4626A4E13205/Documents/UserData/Download/
其中最长的一串16进制代码“0255F52E-C661-45D2-9EA8-4626A4E13205”是网易云音乐的程序数据所在的文件夹名称,不同手机上是不一样的,这里根据find指令返回的结果来确定。其余部分应当和我贴出来的一致。
5. 使用winscp下载文件
使用ls命令查看一下存放数据的目录
其中以"done"开头的文件夹中,都存放有已下载的音乐或视频。而“cache”文件夹中存放有平时听歌(却没下载)的缓存文件。其它文件夹里应当有一些别的资料,有兴趣的话可以打开来看看。
使用winscp连接手机(我这里文件传输协议使用sftp协议)
双击iphone端的目录,输入刚才的网易云音乐数据路径
以“done”文件夹为例,打开“done”文件夹
可以看见里面有很多MP3文件,可以直接框选,ctrl + C复制,在本地粘贴即可。(有时候直接拖动文件会报错,不知为何)
传输完成后可能会遗留一个名称为“scp-xxxxx”的文件夹,删除即可(一定在传输完成后才删除)。
此外,缓存的音乐文件存放在“cache”文件夹,打开之,用filter功能找出其中所有后缀为uc!的文件,将这些文件下载到电脑本地。
6. 将uc!文件解码为MP3文件
根据这位大佬的发现,uc!文件只是对源MP3文件的二进制数据,按字节与十六进制数字0xA3进行按位异或了而已,因此我们只要再将uc!文件中的每个字节,同0xA3按位异或一次,就能还原出原来的MP3文件。
我写这篇博客时,网易云音乐7.1.41版本仍然可以使用该方法对文件进行解码。
为了应对300多个缓存文件,我编写了python3脚本如下,在windows10下测试正常。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
# key number
KEY = 0xA3
# set file path
path_uc = __file__ + '/../ucfile/'
path_mp3 = __file__ + '/../mp3file/'
# get uc file list
ucfiles = os.listdir(path_uc)
file_num = ucfiles.__len__()
print('find %d ucfile(s)' % file_num)
# decode each file
count = 0
for uf in ucfiles:
# read ucfiles by byte
f1 = open(path_uc + uf, 'rb')
rawcode = f1.read()
f1.close()
# decode each byte
decode = bytes([r ^ KEY for r in rawcode])
# write decoded bytes into mp3file
f2 = open(path_mp3 + uf + '.mp3', 'wb')
f2.write(decode)
f2.close()
count += 1
print('%d of all %d files' % (count, file_num))
print('done')
脚本所在的目录布置如下,除了脚本文件外,还需要有“mp3file”和“ucfile”这两个文件夹。后者用来存放待处理的uc!文件,前者用来存放处理完的mp3文件。
将uc!文件放入ucfile文件夹后,直接双击py脚本即可运行(建议使用python3.x解释器,python2我没有测试)
ucfile文件夹
mp3file文件夹
版权声明:本文标题:越狱苹果手机导出网易云音乐歌曲(以及缓存文件转换) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728917322a1179718.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论