QEMUでiPod Classic 6Gをエミュレートし、Apple純正retailOSの起動に成功

iPod Classic 6G in QEMU

QEMUでiPod Classic 6Gをエミュレートし、Apple純正retailOSの起動に成功

筆者はSamsung S5L8702を搭載するiPod Classic 6G向けのQEMUエミュレータを開発し、暗号化された純正retailOSを無改造で起動させることに成功した。ナビゲーションや画面、音楽ライブラリは動作するが、音楽プレイヤーは描画が不完全で音が出ない状態だ。SoCのデータシートが存在しないため、各レジスタの挙動をゲスト自身の書き込みから推測し、約16個の仮説を撤回しながら実装を進めた。

There is no datasheet for the SoC. Each model register that allows unlocking some part of the guest is derived from a write operation performed by the guest itself
  1. dmonterocrespo

    私はiPod Classic 6G(Samsung S5L8702)用のQEMUエミュレータを開発していて、それはオリジナルの未改変のApple retailOSを起動します。ナビゲーション、ディスク、画面、音楽ライブラリはしばらく動作しましたが、音楽プレイヤーは部分的にしかレンダリングされず、音も出ませんでした。4つの異なるエラーがあり、最後のものはある意味私のせいで、面白いと思ったので記事に書くことにしました。

    何ヶ月もの間、引き出しに入っているiPod Classic 6Gをエミュレートしようとして、成功しませんでした。長い時間を経て、ようやく動作させることができましたが、まだかなり荒削りです。QEMUで、オリジナルの未改変のApple retailOSを起動できました。ナビゲーション、ディスク、画面、音楽ライブラリはしばらく動作しましたが、音楽プレイヤーは部分的にしかレンダリングされず、音も出ませんでした。

    すでにわかっていることの1つは、ファームウェアはAppleのもので暗号化されているため、合法的なダウンロードは存在しないということです。私は2008年製のiPod Classic 6Gを持っています。Claude Codeの助けを借りて、emCOREを使ってそれを抽出するコードを作成できました。フラッシュメモリの内容を抽出し、イメージを自分で復号しました。

    そして、ブートROMは動作中のデバイスから読み取ることはできません。後者は身をもって確認し、その過程で私のiPodは何度か再起動しました(中央とメニューのボタンを5秒間押して再起動します)。

    SoCのデータシートはありません。ゲストの一部をアンロックできる各モデルレジスタは、ゲスト自身が実行する書き込み操作から導き出されます。

    コードとノート、含 […]

  2. dmonterocrespo

    私が非常に苦労したことの1つは、音楽プレイヤーのアンロックでした。リバースエンジニアリングは本当に困難でした。多くの可能なバリエーションを調査し、https://freemyipod.org でメモリレジスタ情報を検索してみましたが、この特定のiPodに関して音楽プレイヤーの助けになるものは何もありませんでした。今はCover Flowのアンロックに取り組んでいます。これは初めて自分のiPodで見たときに本当に気に入ったものです。

  3. ChrisRR

    r/emulationのコメント欄で、AIコードについて延々と叫ぶだけではないのを見るのは珍しい

  4. dmonterocrespo

    iPod Classic 6Gエミュレータをどのように作り、その過程で何に遭遇したかについての詳細はこちらです: https://x.com/DMonteroCrespo1/status/2095882094455009695

  5. villgax

    私は20年近く前、中学1年かそこらでiPodファームウェアのカスタマイズにどっぷり浸かっていました。

    FW/IPSWを探している人は https://www.felixbruns.de/iPod/firmware/

この日のほかの記事

2026-09-11