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 kernels en la rama de la versión más reciente de Android y las versiones de GSI del AOSP.
- En
android-latest-release
common-android-mainline
- En
android-15.0.0_r36
common-android16-6.12
common-android15-6.6
common-android14-6.1
common-android14-5.15
- En
aosp-android13-gsi
common-android13-5.15
common-android13-5.10
- En
aosp-android12-gsi
common-android12-5.10
common-android12-5.4
common-android-4.19-stable
- En
aosp-android11-gsi
common-android11-5.4
common-android-4.19-stable
common-android-4.14-stable
Las siguientes son fuentes de kernels para el desarrollo de kernels en dispositivos 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
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-mainline
cd common-android-mainline
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -c -j$(nproc) -q
Compila 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_dist
Si 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.sh
En 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.img
Si 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
aarch64
y el artefactoImage
en lugar debzImage
.cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img