Mengembangkan kernel Android

Halaman ini menjelaskan cara mengembangkan kernel Android di perangkat Cuttlefish.

Manifes kernel yang didukung

Cuttlefish mendukung manifes kernel berikut di cabang rilis terbaru Android dan rilis AOSP GSI.

  • Pada android-latest-release
    • common-android-mainline
  • Pada android-15.0.0_r36
    • common-android16-6.12
    • common-android15-6.6
    • common-android14-6.1
    • common-android14-5.15
  • Pada aosp-android13-gsi
    • common-android13-5.15
    • common-android13-5.10
  • Pada aosp-android12-gsi
    • common-android12-5.10
    • common-android12-5.4
    • common-android-4.19-stable
  • Pada aosp-android11-gsi
    • common-android11-5.4
    • common-android-4.19-stable
    • common-android-4.14-stable

Berikut adalah sumber kernel untuk pengembangan kernel di perangkat Cuttlefish.

Mengembangkan kernel Android

Untuk mengembangkan kernel di perangkat Cuttlefish, ikuti langkah-langkah berikut:

  1. Clone manifes repo kernel yang sesuai untuk perangkat Cuttlefish Anda dan buat perubahan apa pun.

    mkdir common-android-mainline
    cd common-android-mainline
    repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    repo sync -c -j$(nproc) -q
  2. Build kernel dan ramdisk. Untuk informasi selengkapnya, lihat Mem-build Modul Vendor untuk Perangkat Virtual.

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

    Jika menggunakan manifes kernel common-android-4.19-stable, common-android-4.14-stable, atau common-android11-5.4, jalankan:

    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

    Daripada mem-build secara lokal (untuk menghindari mendownload sumber kernel, menyiapkan lingkungan pengembangan kernel), Anda dapat mendownload artefak yang relevan di ci.android.com.

  3. Luncurkan kernel dan ramdisk dengan Cuttlefish.

    cvd create \
        -kernel_path=./out/virtual_device_x86_64/dist/bzImage \
        -initramfs_path=./out/virtual_device_x86_64/dist/initramfs.img

    Jika meluncurkan kernel non-GKI (apa pun pada atau di bawah versi 4.19), hapus argumen -initramfs_path.

    Jika Anda meluncurkan kernel di Cuttlefish versi aarch64, gunakan konfigurasi build aarch64 dan gunakan artefak Image, bukan bzImage.

    cvd create \
        -kernel_path=./out/virtual_device_aarch64/dist/Image \
        -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img