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 wprowadzać zmiany specyficzne dla Cuttlefish, takie jak gotowe ustawienia konfiguracji płyty urządzenia wirtualnego (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), gotowe wersje jądra, gotowe ustawienia programu rozruchowego, właściwości zagnieżdżone, konfiguracje systemu i opcje wirtualizacji wyświetlacza. Pełną listę parametrów czasu kompilacji, które można dostosować, znajdziesz w sekcji 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 Cutletfish.
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
ze 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 na potrzeby konfiguracji znajdziesz w artykule Konfiguracje kanoniczne.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Aby uruchomić konfigurację, uruchom polecenie:
cvd create --config_file=big_phone.json
Uruchom launch_cvd (starsza wersja)
Niektóre właściwości konfiguracji są niedostępne w hierarchicznym formacie konfiguracji 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 konfiguracyjnych znajdziesz na stronie cf_flags_validator.cpp
.
Poniżej znajdziesz przykład zastępowania domyślnych wartości opcji flagi launch_cvd
za pomocą pliku konfiguracji JSON i włączania Cuttlefish w programie uruchamiającym konfigurację, aby uruchomić konfigurację niestandardową.
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 program uruchamiający Cuttlefish uruchomił konfigurację
big_phone
, upewnij się, że ma dostęp do plikudevice/google/cuttlefish/shared/config/config_big_phone.json
, wykonując te czynności:Zadeklaruj artefakt JSON jako artefakt kompilacji, dodając strofę
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 otrzymaną deklarację artefaktu kompilacji do programu uruchamiającego Cuttlefish, uruchamiając to polecenie w
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 elementami:config=big_phone