Développer des noyaux Android

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

Fichiers manifestes de kernel compatibles

Cuttlefish est compatible avec les fichiers manifestes de kernel suivants sur les versions principales et GSI AOSP.

  • Le aosp-main
    • common-android-mainline
    • common-android16-6.12
    • common-android15-6.6
    • common-android14-6.1
    • common-android14-5.15
  • Le aosp-android13-gsi
    • common-android13-5.15
    • common-android13-5.10
  • Le aosp-android12-gsi
    • common-android12-5.10
    • common-android12-5.4
    • common-android-4.19-stable
  • Le aosp-android11-gsi
    • common-android11-5.4
    • common-android-4.19-stable
    • common-android-4.14-stable

Vous trouverez ci-dessous les sources du noyau pour le développement du noyau sur les appareils Cuttlefish.

Développer des noyaux Android

Pour développer des noyaux sur des appareils Cuttlefish, procédez comme suit:

  1. Clonez le fichier manifeste du dépôt du kernel 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 ramdisk. Pour en savoir plus, consultez la section 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 des fichiers manifestes de kernel 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 compiler en local (pour éviter de télécharger la source du kernel et de configurer un environnement de développement du kernel), vous pouvez télécharger les artefacts pertinents sur ci.android.com.

  3. Lancez le kernel et le ramdisk 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 kernel autre que GKI (version 4.19 ou inférieure), omettez l'argument -initramfs_path.

    Si vous lancez le noyau sur une version aarch64 de Cuttlefish, utilisez la configuration de compilation aarch64 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