OpenCore Legacy Patcher、Apple Siliconサポートを開発中:Rosetta 2やARM対応を強化

ありがとうございます!
OpenCore Legacy Patcher (OCLP)は、サポートが終了した古いMacに最新のmacOSをインストールすることを可能にするプロジェクトです。この度、OCLPはApple Silicon(Mシリーズチップ)への対応を示唆する変更が加えられ、さらに進化しています。この記事では、今回加えられた変更点をダイジェスト版でお伝えします。
OpenCore Legacy Patcher(OCLP)とは?
OpenCore Legacy Patcherは、Intel CPUを搭載したMacにmacOS Big Sur以降の最新バージョンのmacOSをインストールできるようにするためのツールです。
従来の対象はIntel Macのみでしたが、Apple Siliconへの対応を進めることで、さらに広範なMacユーザに最新のmacOSを提供できるようになります。
Apple Siliconサポートの詳細
OCLPのGitHubリポジトリには、Apple Siliconサポートを示唆するコミットが複数確認されています。特に注目すべきは、5月11日と5月21日に行われた以下の2つのコミットです。
- 「Add backend support for Apple Silicon root patching」(5月11日)
- このコミットでは、Apple Siliconデバイスに対するルートパッチの基礎部分が整備されました。具体的には、Rosetta 2の状態に応じてスナップショットの作成方法や管理方法を調整できるようになりました。
- 「sys_patch_mount.py: Fix mount variable invocation」(5月21日)
- ルートボリュームのマウントおよびスナップショット処理に関連する変数呼び出しの修正が行われました。この修正により、動的に決定されるマウントポイントが正確に使用されるようになっています。
Rosetta 2のサポート
Rosetta 2は、Apple Silicon上でx86アプリケーションを動作させるエミュレーションレイヤーです。OCLPの5月11日のコミットでは、Rosetta 2の状態に応じてスナップショットの作成方法が異なるように調整されました。例えば、create_snapshotメソッドでは、Rosetta 2の状態に応じて異なる引数をblessコマンドに渡すようになっています。
def create_snapshot(self) -> bool:
"""
Create APFS snapshot of the root volume.
"""
if self.xnu_major < os_data.os_data.big_sur.value:
return True
args = ["/usr/sbin/bless"]
if platform.machine() == "arm64" or self.rosetta_status is True:
args += ["--mount", "/System/Volumes/Update/mnt1", "--create-snapshot"]
else:
args += ["--folder", "/System/Volumes/Update/mnt1/System/Library/CoreServices", "--bootefi", "--create-snapshot"]
result = subprocess_wrapper.run_as_root(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
if result.returncode != 0:
logging.error("Failed to create APFS snapshot")
subprocess_wrapper.log(result)
if "Can't use last-sealed-snapshot or create-snapshot on non system volume" in result.stdout.decode():
logging.info("- This is an APFS bug with Monterey and newer! Perform a clean installation to ensure your APFS volume is built correctly")
return False
return True
ルートボリュームのマウントとスナップショットの管理
OCLPには、ルートボリュームのマウントとアンマウント、APFSスナップショットの作成およびリバート機能が追加されました。これにより、パッチ適用後に問題が発生した場合でも元の状態に戻すことが可能です。
特にこれらの操作に特化したSysPatchMountクラスが用意され、ルートボリュームのマウントとアンマウントを管理し、APFSスナップショットの作成とリバート(元に戻す作業)がApple Siliconを搭載するMacでサポートしました。
SysPatchMountクラスにある主要なメソッドと目的は以下の通りです。
- SysPatchMountクラス
- _mount_root_volume
- ルートボリュームをマウント
- _unmount_root_volume
- ルートボリュームをアンマウント
- create_snapshot
- APFSスナップショットを作成
- revert_snapshot
- APFSスナップショットをリバート
- _mount_root_volume
今後の課題と期待
OCLPがApple Siliconを完全にサポートするためには、OpenCorePkgがARMをサポートする必要があります。現時点では、ARMサポートの開発はまだ初期段階であり、多くの技術的課題が残っています。Apple Siliconの仕様が独自にカスタマイズされているため、従来のアプローチでは対応が難しい点も課題です。
しかし、OCLPの開発チームは積極的に対応を進めており、今後の進展が期待されます。次期macOSのリリースやApple Siliconのサポートに関する情報がさらに明らかになることで、古いMacユーザーにとっても大きな利便性が提供されるでしょう。
まとめ
OpenCore Legacy Patcherは、Apple Siliconサポートに向けた初期段階の変更が加えられ、今後の発展が期待されます。古いMacユーザーにとって、最新のmacOSを利用できる可能性が広がることは大きな利点です。
前後の記事
関連記事
-
OCLP1.5.0以降では更新方法が変更される 旧来の.appは非推奨に。
-
米Apple、M2 ProおよびM2 Maxを搭載した新しいMacBook Proを発表
-
macOS Sonoma 14.1を正式リリース、ミュージックアプリの改善、暗号化された外部ドライブのマウント時の問題を修正など
-
OCLPを使用してインストールしたMacのうち、OTAでアップグレードしない方がいい機種まとめ
-
OpenCore Legacy Patcher 1.3.0が公開 ―macOS 14.2でのグラフィックスをサポートする重要な変更
-
macOS Ventura 13.4を正式リリース、Apple Watchを使用してのMacの自動ロック解除が利用できないの問題の解決など
-
Apple、macOS Sonoma 14.3を正式リリース – Apple Musicやシステム設定に新機能
-
OpenCore Legacy Patcher 1.4.3が公開 ―非Metal MacでもmacOS Sonoma 14.4/14.4.1へアップデート可能に
コメントを残す