このページでは、カスタマイズした Cuttlefish デバイスを作成する方法について説明します。Cuttlefish には、AndroidProducts.mk
に示されているように、さまざまなフォーム ファクタの事前定義済みのデバイスタイプがあります。「新しいデバイスを追加する」に記載されている一般的なデバイス カスタマイズ オプションのほかに、仮想デバイスのボード構成プリセット(vsoc_x88_64、vsoc_arm64、vsoc_riscv64)、カーネル事前ビルド、ブートローダー事前ビルド、ベンダー プロパティ、システム構成、ネスト仮想化サポート、ディスプレイ オプションなど、Cuttlefish 固有のカスタマイズが可能です。カスタマイズ可能なビルド時間パラメータの完全なリストについては、device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
をご覧ください。
通常の Cuttlefish デバイスのサイズの 10 倍の架空の x86-64 big_phone
デバイスを作成する手順を以下に示します。
既存のターゲットから継承する
既存のターゲットから継承するには:
device/google/cuttlefish/vsoc_x86_64/big_phone
ディレクトリを作成します。- このディレクトリ内に
aosp_cf.mk
ファイルを作成します。
$(call inherit-product, device/google/cuttlefish/vsoc_x86_64_phone.mk)
PRODUCT_NAME: big_phone
PRODUCT_DEVICE: vsoc_x86_64
PRODUCT_MANUFACTURER := My Company
PRODUCT_MODEL: My Company very large phone
PRODUCT_VENDOR_PROPERTIES += \
ro.soc.manufacturer=$(PRODUCT_MANUFACTURER) \
ro.soc.model=$(PRODUCT_DEVICE)
lunch ターゲットを追加する
lunch
ターゲットを device/google/cuttlefish/AndroidProducts.mk
ファイルに挿入します。
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phone
JSON 構成を定義する
Cuttlefish デバイスを起動するには、デバイス プロパティを表す階層構造の big_phone.json
という JSON 構成ファイルを作成します。たとえば、JSON 構成ファイルで、VM に割り当てる RAM やディスプレイの構成などのオプションを指定できます。このファイルを AOSP ツリーに入れる必要はありません。構成の JSON 形式について詳しくは、正規設定をご覧ください。
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
構成を起動するには、以下のコマンドを実行します。
cvd create --config_file=big_phone.json
launch_cvd(従来版)を実行する
一部の構成プロパティは階層構造の JSON 構成形式では指定できません。こうした構成については、シングルレベルの JSON ディクショナリから launch_cvd
フラグのデフォルト値を設定できます。すべての構成オプションの完全なリストについては、cf_flags_validator.cpp
をご覧ください。
以下に、JSON 構成ファイルを使用して launch_cvd
フラグ オプションのデフォルト値をオーバーライドし、Cuttlefish ランチャーを有効にしてカスタムの構成を起動する方法の例について説明します。
カスタム値を含む JSON 構成ファイル
device/google/cuttlefish/shared/config/config_big_phone.json
を作成します。{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }
Cuttlefish ランチャーで
big_phone
構成を起動するため、以下を行ってdevice/google/cuttlefish/shared/config/config_big_phone.json
ファイルへのアクセス権を持つようにします。device/google/cuttlefish/shared/config/Android.bp
ファイルにprebuilt_etc_host
スタンザを追加して、JSON アーティファクトをビルド アーティファクトとして宣言します。prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
device/google/cuttlefish/shared/device.mk
で以下を実行して、結果のビルド アーティファクト宣言を Cuttlefish ランチャーに追加します。$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
android_info.txt
ファイルを作成し、device/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mk
に以下の行を追加してそのファイルにbig_phone
構成を結び付けます。TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
以下のコマンドで
device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
を生成して、big_phone
構成のデバイスタイプにラベルを付けます。config=big_phone