酒呑ガジェット

〜静かな環境であなたに...こちらは音のでないコンテンツです。〜

【衝撃】安いAndroidで本物のiOS 16.5が起動 絶対の断絶を越えた「HackiOS」の錬金術

Androidの箱の中で、Appleの壁は「最初から存在しなかった」——iOS 16.5実機起動の全技術

「Androidスマホの中で、本物のiOSが動いた」という報告が技術者コミュニティで大きな波紋を広げている。画面の見た目だけをiPhoneに似せるサードパーティ製ランチャーでも、PC上のシミュレーターでもない。市販のAndroidスマートフォン、Poco X5 Pro 5Gのハードウェアの上で、改造したXNUカーネルがApple公式サーバーから取得したiOS 16.5のシステムプログラムをネイティブ実行するという、まさに「ありえない」ことが起きている。

プロジェクトの名前はHackiOS。コードはGitHubでオープンソースとして公開され、誰でも実装を読み、検証できる状態で公開されている。ロック画面への到達、スワイプでの解除、ホーム画面に相当するスプリングボードの滑らかな表示、そして設定、時計、カレンダー、写真、メモ、Safari、カメラでの静止画撮影までが実機で操作できる状態だと報告されている。実機がなくてもQEMU仮想環境で手順を試せる資料も整っている。

USBケーブルでノートPCと接続され、iOS風のホーム画面を点灯させるスマートフォンのイメージ

なぜ「絶対に動かない」と言われてきたのか

Android機もiPhoneも、ARM社設計の64bitプロセッサを採用している。CPUが理解できる計算命令は共通だ。それでもiOSがAndroid機で動かなかった理由は、脳みそではなく手足の神経の配線にある。電源投入直後の起動プログラムはAndroidがU-Boot系、iPhoneがApple独自のシリアルナンバー検証付きセキュアブートと、入り口から別物だ。割り込み制御も、Qualcomm等のSnapdragonが標準的なGICv3方式を使うのに対し、Appleシリコンは独自設計のAICという専用仕組みでしか割り込みを受け取れない。複数コアの起動手順も、部品が配置されたメモリアドレスもメーカーごとにバラバラで、「命令セットが同じ」と「同じOSが動く」は全くの別問題だったのである。

開発チームの前に立ちはだかったのは、5つの絶望的な障壁だった。1つ目がAndroidの起動形式とiOSカーネル形式の間を埋めるローダーの壁。2つ目が割り込み・マルチコア起動・メモリ保護の構造差という起動アーキテクチャの壁。3つ目が非公開ドライバーの壁。Appleがオープンソースで公開しているXNUは中心部分だけで、画面表示やGPUなどの非公開ドライバーは含まれず、そのままビルドしても部品が足りず止まる。4つ目が最も難しいとされたグラフィックスAPIの壁。iOSの描画エンジンはApple独自GPUとMetalを前提としており、QualcommのAdreno GPUでは解釈できない。GPUが動かなければ画面は真っ暗だ。5つ目がセキュリティ署名の壁。AMFIという署名検証機構が、未許可の改造プログラムを即座に強制終了させる。

RAMの上だけで動かす「非破壊ブート」の発想

HackiOSが選んだのは、Androidの保存領域を一切書き換えないRAM起動という設計だった。PCからUSBケーブル経由で、特別に構築したブートイメージをfastbootで転送する。Androidのブートローダーは送られてきたデータを通常のLinuxカーネルだと「思い込んで」メモリ上に展開するが、実は先頭に仕込まれたboot.Sという小さなスタブプログラムが動き、カスタムUEFIをメモリの指定アドレスに配置する。Snapdragonの起動プログラムは内部的にPCと同じUEFIの仕組みをベースにしている——この盲点をつき、Android機でWindowsを動かすSiliciumプロジェクトの成果をPoco X5 Pro向けに移植したのだ。

UEFIが立ち上がると、続いてiOS系ローダーであるXNUローダーが起動し、PCとのUSB通信を維持しながら、改造XNUカーネルとiOSファイルシステムをRAM上に展開する。カーネル側の移植は、Appleがラズベリーパイ3向けに残していた設定をベースに、標準のGICv3割り込みや起動手順に対応させる形で行われた。RAMの上だけで動いているため、再起動すれば元のAndroidに戻る。ただしブートローダーの解除など端末側の事前準備は必要であり、どんな手順でも無傷が保証されるわけではない。

異種OSの部品を繋ぐ「錬金術」

カーネルが起動しても、タッチパネルもWi-Fiも音も動かなければスマートフォンとして使えない。タッチパネルは対応コントローラーの専用ドライバーを新規に書いて解決した。最大の難関だったのはQualcomm WCN6750というWi-Fiチップのドライバーだ。現代のWi-Fiドライバーはチップ内ファームウェアとの複雑な通信や暗号化のやり取りを含み、ゼロから書けば数年がかりの巨大作業になる。

ここで開発チームは発想を変える。iOSのXNUカーネルは、もともとFreeBSDのコードが深く組み込まれているBSD系の心臓部を持つ。FreeBSD 15.1にはLinuxドライバーの移植を助けるLinuxKPIという互換レイヤーが存在していた。HackiOSはこの翻訳システムをiOSから取り出してXNU内部に移植し、Linux用のATH11系Wi-Fiドライバーが使うメモリ確保や同期処理をXNU側の実装へ翻訳できるようにした。まったく別のOSが持っていた部品を借りてきて繋ぎ合わせる、まさに錬金術だ。結果、Wi-Fi接続が動作可能となり、Safariでの通信にまでこぎ着けている。

GPU問題では、オープンソースの3DグラフィックスライブラリMesaと、その中のAdreno用フリードライバーFreedrenoをDarwin向けに移植し、Androidから抜き出したGPUファームウェアでAdrenoを起動。iOSの描画エンジンが吐くOpenGL ES命令(EAGL)をブリッジプログラムでMesaに繋ぎ、ハードウェア描画を実現した。Apple独自のMetal API自体は未対応だが、Metalシェーダーの中間表現であるAIRを解析しMesaの中間形式へ変換する研究も進んでおり、456個のAIRモジュールのうち321個を変換、54個が実機GPUで動作したと報告されている。ただし変換成功とMetal全体対応は別物であり、切り分けて読む必要がある。

「Appleのセキュリティは破られた」は誤解である

驚かされるのは、開発チームが「Appleのプログラムやフレームワークは一切変更していない」と主張している点だ。ディスク上の純正バイナリや共有キャッシュに傷を付けず、それでもエラーを出さずに動かすからくりは、メモリの上にある。カーネル内部のexec-inject機能が特定のシステムプロセスの起動を監視し、画面表示と入力を管理するBackBoardServerが立ち上がる瞬間に専用ライブラリをメモリへ注入する。タッチパネルから届いた入力をiOS標準のイベントに偽装して渡す仕組みだ。スプリングボードには不足センサーのチェック処理を空回りさせるライブラリを、メディアサーバーにはQualcommの音声回路へ音の行き先をすり替えるライブラリを、それぞれ起動の瞬間に滑り込ませる。元のファイルはいじらず、動き出した瞬間に裏から手を回して「本物のiPhoneにいる」と錯覚させる——脱獄で機能追加と同じ原理を、OS全体に適用した形だ。

そして誤解されやすい核心部分に、セキュリティの真相がある。結論から言えば、Appleのセキュリティはクラックされていない。本物のiPhoneでは起動ROMからのセキュアブートが正規署名のないカーネルを拒否し、AMFIが注入ライブラリを即座に殺す。しかしHackiOSが動いているのは、Appleのロックが最初から存在しないAndroidスマートフォンだ。ブートローダーが解除されたPoco X5 Proの上で、開発者自身が作った改造XNUカーネルを自由に起動している。自分たちのカーネルの中身は、AMFIもサンドボックスも「常に署名OKと返すだけのダミー部品」に置き換えられる。鍵のかかった金庫を壊したのではなく、最初から鍵のない自分たちの箱の中で動かしていただけ、というのが技術的な真実だ。もっとも、iPhoneのチップ内にある独立暗号金庫セキュアエンクレーブはAndroidには物理的に存在しないため、チェック機構を外すことと暗号チップやAppleサービスの資格情報を再現することは全くの別問題である。

iPhoneの代わりになるのか——残された制約と偽物への注意

では、安いAndroidにiOSを入れてiPhoneの代わりにできるのか。答えは現状「ノー」だ。セキュアエンクレーブと正規の資格情報がないためAppleアカウントへのログインはできず、App Storeからアプリを入れることもできない。これは開発側も目標としていない。通話やモバイル通信、Bluetoothも使える段階にない。さらに現状のカーネルにはバッテリー充電制御ドライバーがなく、起動中は充電できず電池が減り続ける。開発者自身も「普段使いのOSではなく、一定時間を動かしてログを取るための研究用実験台」と明言している。対応端末も公開資料上はPoco X5 Proのみだ。

注意したいのは、ネット上に「HackiOS」を名乗るワンクリックAPKや、からめた仮想通貨の宣伝が出回っていることだ。実際の手順はワンクリックAPKではない。Appleの知的財産を含むファイルはリポジトリに含まれず各自で取得する構成だが、それだけで法的問題が全て解決する意味でもない。OSの技術的成果と投資の話は完全に別物であり、出所不明のインストーラーを正規品と誤って導入しないことが何より大切だ。

ネットの反応

セキュリティを破ったんじゃなくて「鍵のかかってない箱で動かした」って説明、一番目から鱗だった

FreeBSDのLinuxKPIをXNUに移植する発想が強すぎる。異種OSの部品を繋ぐ錬金術だわこれ

充電できない実験台ってところが逆にロマン。研究者向けの成果として価値は本物

HackiOSのAPKとか言い出す詐欺が既に出てるの怖い。技術の話と金儲けの話は分離して読もう

AIの所感

HackiOSの本当の価値は、iPhoneの代わりになることではない。PCでは当たり前だった「異なるハードウェアに別のOSを載せる」営みが、セキュアブートと独自部品で封じられてきたスマートフォン領域で、初めて学術的に検証可能な形で実現された点にある。UEFIの盲点、BSD系カーネルという出自、MesaとFreedrenoというオープンソースの蓄積——既存の公開資産の組み合わせだけで絶望的な壁を越えた工程は、今後の組み込みOS研究やセキュリティ研究の足場になるだろう。一方で、Appleの鍵を壊したわけではないという冷静な切り分けと、研究用実験台という開発者の正直な位置づけこそ、このプロジェクトを詐欺的な話題から守っている最大の要素だ。技術ニュースは、派手な見出しより実装READMEを読む価値がある好例と言える。

-パソコン