Mực nang: Tạo một thiết bị tùy chỉnh

Trang này mô tả cách tạo một thiết bị Mực nang tùy chỉnh. Mực nang bao gồm các loại thiết bị được xác định trước ở các hệ số dạng khác nhau như được liệt kê trong AndroidProducts.mk . Ngoài các tùy chọn tùy chỉnh thiết bị chung được mô tả trong Thêm thiết bị mới , bạn có thể thực hiện các tùy chỉnh dành riêng cho Cuttlefish chẳng hạn như cài đặt trước cấu hình bo mạch thiết bị ảo (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), bản dựng sẵn kernel, bản dựng sẵn bộ nạp khởi động, thuộc tính nhà cung cấp, cấu hình hệ thống, lồng nhau hỗ trợ ảo hóa và các tùy chọn hiển thị. Để biết danh sách đầy đủ các tham số thời gian xây dựng có thể được tùy chỉnh, hãy xem device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk .

Các bước sau đây mô tả cách tạo một thiết bị big_phone x86-64 hư cấu có kích thước gấp mười lần thiết bị Mực nang thông thường.

Kế thừa từ mục tiêu hiện có

Để kế thừa từ một mục tiêu hiện có:

  • Tạo thư mục device/google/cuttlefish/vsoc_x86_64/ big_phone .
  • Tạo tệp aosp_cf.mk trong thư mục đó.
$(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)

Thêm mục tiêu ăn trưa

Chèn mục tiêu lunch vào device/google/cuttlefish/AndroidProducts.mk :

PRODUCT_MAKEFILES := \
  ...
  big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
  ...
lunch big_phone

Xác định cấu hình JSON

Để khởi chạy thiết bị Mực nang, hãy tạo tệp cấu hình JSON có tên big_phone .json với cấu trúc phân cấp biểu thị các thuộc tính của thiết bị. Ví dụ: trong tệp cấu hình JSON, bạn có thể chỉ định các tùy chọn như RAM được phân bổ cho VM và cấu hình hiển thị. Tệp này không nhất thiết phải nằm trong cây AOSP. Để biết chi tiết về định dạng JSON cho cấu hình, hãy xem Cấu hình Canonical .

{
  "instances":
      [
        {
          "vm": {
            "memory_mb": 40960,
          },
          "graphics": {
            "displays": [
              {
                "width": 7200,
                "height": 12800,
                "dpi": 320
              }
            ]
          }
        }
      ]
}

Để khởi chạy cấu hình, hãy chạy:

cvd start --config_file=big_phone.json

Chạy launch_cvd (cũ)

Một số thuộc tính cấu hình nhất định không có sẵn ở định dạng cấu hình JSON phân cấp. Đối với các cấu hình như vậy, bạn có thể đặt giá trị mặc định của cờ launch_cvd từ từ điển JSON một cấp. Để biết danh sách đầy đủ tất cả các tùy chọn cấu hình, hãy xem cf_flags_validator.cpp .

Phần sau đây mô tả ví dụ về cách ghi đè các giá trị mặc định của tùy chọn cờ launch_cvd bằng tệp cấu hình JSON và cho phép trình khởi chạy Cuttlefish khởi chạy cấu hình tùy chỉnh.

  1. Tạo tệp cấu hình JSON, device/google/cuttlefish/shared/config/config_ big_phone .json , với các giá trị tùy chỉnh.

    {
      "x_res": 7200,
      "y_res": 12800,
      "dpi": 320,
      "memory_mb": 40960,
      "ddr_mem_mb": 49150,
    }
    
  2. Để trình khởi chạy Mực nang khởi chạy cấu hình big_phone , hãy đảm bảo nó có quyền truy cập vào device/google/cuttlefish/shared/config/config_ big_phone .json bằng cách thực hiện như sau:

    1. Khai báo cấu phần phần mềm JSON dưới dạng cấu phần phần mềm bản dựng bằng cách thêm khổ thơ prebuilt_etc_host vào device/google/cuttlefish/shared/config/Android.bp .

      prebuilt_etc_host {
          name: "cvd_config_big_phone.json",
          src: "config_big_phone.json",
          sub_dir: "cvd_config",
      }
      
    2. Thêm phần khai báo cấu phần phần mềm bản dựng thu được vào trình khởi chạy Cuttlefish bằng cách chạy đoạn mã sau trong device/google/cuttlefish/shared/device.mk .

      $(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
      
    3. Tạo một tệp android_info.txt và gắn cấu hình big_phone vào tệp bằng cách thêm dòng sau vào device/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
      
    4. Gắn nhãn loại thiết bị bằng cấu hình big_phone bằng cách điền device/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt với nội dung sau:

      config=big_phone