Phát triển nhân hệ điều hành Android

Trang này mô tả cách phát triển nhân hệ điều hành Android trên thiết bị Cuttlefish.

Tệp kê khai hạt nhân được hỗ trợ

Mực ống hỗ trợ các tệp kê khai nhân sau đây trên các bản phát hành GSI chính và AOSP (Dự án nguồn mở Android).

  • Vào ngày aosp-main
    • common-android14-6.1
    • common-android14-5.15
    • common-android-mainline
  • Vào ngày aosp-android13-gsi
    • common-android13-5.15
    • common-android13-5.10
  • Vào ngày aosp-android12-gsi
    • common-android12-5.10
    • common-android12-5.4
    • common-android-4.19-stable
  • Vào ngày aosp-android11-gsi
    • common-android11-5.4
    • common-android-4.19-stable
    • common-android-4.14-stable

Sau đây là các nguồn nhân để phát triển nhân hệ điều hành trên các thiết bị Cuttlefish.

Phát triển nhân hệ điều hành Android

Để phát triển nhân trên thiết bị mực nang, hãy làm theo các bước sau:

  1. Sao chép tệp kê khai kho lưu trữ nhân hệ điều hành thích hợp cho thiết bị Mực nang của bạn và thực hiện bất kỳ thay đổi nào.

    mkdir common-android14-6.1
    cd common-android14-6.1
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1
    repo sync -c -j$(nproc) -q
    
  2. Tạo nhân hệ điều hành và ổ đĩa ramdisk. Để biết thêm thông tin, hãy xem Xây dựng mô-đun nhà cung cấp cho thiết bị ảo.

    tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_dist
    

    Nếu sử dụng common-android-4.19-stable, common-android-4.14-stable hoặc Tệp kê khai nhân common-android11-5.4, chạy:

    BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh && BUILD_CONFIG=common-modules/virtual-device/build.config.cuttlefish.x86_64 build/build.sh
    

    Thay vì tạo cục bộ (để tránh tải xuống nguồn kernel, thiết lập môi trường phát triển nhân hệ điều hành), bạn có thể tải các cấu phần phần mềm tại ci.android.com.

  3. Khởi chạy hạt nhân và ổ đĩa cứng bằng Mực ống.

    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
    

    Nếu khởi chạy một nhân hệ điều hành không phải GKI (bất kỳ giá trị nào bằng hoặc thấp hơn 4.19), bỏ qua đối số -initramfs_path.

    Nếu bạn chạy nhân trên phiên bản aarch64 của Mực ống, hãy sử dụng Cấu hình bản dựng aarch64 và sử dụng cấu phần phần mềm Image thay vì bzImage.

    cvd start \
        -kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-5.15/dist/Image \
        -initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-5.15/dist/initramfs.img