使っていないiPhoneは手元にあるが、Macは持っていない。macOS専用のアプリを一度触ってみたいけれど、Macを買うほどではない。そんな状況に、答えが出た。iPhoneやiPadの中だけでmacOSを起動できる、無料のオープンソースソフト「Henge」が登場した。SafariやDiscordも動かせる。開発者Leviidev氏が2026年11月6日に初版v0.1として公開した(GitHub Releases)。Mac本体は一切要らない。
気になるのは2つある。iPhoneはMacのような仮想化の仕組み(ハイパーバイザー)を持たないはずなのに、なぜmacOSが動くのか。そして、実際に試すには何が必要なのか。
なぜmacOSが動くのか
通常のエミュレータとの違い
HengeをiPhone 17 Proで起動すると、見慣れたMacのログイン画面が現れ、約15秒でロック画面に着く。そのままSafariを開けるし、Discordはインストールからログイン、メッセージの送信まで動作する(GitHub Releases)。
通常、WindowsやMac上で動くエミュレータ(QEMUやApple純正のVirtualization.framework)は、「ハイパーバイザー」という仕組みを借りる。これを使うと、別のOSを高速に動かせる。ハイパーバイザーはCPUの特権的な機能で、ゲストOSの命令をほぼそのままCPUに渡せる。
ところがiOSは、この機能をサードパーティのアプリには渡していない。HengeのGitHubリポジトリは、この制約をそのまま認めている。そのうえで、独自のJITでMacのarm64命令を直接実行していると説明する(GitHub Henge リポジトリ)。JIT(Just-In-Time)は、命令をその場で機械語に変換しながら実行する方式だ。ブラウザがJavaScriptを実行時に高速化する仕組みと、考え方は同じになる。メモリ管理も仮想デバイスも、ハイパーバイザーには頼らず自前で用意している。
つまりHengeは、仮想マシンではない。Macの命令そのものを翻訳しながら実行するプログラムだと言える。
自分は最初、iOSの制約を回避するなら、どこかの非公開APIか抜け穴になるエンタイトルメントを使っているのだろうと予想していた。実際は逆で、抜け道を探す代わりに、CPU命令を自分で解釈実行するJITをまるごと書くという力づくの解決だった。この発想の向きに驚いた。
macOS本体はどこから来るか
macOS本体のデータは、Hengeの中に埋め込まれていない。導入時にAppleの復元イメージを直接ダウンロードする。実機のMacを初期化するときと同じ手順で、デバイスに書き込む仕組みだ(GitHub Henge リポジトリ)。画面の描画は、macOS側が仮想GPUに向けて出す命令を、Hengeが端末のMetalで再生する形で表示している。復号や改変は行わない設計だ。
Hengeは、同じGitHubアカウントが公開している関連プロジェクト「Husk」から、一部の仕組みを引き継いでいる。端末とのペアリングや、JIT有効化を担う部分だ(GitHub Henge リポジトリ)。ゼロから書き起こした実験ではなく、既存の土台の上に組み上げられている。
仕組みは分かった。では実際に使うと、画面の操作や動作の確かさはどうなるのか。
使うと何が起きるか
操作は、画面全体をMacのトラックパッドのように扱う。長押しでドラッグ、2本指でスクロールができる(GitHub Henge リポジトリ)。ソフトウェアキーボードの上には、Esc・Tab・Control・Option・Commandの5キーが並ぶ。iPadではMagic Keyboardや外部マウスでも、Mac側を直接操作できる。
動作確認が済んでいるアプリは、macOS標準アプリのほかSafari、Chrome、Firefox、VS Code、Discordに限られる。それ以外のアプリは正しく描画されない場合があると、Henge自身が明記している(GitHub Henge リポジトリ)。
端末とMacの間でできることは、操作だけではない。コピー&ペーストは両方向で使える。Filesアプリ側とmacOS側の両方から見える共有フォルダも用意されている(GitHub Henge リポジトリ)。USB-C映像出力に対応したケーブルやドックを使えば、起動中のmacOSの画面を外部ディスプレイへそのまま映すこともできる。ただしこの経路は、iPhone 17 Proでしかユーザーによる確認が取れていない。
現時点でできないこと
- iPadでの実機検証はまだ済んでいない。対応は始まったばかりで、動作は未確認
- macOS内でApple Accountにサインインすると、検証エラーで失敗する
- 一度に起動できるMacは1台だけ。別のMacを使うには、Hengeを終了して開き直す必要がある
こうした制限を踏まえたうえで、自分の端末でも試せるのか。
試すための条件
対応要件は次のとおりだ(GitHub Henge リポジトリ)。
- 対応OS: iOSまたはiPadOS 17以降
- 対応チップ: A14またはM1以降
- 実機での動作確認: iPhone 17 Proのみ(iPadは未検証)
合計で約43GBの空き容量が要る。内訳は、Appleの復元イメージを取得する一時領域が17GBで、これは導入後に削除できる。残る26GBが、実際にMacとして使う領域になる(GitHub Henge リポジトリ)。
導入はApp Storeを経由しない。Hengeのコードには、usbmuxdなど既存のGPLプロジェクトが組み込まれている。配布されるバイナリ全体が、GPL-2.0-or-laterの結合著作物になる。このため、App Storeでは配布できないと、ライセンス文書が説明している(GitHub Henge リポジトリ)。
代わりにGitHub ReleasesからHenge.ipaを取得し、SideStoreやAltStoreでサイドロードする。Henge.tipaなら、TrollStoreかTrollStore Liteで導入する。どちらの方法でも、JITの有効化が必須になる(GitHub Releases)。
App Store経由のアプリに慣れている読者には、ここが一番の手間になる。それでも、GitHub上でスター1,100超・フォーク80超を集めている初版が(GitHub Henge リポジトリ)、無料で公開された意味は変わらない。Macを持たない人でも、macOSの基本操作を試せるようになった。
まとめ
iOSは、第三者アプリにハイパーバイザーを渡さない。Hengeは、その代わりに独自のJITでMacのarm64命令を直接実行し、iPhone単体でのmacOS起動を実現した。iPhone 17 Proでは起動から約15秒でロック画面に着き、SafariやDiscordも動作する。
試すには、対応するチップ(A14またはM1以降)と約43GBの空き容量、そしてApp Storeを経由しないサイドロードとJIT有効化が条件になる。手間はあるが、Macを持たない読者でも、v0.1の今の時点でmacOSの基本的な操作を手元のiPhoneやiPadで確かめられるようになった。
コメント
気づきや感想をどうぞ記事への補足や、読んで考えたことをお寄せください。個人情報や、他の人を傷つける内容の投稿はお控えください。
投稿にはGoogleログインが必要です。
Googleでログイン投稿にはGoogleアカウントの表示名が公開されます。メールアドレスは取得・公開しません。
コメントを読み込んでいます…