Na tej stronie opisano, jak stworzyć spersonalizowane urządzenie mątwy. Mątwy obejmują predefiniowane typy urządzeń w różnych obudowach, wymienione w AndroidProducts.mk
. Oprócz ogólnych opcji dostosowywania urządzenia opisanych w sekcji Dodawanie nowego urządzenia , możesz dokonać dostosowań specyficznych dla mątwy, takich jak wstępne ustawienia konfiguracji płyty urządzeń wirtualnych (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), gotowe wersje jądra, gotowe wersje bootloadera, właściwości dostawcy, konfiguracje systemu, zagnieżdżone obsługa wirtualizacji i opcje wyświetlania. Pełną listę parametrów czasu kompilacji, które można dostosować, znajdziesz na device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
.
Poniższe kroki opisują, jak utworzyć fikcyjne urządzenie big_phone
x86-64, które jest dziesięć razy większe od zwykłego urządzenia mątwy.
Dziedzicz z istniejącego celu
Aby dziedziczyć z istniejącego celu:
- Utwórz katalog
device/google/cuttlefish/vsoc_x86_64/ big_phone
. - Utwórz plik
aosp_cf.mk
w tym katalogu.
$(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)
Dodaj cel lunchowy
Wstaw cel lunch
do pliku device/google/cuttlefish/AndroidProducts.mk
:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phone
Zdefiniuj konfigurację JSON
Aby uruchomić urządzenie Cuttlefish, utwórz plik konfiguracyjny JSON o nazwie big_phone .json
o strukturze hierarchicznej reprezentującej właściwości urządzenia. Na przykład w pliku konfiguracyjnym JSON można określić opcje, takie jak pamięć RAM przydzielona dla maszyny wirtualnej i konfiguracja wyświetlacza. Plik ten nie musi znajdować się w drzewie AOSP. Aby uzyskać szczegółowe informacje na temat formatu JSON konfiguracji, zobacz Konfiguracje kanoniczne .
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Aby uruchomić konfigurację, uruchom:
cvd start --config_file=big_phone.json
Uruchom launch_cvd (starsza wersja)
Niektóre właściwości konfiguracji nie są dostępne w hierarchicznym formacie konfiguracji JSON. W przypadku takich konfiguracji można ustawić domyślne wartości flagi launch_cvd
z jednopoziomowego słownika JSON. Pełną listę wszystkich opcji konfiguracyjnych można znaleźć w cf_flags_validator.cpp
.
Poniżej opisano przykład, w jaki sposób zastąpić domyślne wartości opcji flagi launch_cvd
przy użyciu pliku konfiguracyjnego JSON i umożliwić programowi uruchamiającemu mątwy uruchomienie konfiguracji niestandardowej.
Utwórz plik konfiguracyjny 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 mątwy mógł uruchomić konfigurację
big_phone
, upewnij się, że ma dostęp dodevice/google/cuttlefish/shared/config/config_ big_phone .json
wykonując następujące czynności:Zadeklaruj artefakt JSON jako artefakt kompilacji, dodając sekcję
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 powstałą deklarację artefaktu kompilacji do programu uruchamiającego mątwy, uruchamiając następujące 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ąż konfiguracjębig_phone
z plikiem, dodając następujący wiersz dodevice/google/cuttlefish/vsoc_x86_64/ big_phone /aosp_cf.mk
:TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
Oznacz typ urządzenia za pomocą konfiguracji
big_phone
, wypełniającdevice/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt
następującymi informacjami:config=big_phone