Core Bundle とローカルビルド
Launchpad の各マシンは、インストールされた 1 つの VPhone.bundle のバージョン、つまりその Core Bundle で動作します。このページでは、ローカルビルドをインストールする方法、マシンをそのビルドに移す方法、2 つのビルドを並べて比較する方法を説明します。
VPhone.bundle のビルドをテストする
-
リポジトリのルートでバンドルをビルドします。
-
インストールします。バンドルは
<version>-local.<hash>としてインストールされて標準のバンドルになり、実行ポリシーの例外が追加され、新しいvphone-vmの cdhash が許可され、ホストの事前チェックが実行されます。正確なバージョンは、インストールの結果と
bundle listに表示されます。 -
既存のマシンをそのバンドルに移します。
--update-environmentは新しい vphoned とフック用の dylib も配置し直すため、マシンを停止しておく必要があります。 -
マシンを起動して確認します。
ヘルパーの認証は 5 分間有効です。期限が切れた後、ヘルパーを必要とする最初の手順では、ウィンドウで操作した場合と同じく、Mac で管理者パスワードを求められます。
既存の仮想マシンで永続シェーダキャッシュを有効にするための、1 回限りのカーネルとゲストの更新については、永続シェーダキャッシュをご覧ください。
2 つのビルドを比較する
標準のバンドルを変えずに両方をインストールし、それぞれに専用のマシンを用意します。
この方法で作成したマシンは、3 つの層すべてが異なります(下記をご覧ください)。1 つのブートチェーンでホストプログラムとゲスト環境だけを比較するには、ウィンドウでマシンを複製し、そのコピーの紐付けを変更します。
vm list に、各層がどのバンドルから来たかが表示されます。bundle remove は、マシンが紐付いているバージョンを拒否します。先にそれらのマシンの紐付けを変更するか、削除してください。
マシンとバンドルの紐付け
各マシンは、インストールされた 1 つのバージョンに紐付いています。紐付けは作成時に選ばれ、マシンのフォルダ内の launchpad.json に保存されます。バンドルをインストールしても、マシンの紐付けは変わりません。
マシンは 3 つの層からなり、それぞれ異なるタイミングでバンドルから取得されます。
後からブートチェーンのパッチを変更する
vphone-cli fw set-patches でパッチの選択を変更し、vphone-cli fw patches <vm> でまだゲストに反映されていないものを一覧表示します。Launchpad ではその数がインスペクタに表示されます。パッチの種類ごとに、ゲストに反映される方法が異なります。
標準のバンドル
default(標準)のバンドル(以前の名称は「active」)が決めるのは、次のことだけです。
--bundleを指定しないときにvm createが紐付けるバージョンexecとライブラリ全体に対するコマンドが使うバージョン
--keep-default を指定しない限り、新しくインストールしたバンドルが標準になります。Launchpad のセッションでマシンを初めて起動するときに、そのバンドルが一度だけチェックされます(実行ポリシーの例外、AMFI、ホストの事前チェック)。
バージョン名
ローカルビルドは <version>-local.<hash> としてインストールされます。ハッシュはバンドルのコード署名のシールから取られるため、同じバージョンの 2 つのビルドを並べて置けます。古いストアには、<version>-local や <version>-ci.<commit> が残っていることがあります。