Desarrollar núcleos de Android

Esta página describe cómo desarrollar kernels de Android en dispositivos Cuttlefish.

Manifiestos del kernel soportados

Cuttlefish admite los siguientes manifiestos del kernel en las versiones principales y AOSP GSI.

  • En aosp-main
    • common-android14-6.1
    • common-android14-5.15
    • common-android-mainline
  • En aosp-android13-gsi
    • common-android13-5.15
    • common-android13-5.10
  • En aosp-android12-gsi
    • common-android12-5.10
    • common-android12-5.4
    • common-android-4.19-stable
  • En aosp-android11-gsi
    • common-android11-5.4
    • common-android-4.19-stable
    • common-android-4.14-stable

Las siguientes son fuentes de kernel para el desarrollo de kernel en dispositivos Cuttlefish.

Desarrollar núcleos de Android

Para desarrollar kernels en dispositivos Cuttlefish, siga estos pasos:

  1. Clone el manifiesto del repositorio del kernel apropiado para su dispositivo Cuttlefish y realice los cambios.

    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. Construya el kernel y el disco ram. Para obtener más información, consulte Creación de módulos de proveedor para el dispositivo virtual .

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

    Si utiliza manifiestos common-android-4.19-stable , common-android-4.14-stable o common-android11-5.4 , ejecute:

    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
    

    En lugar de compilar localmente (para evitar descargar la fuente del kernel y configurar un entorno de desarrollo del kernel), puede descargar los artefactos relevantes en ci.android.com.

  3. Inicie el núcleo y el disco ram con Cuttlefish.

    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
    

    Si inicia un kernel que no es GKI (cualquier versión igual o inferior a 4.19), omita el argumento -initramfs_path .

    Si está iniciando el kernel en una versión aarch64 de Cuttlefish, use la configuración de compilación aarch64 y use el artefacto Image en lugar de 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