原文:ipodminusitunes
知った場所:「iTunes以外での同期」を締め出した新iPod nanoとclassic - CloseBox and OpenPod [ITmedia オルタナティブ・ブログ]
2007年9月14日
Appleは、iTunesよりも出来の良い他のメディアプレイヤが気に入らず、どうやら新世代iPodでは使えないように細工することに決めたようだ。
誰が影響を受けるのか?
Linuxユーザーだ。LinuxにiTunesは無いので、一般的にgtkpodやRhythmboxなどのiPod管理ツールを使うが、こうしたツールは新世代iPodには使えないという事になる。
またiTunesが気に入らず、WinampやEphpod、その他たくさんあるiPod管理ツールを選択しているWindowsも影響を受ける。
どんな影響があるのか?
iPodは楽曲とプレイリストをあるデータベースファイル形式で管理する。iTunes DBだ。これはiPod中の非表示フォルダにある。場所はiPod_Control/iTunes/。
初期のiPodでは、このファイルフォーマットは、iPodは使いたいがiTunesは要らないという人々の手ですぐさまリバースエンジニアリングされた。これはiTunesがMac専用だった頃、すなわちWinユーザはReal Playerに拘泥し(それは酷いものだった)、そしてLinuxユーザにはまったく手段がなかった時代、今よりも重要な事だった。
このデータベースフォーマットは何年もの間、進化を続け、iPodはサポートの幅を拡げて来た。ビデオ、ポッドキャスト、アルバムアートワーク、スマートプレイリスト、などなどなど。その間、データベースファイルの基本構造はずっと変わらなかったので、こうした変化に付いてゆくのは難しいことでは無かった。
新世代iPod ~ 新しいNano, iPod Classic, そしてiPod Touch ~のリリースでも我々は同様に考えていた。若干の微調整をそこかしこに加えればいままで通り、うまく行くと考えていた。それは間違いだった。
At the very start of the database, a couple of what appear to be SHA1 hashes have been inserted which appear to lock the iTunes database to one particular iPod and prevent any modification of the database file. If you try to do either of these, the hashes will not match and the iPod will report that it contains “0 songs“ when the iTunesDB would otherwise be perfectly adequate.
(*↓自信皆無、原文併記↑*)
データベースの開始点で、SHA1ハッシュが挿入される。これはiTunesデータベースを特定の一台のiPodにロックする。そしてそれ以上、データベースファイルを弄る事を禁じる。どちらかでも弄ろうとする場合、ハッシュの不一致が起こり、iTunes DBが完全な場合でも、iPodは “0 songs“ (曲が無い)をリピートする。
それはなんとかならんのか?
うーん、もしかしたら。マジでリバースエンジニアリングのエキスパートの助けが要る。
以下は、現時点までに我々が解明した iTunesDB fileの開始点:
MHBD header:
0x00 4 mhbd
0x04 4 header size = 0xBC (changed)
0x08 4 filesize
0x0C 4 unknown = 1
0x10 4 version number = 0x19 (changed)
0x14 4 child count = 0x05 (changed)
0x18 8 itunes databaseid
0x20 2 unknown = 2
0x22 2 unknown = 0x0263 (changed, 0x0000 before)
0x24 8 ipod identification? (changed)
0x2C 4 zero padding
0x30 2 unknown = 1
0x32 20 unknown, changing completely from itdb to itdb
0x46 2 language, seen: de, en
0x48 8 library persistent id
0x50 4 unknown, seen: 1, 5
0x54 4 unknown, seen: 0x08, 0x0D, 0x1D, 0x4D, 0x8D
0x58 20 unknown some similarities between versions
0x6C 4 timezone offset in seconds. +2*60*60 -> 0x00001C20, -4*60*60 = 0xFFFFC7C0 (really?)
0x70 76 zero padding 0x00000000
0x32 は SHA1 hash のようだ。また 0x58 もそうかもしれない。
誰か手を貸してくれないか?この手の事に詳しくて、新世代の iPod Classic か Nanoを入手できる人があったら、freenode#gtkpod へ来て欲しい。
コメント総数 82
****
※訳注:リバースエンジニアリングが禁止されていない国や地域というものが存在するそうですが、日本国内がどうかは知りません。
****
自分なりの解釈:
「iTunes Storeで買い、iTunesで管理し、Apple TV / iPod / iPhoneで楽しむ。」この輪っかからユーザを出しては、儲けが減る。「ユーザーがサクヒンと接触する機会」を「ウィンドウ」という言葉でくくると、
イ)購入ウィンドウ(iTunes Store)ではほぼ圧倒的なシェア。
ロ)ハード・ウィンドウ(Apple TV / iPod / iPhone)もほぼ圧倒的なシェア。または大人気。
ハ)ソフト・ウィンドウ(iTunes)はこれらを繋ぐカナメ。
三つでひとつの「見世物小屋」なわけで。Appleはイ、ロ、ハを一体で売り、ユーザーが一生その外に出ないようにしたいわけで。イ、ロ、が圧倒的なシェアを獲った以上、焦点はユーザーライブラリを自己のコントロール下に置く事。DRMだけなら、iTunes Storeで何も買わなければ「Jobsの首輪」から多少は自由で居られたのだが。
いずれにせよiTunesは機能が肥大化しており、Mac OSX 上でもいささか重い。速攻でSound JAMから乗り換えた時のようなシンプルさ、解り易さは失せている。今は代替ソフトがあればなぁと思う。
関連記事
2007/09/20追記: