使ってみる

このページでは、Cuttlefish を使用して AOSP ビルドを起動する方法について説明します。

KVM の対応状況を確認する

Cuttlefish は仮想デバイスのため、ホストマシンで利用可能な仮想化に依存しています。

ホストマシンのターミナルで、カーネルベースの仮想マシン(KVM)による仮想化に対応していることを確認します。

grep -c -w "vmx\|svm" /proc/cpuinfo

このコマンドはゼロ以外の値を返します。

ARM64 マシンで実行する場合は、/dev/kvm を確認するのが最も直接的な方法です。

find /dev -name kvm

Cuttlefish を起動する

  1. ターミナル ウィンドウで、ホストの 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 のルールが適用されます。

  2. Cuttlefish は Android Open-Source Platform(AOSP)の一部です。仮想デバイスのビルドは Android Continuous Integration のサイトにあります。すべての Android ビルドのインデックスは、Android Continuous Integration のサイト(http://ci.android.com/)で確認できます。

  3. ブランチ名を入力します。デフォルトの aosp-main ブランチを使用するか、aosp-android13-gsi などの Generic System Image(GSI)ブランチを使用します。

  4. aosp_cf_x86_64_phone ビルド ターゲットに移動し、最新ビルドの userdebug をクリックします。

  5. userdebug の下の緑色のボックスをクリックし、このビルドを選択します。[Details] パネルに、このビルドに固有の詳細情報が表示されます。このパネルで、[Artifacts] をクリックすると、このビルドにアタッチされているすべてのアーティファクトのリストが表示されます。

  6. [Artifacts] パネルで、Cuttlefish のアーティファクトをダウンロードします。

    1. x86_64 の場合は aosp_cf_x86_64_phone-img-xxxxxx.zip アーティファクトを、ARM64 の場合は aosp_cf_arm64_only_phone-xxxxxx.zip アーティファクトをクリックします。それぞれに、デバイス イメージが含まれています。ファイル名の「xxxxxx」には、このデバイスのビルド ID が入ります。

    2. パネルを下にスクロールし、cvd-host_package.tar.gz をダウンロードします。ホスト パッケージは、常にイメージと同じビルドからダウンロードしてください。

  7. ローカル システムで、コンテナ フォルダを作成してパッケージを解凍します。

    1. 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

    2. 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

  8. 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