Phát triển các tính năng của trình tải khởi động Android

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:

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:

  1. 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
  2. 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.

  3. 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
  4. Để 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
  5. 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--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.