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
Voici les sources du noyau pour le développement du noyau sur les appareils Cuttlefish.
kernel/common-android-mainline
kernel/common-android16-6.12
kernel/common-android15-6.6
kernel/common-android14-6.1
kernel/common-android14-5.15
kernel/common-android13-5.15
kernel/common-android13-5.10
Développer des noyaux Android
Pour développer des noyaux sur des appareils Cuttlefish, procédez comme suit :
Clonez le fichier manifeste du dépôt du noyau approprié pour votre appareil Cuttlefish et apportez les modifications souhaitées.
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
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 les fichiers manifestes du noyau
common-android-4.19-stable
,common-android-4.14-stable
oucommon-android11-5.4
, exécutez la commande suivante: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.
Lancez le noyau et 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 noyau non GKI (version 4.19 ou antérieure), omettez l'argument
-initramfs_path
.Si vous lancez le noyau sur une version aarch64 de Cuttlefish, utilisez la configuration de compilation
aarch64
et utilisez l'artefactImage
au lieu debzImage
.cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img