Développer des noyaux Android

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

Fichiers manifestes de noyau compatibles

Settlefish prend en charge les fichiers manifestes de noyau suivants sur GSI principales et AOSP.

  • Le aosp-main
    • common-android14-6.1
    • common-android14-5.15
    • common-android-mainline
  • 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

Voici les sources de noyau pour le développement de 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 noyau approprié pour votre appareil Cuttlefish et n'apportez aucune modification.

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

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

    Si vous utilisez common-android-4.19-stable, common-android-4.14-stable ou Fichiers manifestes du noyau 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 localement (pour éviter de télécharger la source du noyau, configuration d'un environnement de développement de noyau), vous pouvez télécharger le logiciel des artefacts sur ci.android.com.

  3. Lancez le noyau et ramdisk avec 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 vous lancez un noyau non-GKI (tout élément 4.19), omettez l'argument -initramfs_path.

    Si vous lancez le noyau sur une version aarch64 de Cuttlefish, utilisez le la configuration de compilation aarch64 et d'utiliser l'artefact Image au lieu 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