Développer des noyaux Android

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

Manifestes du noyau pris en charge

Cuttlefish prend en charge les manifestes du noyau suivants dans les versions principales et AOSP GSI.

  • Sur aosp-main
    • common-android14-6.1
    • common-android14-5.15
    • common-android-mainline
  • 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 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, suivez ces étapes :

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

    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. Construisez le noyau et le disque virtuel. Pour plus d'informations, consultez Création des modules fournisseur pour le périphérique virtuel .

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

    Si vous utilisez les manifestes du 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 construire localement (pour éviter de télécharger les sources du noyau et de configurer un environnement de développement du noyau), vous pouvez télécharger les artefacts pertinents sur ci.android.com.

  3. Lancez le noyau et le disque virtuel 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 (quelque chose de 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 build aarch64 et utilisez 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