Trang này mô tả cách tạo thiết bị Mực ống tuỳ chỉnh. Cuttlefish bao gồm các loại thiết bị được xác định trước ở nhiều kiểu dáng như được liệt kê trong AndroidProducts.mk
. Ngoài các tuỳ chọn tuỳ chỉnh thiết bị chung được mô tả trong phần Thêm thiết bị mới, bạn có thể tuỳ chỉnh dành riêng cho cá nhảy, chẳng hạn như các giá trị đặt trước cấu hình bảng thiết bị ảo (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), kernel tạo sẵn, tạo sẵn cho trình tải khởi động, thuộc tính của nhà cung cấp, cấu hình hệ thống, hỗ trợ ảo hoá lồng nhau và các tuỳ chọn hiển thị. Để biết danh sách đầy đủ các tham số thời gian xây dựng có thể tuỳ 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 giả định có kích thước gấp 10 lần so với một thiết bị mực ống thông thường.
Kế thừa từ mộ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 một 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 cho bữa trưa
Chèn mục tiêu lunch
vào tệp 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ị Cuttlefish, hãy tạo một tệp cấu hình JSON có tên big_phone.json
với cấu trúc phân cấp đại diện cho các thuộc tính thiết bị. Ví dụ: trong tệp cấu hình JSON, bạn có thể chỉ định các tuỳ chọn như RAM được phân bổ cho máy ảo và cấu hình màn hình. Tệp này không bắt buộc phải nằm trong cây AOSP.
Để biết thông tin chi tiết về định dạng JSON cho cấu hình, hãy xem phần Cấu hình chuẩn.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Để chạy cấu hình, hãy chạy:
cvd create --config_file=big_phone.json
Chạy launch_cvd (cũ)
Một số thuộc tính cấu hì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 cho cờ launch_cvd
từ từ điển JSON một cấp. Để biết danh sách đầy đủ tất cả tuỳ 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 các tuỳ chọn cờ launch_cvd
bằng tệp cấu hình JSON và cho phép trình chạy Cuttlefish chạy cấu hình tuỳ 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ị tuỳ chỉnh.{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }
Để trình chạy Cuttlefish khởi chạy cấu hình
big_phone
, hãy đảm bảo trình chạy này có quyền truy cập vào tệpdevice/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 bài thơ
prebuilt_etc_host
trong tệpdevice/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 nội dung khai báo cấu phần phần mềm bản dựng thu được vào trình chạy Cuttlefish bằng cách chạy lệnh sau trong
device/google/cuttlefish/shared/device.mk
.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
Tạo tệp
android_info.txt
và liên kết cấu hìnhbig_phone
với 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ền sẵndevice/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
như sau:config=big_phone