Ubuntu 11.10 管理iPhone音乐


之前在Ubuntu 10.10时代,自己还没有iPhone,一直在第二代的iPod Touch,固件版本好像是4.2左右。由于每天都在Linux环境下,又是一个没有音乐会死掉的人,所以就花过一段时间调配用Rhythmbox和Banshee来管理iPod上的音乐,而且效果出奇好。


系统升级到Ubuntu 11.10后,也有了自己的iPhone,以为会像iPod+10.10那样容易管理音乐,谁知道遇到了麻烦。
iPhone连接之后在Rhythmbox和Banshee里都能看到iPhone上的音乐库,也能播放,所以就拖拽了一些歌曲进去,但是在iPhone上的iPod应用里压根就看不到这些音乐,再次连上iPhone,Rhythmbox和Banshee里也看不到这些歌曲。又试了一遍,还是如此。

第一反应就是Ubuntu 11.10或者iOS版本的问题,翻出iPod Touch,尝试,可用,第一种可能性被淘汰。
也可能Rhythmbox和Banshee调用的iDevice管理库并不支持iOS 4.3.1?尝试着用Rhythmbox和Banshee删除iPhone里的一些歌曲,打开iPod应用,可以看到这些歌曲,但是并不能播放,猜测是文件被删除了,但是index/description之类的文件并没有被更新,证明管理库是可以工作的,只是不能完全支持。
怎么办,总不能动不动就开虚拟机,动不动就找一台Windows或者Mac机器?!这些还好说,总不能每一次都再把我的音乐库也都给弄过去?

Google一番,的确如自己猜测的,管理库这部分不支持,http://www.bkjia.com因为Apple把DBVersion变为了5,而libimobiledevice这个管理库不支持(当然,可能还有别的原因,比如说HashInfo文件)。

解决办法:
假设iPhone已经越狱(4.3到4.3.3固件可以在 http://jailbreakme.com 直接越狱),并且安装过OpenSSH(可在越狱后从Cydia安装)。
SSH接到iPhone
打开 /system/library/lockdown/Checkpoint.xml 文件,搜索DBVersion字符串,修改数值5为4。
命令行出入:lsusb -v | grep -i iSerial 查看iPhone的UUID。
在 http://ihash.marcansoft.com/ 用刚才的UUID生成HashInfo文件。
将HashInfo文件拷贝到 /var/mobile/Media/iTunes_Control/Device/ 目录。
重启iPhone。
然后在Rhythmbox和Banshee里尝试着添加/删除歌曲,断开连接,打开iPod应用,成功啦!保险期间,重启iPhone,歌曲还在!
Woohoo~

相关内容