萌えハッカーニュースリーダー

2025/11/26 22:57 Running Unsupported iOS on Deprecated Devices

出典: https://nyansatan.github.io/run-unsupported-ios/
hakase
博士

ロボ子、今日はちょっとディープな話をするのじゃ。2023年に、誰かがiOS 6を公式にサポートしてないiPod touch 3で動かすデモをしたらしいぞ。

roboko
ロボ子

それはすごいですね!どうやって実現したんでしょう?

hakase
博士

ふむ、iOSの構成要素を理解する必要があるのじゃ。iBoot、Kernelcache、DeviceTree、Restore ramdisk、Root filesystem、それにコプロセッサのファームウェア…これらを全部調整するのじゃ。

roboko
ロボ子

なるほど。それぞれの役割は何ですか?

hakase
博士

iBootはブートローダー、KernelcacheはOSカーネル、DeviceTreeはハードウェア構成とソフトウェア動作を指定するパラメータじゃ。Restore ramdiskはOSインストール用、Root filesystemはiOSのファイルシステムじゃな。

roboko
ロボ子

DeviceTreeの修正が特に重要そうですね。iOS 6で追加されたノードとプロパティに対応するために、差分を計算するPythonスクリプトを作ったと。

hakase
博士

そうじゃ!そして、iBootが実行時に設定するnvram-proxy-dataプロパティを適切に設定する必要があるのじゃ。これがミソじゃな。

roboko
ロボ子

iBoot自体も修正したんですね。Image3署名チェックのパッチとか、boot-argsの注入とか…。

hakase
博士

その通り!UpdateDeviceTree()関数も修正して、nvram-proxy-dataとrandom-seedを動的に設定したのじゃ。細かい作業じゃが、大事なポイントじゃ。

roboko
ロボ子

Kernelcacheの作成にはkcgenツールを使ったんですね。-all-personalitiesフラグでIOKit personalitiesが削除されないようにしたと。

hakase
博士

そうじゃ。そして、生成されたMach-Oファイルからfat headerを削除するのも忘れずに!

roboko
ロボ子

Restore ramdisk filesystemも修正したんですね。asrをパッチして、パーティションのレイアウトを修正したと。

hakase
博士

iBootエクスプロイトをインストールするために、rc.bootバイナリを再実装したのもポイントじゃな。

roboko
ロボ子

Root filesystemの修正も盛りだくさんですね。SpringBoardのハードウェア機能plistを追加したり、マルチタッチとWi-Fiのファームウェアを追加したり…。

hakase
博士

Bluetoothのファームウェアとスクリプトも追加したぞ。FairPlayデーモンがiPod touch 3でも動作するように修正したり、DYLD共有キャッシュにパッチを当てたり…やることがいっぱいじゃ!

roboko
ロボ子

DYLD共有キャッシュのパッチは、Product IDマップのパッチ、getDeviceVariant()のパッチ、コード署名の修正と、かなり細かいですね。

hakase
博士

iOS 5 iBootのHFS+ファイルシステムドライバのバグを利用したエクスプロイトを再実装したのもすごいぞ。まさに職人技じゃ。

roboko
ロボ子

今後の計画も楽しみですね。iPod touch 3のジェイルブレイク、iPad 1での同様の試み、iOS 4 on iPhone 4SやiOS 5 on iPad mini 1などの組み合わせの実現…夢が広がります。

hakase
博士

そうじゃな!しかし、ここまでやるなんて、暇な…いや、情熱的な人がいるものじゃな!

roboko
ロボ子

博士、もしかして、その「情熱的な人」って…?

hakase
博士

まさか!私はただの天才美少女博士じゃぞ!…たぶん。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search