Ta strona opisuje, jak utworzyć niestandardowe urządzenie Cuttlefish. Cuttlefish obejmuje wstępnie zdefiniowane typy urządzeń w różnych formatach, jak podano w AndroidProducts.mk
. Oprócz ogólnych opcji dostosowywania urządzenia opisanych w artykule Dodawanie nowego urządzenia możesz stosować ustawienia specyficzne dla Kutlefish, takie jak wstępnie skonfigurowane konfiguracje płyty głównej urządzenia wirtualnego (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), wstępnie skompilowane jądra, wstępnie skompilowane programy rozruchowe, właściwości dostawcy, konfiguracje systemu, obsługę wirtualizacji zagnieżdżonej i opcje wyświetlania. Pełną listę parametrów czasu kompilacji, które można dostosować, znajdziesz w artykule device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
.
Podane niżej kroki pokazują, jak utworzyć fikcyjne urządzenie x86-64big_phone
, które jest 10 razy większe od zwykłego urządzenia Cuttlefish.
Dziedziczenie z dotychczasowego celu
Aby odziedziczyć ustawienia z dotychczasowego celu:
- Utwórz katalog
device/google/cuttlefish/vsoc_x86_64/big_phone
. - Utwórz w tym katalogu plik
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)
Dodawanie celu dotyczącego lunchu
Wstaw do pliku device/google/cuttlefish/AndroidProducts.mk
obiekt lunch
:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phone
Definiowanie konfiguracji JSON
Aby uruchomić urządzenie Cuttlefish, utwórz plik konfiguracji JSON o nazwie big_phone.json
z hierarchiczną strukturą reprezentującą właściwości urządzenia. W pliku konfiguracyjnym JSON możesz na przykład określić opcje takie jak pamięć RAM przydzielona maszynie wirtualnej i konfiguracja wyświetlacza. Ten plik nie musi znajdować się w drzewie AOSP.
Szczegółowe informacje o formacie JSON dla konfiguracji znajdziesz w artykule Konfiguracje kanoniczne.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Aby uruchomić konfigurację, uruchom:
cvd create --config_file=big_phone.json
Uruchom launch_cvd (starsza wersja)
Niektóre właściwości konfiguracji są niedostępne w hierarchicznej konfiguracji w formacie JSON. W takich konfiguracjach możesz ustawić flagę launch_cvd
z domyślnymi wartościami ze słownika JSON na jednym poziomie. Pełną listę wszystkich opcji konfiguracji znajdziesz w pliku cf_flags_validator.cpp
.
Poniżej opisujemy przykładowe zastąpienie domyślnych wartości opcji flagi launch_cvd
za pomocą pliku konfiguracyjnego JSON i włączenie w programie uruchamiającym Cuttlefish możliwości uruchamiania niestandardowej konfiguracji.
Utwórz plik konfiguracji JSON
device/google/cuttlefish/shared/config/config_big_phone.json
z niestandardowymi wartościami.{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }
Aby umożliwić ładowarce Cuttlefish uruchamianie konfiguracji
big_phone
, upewnij się, że ma ona dostęp do plikudevice/google/cuttlefish/shared/config/config_big_phone.json
. Aby to zrobić:Zadeklaruj artefakt JSON jako artefakt kompilacji, dodając sekwencję
prebuilt_etc_host
w plikudevice/google/cuttlefish/shared/config/Android.bp
.prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
Dodaj deklarację artefaktu kompilacji do programu uruchamiającego Cuttlefish, wykonując te czynności w pliku
device/google/cuttlefish/shared/device.mk
.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
Utwórz plik
android_info.txt
i powiązać z nim plik konfiguracjibig_phone
, dodając do plikudevice/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mk
ten wiersz:TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
Oznacz typ urządzenia konfiguracją
big_phone
, wypełniając poledevice/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
tymi danymi:config=big_phone