Tworzenie hybrydowego urządzenia Cuttlefish

Na tej stronie dowiesz się, jak utworzyć urządzenie hybrydowe Cuttlefish (CHD).

CHD to hybrydowe wirtualne urządzenie Cuttlefish, które zamiast obrazu systemu Cuttlefish uruchamia obraz systemu urządzenia fizycznego na interfejsach HAL urządzenia. Daje to następujące korzyści:

  • Wczesne opracowywanie i testowanie: CHD umożliwiają wczesne opracowywanie i testowanie oprogramowania systemowego nowej generacji, zanim będzie dostępny sprzęt fizyczny.

  • Skalowalność: CHDs ułatwiają rozszerzanie możliwości programowania i testowania.

Tworzenie obrazu CHD

Aby utworzyć obraz CHD, wykonaj te czynności:

  1. Wygeneruj pliki docelowe dla celu dostawcy i urządzenia fizycznego za pomocą make dist. Wygeneruj pliki docelowe dostawcy, korzystając z jednej z tych opcji:

    • Istniejący pełny cel Cuttlefish
    • Element docelowy Cuttlefish, który tworzy tylko pliki dostawcy Cuttlefish. Więcej informacji znajdziesz w artykule Tworzenie celu dostawcy Cuttlefish.
  2. Połącz 2 pliki docelowe w 1 plik docelowy CHD i wygeneruj obrazy CHD z pliku docelowego CHD, uruchamiając skrypt build_cf_hybrid_device.py. Ten skrypt łączy 2 pliki docelowe w plik docelowy CHD za pomocą polecenia merge_target_files.py i generuje obrazy CHD z pliku docelowego CHD za pomocą polecenia 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 docelowego elementu dostawcy Cuttlefish

Aby utworzyć docelowy obraz Cuttlefish tylko dla dostawcy, wykonaj te czynności:

Za pomocą aosp_cf_vendor.mk możesz zdefiniować aosp_cf_arm64_phone_vendor cel, którego możesz użyć jako pliku docelowego dostawcy dla obrazu CHD.

  1. dziedziczyć element docelowy Cuttlefish, który tworzy pełne artefakty;

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. Określ nazwę elementu docelowego.

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. Wyłą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