このページでは、Cuttlefish を使用して AOSP ビルドを起動する方法について説明します。
KVM の対応状況を確認する
Cuttlefish は仮想デバイスのため、ホストマシンで利用可能な仮想化に依存しています。
ホストマシンのターミナルで、カーネルベースの仮想マシン(KVM)による仮想化に対応していることを確認します。
grep -c -w "vmx\|svm" /proc/cpuinfo
このコマンドはゼロ以外の値を返します。
ARM64 マシンで実行する場合は、/dev/kvm
を確認するのが最も直接的な方法です。
find /dev -name kvm
Cuttlefish を起動する
ターミナル ウィンドウで、ホストの Debian パッケージのダウンロード、ビルド、インストールを行います。
sudo apt install -y git devscripts equivs config-package-dev debhelper-compat golang curl
git clone https://github.com/google/android-cuttlefish
cd android-cuttlefish
tools/buildutils/build_packages.sh
sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
sudo usermod -aG kvm,cvdnetwork,render $USER
sudo reboot
再起動すると、その他のカーネル モジュールのインストールがトリガーされ、
udev
のルールが適用されます。Cuttlefish は Android Open-Source Platform(AOSP)の一部です。仮想デバイスのビルドは Android Continuous Integration のサイトにあります。すべての Android ビルドのインデックスは、Android Continuous Integration のサイト(http://ci.android.com/)で確認できます。
ブランチ名を入力します。デフォルトの
aosp-main
ブランチを使用するか、aosp-android13-gsi
などの Generic System Image(GSI)ブランチを使用します。aosp_cf_x86_64_phone ビルド ターゲットに移動し、最新ビルドの userdebug をクリックします。
userdebug の下の緑色のボックスをクリックし、このビルドを選択します。[Details] パネルに、このビルドに固有の詳細情報が表示されます。このパネルで、[Artifacts] をクリックすると、このビルドにアタッチされているすべてのアーティファクトのリストが表示されます。
[Artifacts] パネルで、Cuttlefish のアーティファクトをダウンロードします。
x86_64 の場合は
aosp_cf_x86_64_phone-img-xxxxxx.zip
アーティファクトを、ARM64 の場合はaosp_cf_arm64_only_phone-xxxxxx.zip
アーティファクトをクリックします。それぞれに、デバイス イメージが含まれています。ファイル名の「xxxxxx」には、このデバイスのビルド ID が入ります。パネルを下にスクロールし、
cvd-host_package.tar.gz
をダウンロードします。ホスト パッケージは、常にイメージと同じビルドからダウンロードしてください。
ローカル システムで、コンテナ フォルダを作成してパッケージを解凍します。
x86_64 アーキテクチャ:
mkdir cf
cd cf
tar -xvf /path/to/cvd-host_package.tar.gz
unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip
ARM64 アーキテクチャ:
mkdir cf
cd cf
tar -xvf /path/to/cvd-host_package.tar.gz
unzip /path/to/aosp_cf_arm64_only_phone-img-xxxxxx.zip
Cuttlefish を起動します。
HOME=$PWD ./bin/launch_cvd --daemon
Cuttlefish が adb を介して公開されることを確認する
実機と同様、Cuttlefish は Android Debug Bridge(adb)を介して公開されます。
Cuttlefish を起動した同じフォルダで、以下のコマンドを実行すると、ホストマシンで adb を介して利用可能なすべての Android デバイスのリストが表示されます。
./bin/adb devices
ウェブで仮想デバイスを確認して操作する
デフォルトでは、Cuttlefish は --start_webrtc
で起動し、ホストマシンのポート 8443 で WebView が有効になります。
仮想デバイスを確認して操作するには、ウェブブラウザで https://localhost:8443 にアクセスします。
詳しくは、Cuttlefish: WebRTC ストリーミングをご覧ください。
Cuttlefish を停止する
デバイスの起動に使用した同じディレクトリ内で仮想デバイスを停止します。
HOME=$PWD ./bin/stop_cvd