En esta página, se describe cómo desarrollar kernels de Android en dispositivos Cuttlefish.
Manifiestos de kernels admitidos
Cuttlefish admite los siguientes manifiestos de kernel en la rama de la versión más reciente de Android y en las versiones de GSI del AOSP.
- En
android-latest-releasecommon-android-mainline
- En
android-15.0.0_r36common-android16-6.12common-android15-6.6common-android14-6.1common-android14-5.15
- En
aosp-android13-gsicommon-android13-5.15common-android13-5.10
- En
aosp-android12-gsicommon-android12-5.10common-android12-5.4common-android-4.19-stable
- En
aosp-android11-gsicommon-android11-5.4common-android-4.19-stablecommon-android-4.14-stable
Las siguientes son fuentes de kernels para el desarrollo de kernels en dispositivos Cuttlefish.
kernel/common-android-mainlinekernel/common-android16-6.12kernel/common-android15-6.6kernel/common-android14-6.1kernel/common-android14-5.15kernel/common-android13-5.15kernel/common-android13-5.10
Cómo desarrollar Kernels de Android
Para desarrollar kernels en dispositivos Cuttlefish, sigue los pasos que aparecen a continuación:
Clona el manifiesto del repositorio de kernel correspondiente para tu dispositivo Cuttlefish y realiza cualquier cambio.
mkdir common-android-mainlinecd common-android-mainlinerepo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainlinerepo sync -c -j$(nproc) -qCompila el kernel y el ramdisk. Para obtener más información, consulta Cómo compilar módulos de proveedor para el dispositivo virtual.
tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_distSi usas los manifiestos de kernel
common-android-4.19-stable,common-android-4.14-stable, ocommon-android11-5.4, ejecuta:BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh && BUILD_CONFIG=common-modules/virtual-device/build.config.cuttlefish.x86_64 build/build.shEn lugar de compilar de forma local (para evitar descargar la fuente del kernel y configurar su entorno de desarrollo), puedes descargar los artefactos relevantes desde ci.android.com.
Ejecuta el kernel y el ramdisk con Cuttlefish.
cvd create \ -kernel_path=./out/virtual_device_x86_64/dist/bzImage \ -initramfs_path=./out/virtual_device_x86_64/dist/initramfs.imgSi ejecutas un kernel que no es de GKI (cualquier versión igual o inferior a 4.19), omite el argumento
-initramfs_path.Si ejecutas el kernel en una versión aarch64 de Cuttlefish, usa la configuración de compilación
aarch64y el artefactoImageen lugar debzImage.cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img