Na tej stronie dowiesz się, jak utworzyć hybrydowe urządzenie Cuttlefish (CHD).
CHD to hybrydowe wirtualne urządzenie Cuttlefish, które zamiast obrazu systemu Cuttlefish uruchamia obraz systemu urządzenia fizycznego w HAL-ach urządzenia. Dzięki temu:
Wczesne testowanie i tworzenie: CHD umożliwiają wczesne testowanie i tworzenie oprogramowania systemowego nowej generacji, zanim będzie dostępny sprzęt fizyczny.
Skalowalność: CHD ułatwiają rozszerzanie możliwości tworzenia i testowania.
Tworzenie obrazu CHD
Aby utworzyć obraz CHD:
Wygeneruj pliki docelowe dla docelowego dostawcy i urządzenia fizycznego za pomocą polecenia
make dist. Wygeneruj pliki docelowe dostawcy, korzystając z jednej z tych opcji:- Istniejący pełny cel Cuttlefish.
- Cel Cuttlefish, który tworzy tylko pliki dostawcy Cuttlefish. Więcej informacji znajdziesz w sekcji Tworzenie celu dostawcy Cuttlefish.
Połącz 2 pliki docelowe w plik docelowy CHD i wygeneruj obrazy CHD z pliku docelowego CHD, uruchamiając
build_cf_hybrid_device.pyskrypt. Ten skrypt łączy 2 pliki docelowe w plik docelowy CHD za pomocąmerge_target_files.pyi generuje obrazy CHD z pliku docelowego CHD za pomocąimg_from_target_files.python3 tools/treble/cuttlefish/build_cf_hybrid_device.py \ --framework_target_files_zip <physical_device_target_files.zip> \ --vendor_target_files_zip <cuttlefish_device_target_files.zip> \ --otatools_zip <cuttlefish_otatools.zip> \ --target chd \ --output_dir <output_directory>
Tworzenie celu dostawcy Cuttlefish
Za pomocą aosp_cf_vendor.mk możesz zdefiniować cel
aosp_cf_arm64_phone_vendor, którego możesz używać jako pliku docelowego dostawcy
dla obrazu CHD.
Aby utworzyć cel tylko dla dostawcy Cuttlefish:
Odziedzicz cel Cuttlefish, który tworzy pełne artefakty:
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)Zdefiniuj nazwę celu:
PRODUCT_NAME := aosp_cf_arm64_phone_vendorWyłącz niepotrzebne kompilacje z pełnych artefaktów:
PRODUCT_BUILD_SYSTEM_IMAGE := false PRODUCT_BUILD_SYSTEM_OTHER_IMAGE := false PRODUCT_BUILD_PRODUCT_IMAGE := false PRODUCT_BUILD_SYSTEM_EXT_IMAGE := false PRODUCT_BUILD_SUPER_PARTITION := false TARGET_SKIP_OTA_PACKAGE := true
Wybieranie środowiska hosta do uruchamiania CHD
Aby skonfigurować skalowalne środowisko hosta do uruchamiania CHD opartych na ARM64 i zarządzania nimi, wybierz konfigurację na podstawie swojego procesu:
Google Cloud C4A bare metal (zalecane): instancje Google Cloud C4A bare metal, takie jak
c4a-standard-96-metallubc4a-highmem-96-metal, zapewniają natywną akcelerację sprzętową ARM64 KVM opartą na procesorach Google Axion. Ta konfiguracja zapewnia wysoką wydajność i skalowalność wykonywania CHD ARM64 w chmurze bez obciążenia związanego z zagnieżdżoną wirtualizacją. Ponadto, orkiestracja w chmurze OmniLab ATS integruje się zc4a-metal, aby zautomatyzować przydzielanie urządzeń, orkiestrację testów i zarządzanie infrastrukturą.Ręczna konfiguracja hosta lub konfiguracja lokalna (alternatywa): jeśli używasz niestandardowego sprzętu ARM lokalnie lub w laboratorium albo ręcznie konfigurujesz środowisko hosta bez OmniLab ATS, zapoznaj się z artykułem Uruchamianie Cuttlefish na serwerze lokalnym.