یک دستگاه هیبریدی Cuttlefish بسازید

این صفحه نحوه ایجاد یک دستگاه هیبریدی Cuttlefish (CHD) را شرح می‌دهد.

یک CHD یک دستگاه مجازی ترکیبی Cuttlefish است که به جای یک تصویر سیستم Cuttlefish روی HAL های دستگاه، تصویر سیستم یک دستگاه فیزیکی را اجرا می‌کند. این مزایای زیر را ارائه می‌دهد:

  • توسعه و آزمایش اولیه: CHDها امکان توسعه و آزمایش اولیه نرم‌افزار سیستم نسل بعدی را قبل از در دسترس بودن سخت‌افزار فیزیکی فراهم می‌کنند.

  • مقیاس‌پذیری: CHDها گسترش آسان‌تر ظرفیت توسعه و آزمایش را تسهیل می‌کنند.

یک تصویر CHD ایجاد کنید

برای ایجاد یک تصویر CHD، مراحل زیر را دنبال کنید:

  1. با استفاده از make dist فایل‌های هدف را برای دستگاه هدف فروشنده و دستگاه فیزیکی ایجاد کنید. فایل‌های هدف فروشنده را با استفاده از یکی از گزینه‌های زیر تولید کنید:

    • یک هدف کامل موجود برای ماهی مرکب
    • یک هدف Cuttlefish که فقط فایل‌های فروشنده Cuttlefish را می‌سازد. برای اطلاعات بیشتر، به ایجاد یک هدف فروشنده Cuttlefish مراجعه کنید.
  2. دو فایل هدف را در یک فایل هدف CHD ترکیب کنید و با اجرای اسکریپت build_cf_hybrid_device.py ، تصاویر CHD را از فایل هدف CHD تولید کنید. این اسکریپت دو فایل هدف را با استفاده از merge_target_files.py در یک فایل هدف CHD ترکیب می‌کند و با استفاده img_from_target_files تصاویر CHD را از فایل هدف CHD تولید می‌کند.

    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>
    

یک هدف برای فروشنده Cuttlefish ایجاد کنید

شما می‌توانید aosp_cf_vendor.mk برای تعریف فایل هدف aosp_cf_arm64_phone_vendor استفاده کنید که می‌توانید از آن به عنوان فایل هدف فروشنده برای یک تصویر CHD استفاده کنید.

برای ایجاد یک هدف فقط برای فروشندگان Cuttlefish، این مراحل را دنبال کنید:

  1. هدف Cuttlefish را که مصنوعات کامل را می‌سازد، به ارث ببرید:

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. نام هدف را تعریف کنید:

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. غیرفعال کردن ساخت‌های غیرضروری از کل مصنوعات:

    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