Open2

[学習] Advanced Apple Debugging & Reverse Engineering

1. Getting Stated

動作環境:macOS11.6.1 Big Sur, Virtual Box Version 6.1.28 r147628 (Qt5.6.3)

安全にSIPを行う、Virtual Box上で

いきなりSIPを求められたので、Virtual BoxでmacOSの環境を用意するところから始めることにする。

https://qiita.com/minnsou/items/54491c01ac95a245b010

の「Catalina」を 「Big Sur」に読み替えて手順を進める。

https://www.virtualbox.org/wiki/Downloads

から、Virtural Box本体、Extension Packを順にダウンロードし、インストールする。

並行して、Mac App Store経由でmacOS Big Sur インストーラーのダウンロード。

…結局うまくいかず、Catalinaで同様に試すも、仮想マシンの起動に失敗する。

仮想マシン"macOS_Catalina"のセッションを開けませんでした。

The virtual machine 'macOS_Catalina' has terminated unexpectedly during startup with exit code 1 (0x1).

終了コード : NS_ERROR_FAILURE (0x80004005)
コンポーネント: MachineWrap
インターフェース: IMachine {85632c68-b5bb-4316-a900-5eb28d3413df}

Virtual Box本体をアンインストーラーでアンインストールしてインストールし直し、ホストOS側のMac本体を再起動した上で、起動をやり直したら何とかCatalinaの起動に成功した。

Virtual Box Window

Virtual Box上のmacOS VMでRecovery modeで起動する

SIPを無効にするには、一旦リカバリーモードで起動する必要がある。

しかし、Virtual Box上のmacOSを再起動して、アップルマークが出るまで⌘ + Rを押し続けても、リカバリーモードで起動することができなかった。

リカバリーモードで起動する手立てを探すうちに、その名も「
macos-virtualbox-vm」なるレポジトリのissueコメントで紹介されていた方法が有効だった。

macOS VM 内のターミナルで、次のコマンドを実行する:

sudo nvram recovery-boot-mode=unused && sudo shutdown -r now

すると、VMが再起動してリカバリーモードで起動する:

クリップボード・ファイルをホストOSとゲストOSで共有する

Virtual Boxで設定したいVMを選択し、 設定 > 一般 > 高度 とすると、[クリップボードの共有]と[ドラッグ&ドロップ]という設定項目があるので、無効(デフォルト)・ホストOSからゲストOS・ゲストOSからホストOS・双方向のなかから一つ選択する。

ゲストOS上にXcodeをダウンロードするのも、ホストOSからやったほうが絶対速かった…

インストーラーを削除する

https://apple.stackexchange.com/a/346275

参考

https://github.com/geerlingguy/macos-virtualbox-vm

ターミナルのXcode stderrタブで、ttyコマンドを打って入力を受け付けるようにした。

作成者以外のコメントは許可されていません