이 페이지에서는 맞춤설정된 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 타겟 추가
device/google/cuttlefish/AndroidProducts.mk
파일에 lunch
타겟을 삽입합니다.
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 start --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