Trang này mô tả cách xây dựng, chạy và phát triển các tính năng của bộ tải khởi động Android trên thiết bị Mực nang.
Nguồn AOSP
Để phát triển các tính năng của bộ nạp 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) dành cho Android 11 trở lên. Sau đây là các nguồn trong AOSP:
Bản kê khai cấu hình Mực nang của U-boot (
u-boot-mainline
).
Phát triển bộ nạp khởi động
Để xây dựng, chạy và phát triển các tính năng của bộ nạp khởi động cục bộ, hãy làm theo các bước sau:
Sao chép bảng 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
Xây dựng mục tiêu bootloader phù hợp với kiến trúc Mực nang của bạn. 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 bootloader kết quả (
u-boot.bin
cho arm64 vàu-boot.rom
cho x86_64) được tìm thấy trong$PATH_TO_REPO/out/u-boot-mainline/dist
.Khởi chạy thiết bị Mực nang bằng bộ nạp khởi động. Bao gồ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 bộ nạp 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 bootloader, hãy kết nối với bảng điều khiển bootloader.
$ screen ~/cuttlefish_runtime/console
Khi hoàn tất tương tác với bootloader, hãy tiếp tục khởi động bằng cách gõ
boot
vào bảng điều khiển.
Kiểm tra luồng bootloader với các kernel khác nhau
Để kiểm tra luồng bộ nạp khởi động với các hạt nhân hoặc mô-đun hạt nhân khác nhau, hãy chuyển vào các tạo phẩm đích (nhân và mô-đun hạt nhân) bằng cách sử dụng các đối số --kernel_path
và --initramfs_path
. Trình biên dịch mã đóng gói lại các ảnh khởi động dựa trên các tạo phẩm được truyền trong các đối số.
cvd start \
-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 Phát triển hạt nhân Android .