Trang này mô tả cách tạo, chạy và phát triển các tính năng của trình tải khởi động Android trên thiết bị Cuttlefish.
Nguồn AOSP (Dự án nguồn mở Android)
Để phát triển các tính năng của trình tải khởi động Android, hãy sử dụng cấu hình Cuttlefish của U-boot với Cuttlefish trong aosp-main
hoặc trên các nhánh hình ảnh hệ thống chung (GSI) cho Android 11 trở lên. Sau đây là các nguồn trong AOSP:
Tệp kê khai cho cấu hình Cuttlefish của U-boot (
u-boot-mainline
).
Phát triển trình tải khởi động
Để tạo, chạy và phát triển các tính năng của trình tải khởi động trên máy, hãy làm theo các bước sau:
Sao chép tệp kê khai cho nhánh Android của U-boot:
$ mkdir u-boot-mainline $ cd u-boot-mainline $ repo init -u https://android.googlesource.com/kernel/manifest -b u-boot-mainline $ repo sync -j$(nproc) -q
Tạo mục tiêu trình tải khởi động phù hợp với cấu trúc Cuttlefish. Ví dụ:
x86_64
$ tools/bazel run //u-boot:crosvm_x86_64_dist
aarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
Tệp nhị phân trình tải khởi động thu được (
u-boot.bin
cho arm64 vàu-boot.rom
cho x86_64) nằm trong$PATH_TO_REPO/out/u-boot-mainline/dist
.Khởi chạy thiết bị Cuttlefish bằng trình tải khởi động. Thêm tham số
pause_in_bootloader
để tắt tính năng tự động khởi động và cho phép bạn tương tác với trình tải khởi động.$ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=true
Để tương tác với trình tải khởi động, hãy kết nối với bảng điều khiển trình tải khởi động.
$ screen ~/cuttlefish_runtime/console
Khi hoàn tất các hoạt động tương tác với trình tải khởi động, hãy tiếp tục khởi động bằng cách nhập
boot
vào bảng điều khiển.
Kiểm thử quy trình của trình tải khởi động bằng nhiều hạt nhân
Để kiểm thử luồng trình tải khởi động bằng nhiều hạt nhân hoặc mô-đun hạt nhân, hãy truyền vào các cấu phần phần mềm mục tiêu (hạt nhân và mô-đun hạt nhân) bằng cách sử dụng đối số --kernel_path
và --initramfs_path
. Trình tập hợp lại đóng gói lại hình ảnh khởi động dựa trên các cấu phần phần mềm được truyền trong đối số.
cvd create \
-kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/bzImage \
-initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/initramfs.img
Để biết thêm thông tin, hãy xem bài viết Phát triển nhân Android.