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.
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, }
Để 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àodevice/google/cuttlefish/shared/config/config_ big_phone .json
bằng cách thực hiện như sau: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àodevice/google/cuttlefish/shared/config/Android.bp
.prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
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)
Tạo một tệp
android_info.txt
và gắn cấu hìnhbig_phone
vào tệp bằng cách thêm dòng sau vàodevice/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
Gắn nhãn loại thiết bị bằng cấu hình
big_phone
bằng cách điềndevice/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt
với nội dung sau:config=big_phone