Trang này mô tả cách tạo một thiết bị kết hợp Cuttlefish (CHD).
CHD là một thiết bị Cuttlefish ảo kết hợp, chạy hình ảnh hệ thống của một thiết bị thực thay vì hình ảnh hệ thống Cuttlefish trên HAL của thiết bị. Điều này mang lại những lợi ích sau:
Phát triển và kiểm thử sớm: CHD cho phép phát triển và kiểm thử sớm phần mềm hệ thống thế hệ tiếp theo trước khi có phần cứng thực.
Khả năng mở rộng: CHD giúp bạn dễ dàng mở rộng năng lực phát triển và kiểm thử.
Tạo hình ảnh CHD
Để tạo một hình ảnh CHD, hãy làm theo các bước sau:
Tạo các tệp mục tiêu cho mục tiêu của nhà cung cấp và thiết bị thực bằng cách sử dụng
make dist. Tạo tệp mục tiêu của nhà cung cấp bằng một trong các lựa chọn sau:- Một mục tiêu Cuttlefish đầy đủ hiện có
- Một mục tiêu Cuttlefish chỉ tạo các tệp nhà cung cấp Cuttlefish. Để biết thêm thông tin, hãy xem bài viết Tạo mục tiêu nhà cung cấp Cuttlefish.
Kết hợp hai tệp đích thành một tệp đích CHD và tạo hình ảnh CHD từ tệp đích CHD bằng cách chạy tập lệnh
build_cf_hybrid_device.py. Tập lệnh này kết hợp hai tệp đích thành một tệp đích CHD bằng cách sử dụngmerge_target_files.pyvà tạo hình ảnh CHD từ tệp đích CHD bằng cách sử dụngimg_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>
Tạo mục tiêu của nhà cung cấp Cuttlefish
Bạn có thể sử dụng aosp_cf_vendor.mk để xác định mục tiêu aosp_cf_arm64_phone_vendor. Bạn có thể sử dụng mục tiêu này làm tệp mục tiêu của nhà cung cấp cho hình ảnh CHD.
Để tạo mục tiêu chỉ dành cho nhà cung cấp Cuttlefish, hãy làm theo các bước sau:
Kế thừa mục tiêu Cuttlefish tạo ra các cấu phần phần mềm hoàn chỉnh:
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)Xác định tên mục tiêu:
PRODUCT_NAME := aosp_cf_arm64_phone_vendorTắt các bản dựng không cần thiết khỏi các cấu phần phần mềm đầy đủ:
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
Chọn một môi trường lưu trữ để chạy CHD
Để thiết lập một môi trường máy chủ có khả năng mở rộng để chạy và quản lý các CHD dựa trên ARM64, hãy chọn một chế độ thiết lập dựa trên quy trình làm việc của bạn:
Máy chủ vật lý C4A của Google Cloud (nên dùng): Các phiên bản máy chủ vật lý C4A của Google Cloud, chẳng hạn như
c4a-standard-96-metalhoặcc4a-highmem-96-metal, cung cấp tính năng tăng tốc phần cứng KVM ARM64 gốc nhờ bộ xử lý Google Axion. Chế độ thiết lập này mang lại hiệu suất cao, khả năng thực thi có thể mở rộng cao cho CHD ARM64 trên đám mây mà không cần chi phí ảo hoá lồng nhau. Ngoài ra, OmniLab ATS Cloud Orchestration tích hợp vớic4a-metalđể tự động hoá việc phân bổ thiết bị, điều phối kiểm thử và quản lý cơ sở hạ tầng.Thiết lập máy chủ lưu trữ theo cách thủ công hoặc tại chỗ (phương án thay thế): Nếu bạn đang chạy trên phần cứng ARM tuỳ chỉnh tại địa phương hoặc trong phòng thí nghiệm, hoặc đang định cấu hình môi trường máy chủ lưu trữ theo cách thủ công mà không có OmniLab ATS, hãy xem phần Chạy Cuttlefish trên máy chủ tại chỗ.