Développer des noyaux Android

Cette page explique comment développer des noyaux Android sur des appareils Cuttlefish.

Fichiers manifestes de noyau compatibles

Cuttlefish est compatible avec les fichiers manifestes de noyau suivants sur la branche de la dernière version d'Android et les versions GSI AOSP.

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

Voici les sources de noyau pour le développement de noyaux sur les appareils Cuttlefish.

Développer des noyaux Android

Pour développer des noyaux sur des appareils Cuttlefish :

  1. Clonez le fichier manifeste du dépôt de noyau approprié pour votre appareil Cuttlefish et apportez les modifications nécessaires.

    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. Créez le noyau et le disque RAM. Pour en savoir plus, consultez Créer les modules du fournisseur pour l'appareil virtuel.

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

    Si vous utilisez les fichiers manifestes de noyau common-android-4.19-stable, common-android-4.14-stable ou common-android11-5.4, exécutez :

    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

    Au lieu de créer localement (pour éviter de télécharger la source du noyau et de configurer un environnement de développement de noyau), vous pouvez télécharger les artefacts pertinents sur ci.android.com.

  3. Lancez le noyau et le disque RAM avec Cuttlefish.

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

    Si vous lancez un noyau non GKI (4.19 ou version antérieure), omettez l'argument -initramfs_path.

    Si vous lancez le noyau sur une version aarch64 de Cuttlefish, utilisez la aarch64 configuration de compilation et l'artefact Image au lieu de bzImage.

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