이 페이지에서는 Cuttlefish 기기에서 Android 커널을 개발하는 방법을 설명합니다.
지원되는 커널 메니페스트
Cuttlefish는 주요 버전과 AOSP GSI 버전에서 다음 커널 메니페스트를 지원합니다.
aosp-main
common-android14-6.1
common-android14-5.15
common-android-mainline
aosp-android13-gsi
common-android13-5.15
common-android13-5.10
aosp-android12-gsi
common-android12-5.10
common-android12-5.4
common-android-4.19-stable
aosp-android11-gsi
common-android11-5.4
common-android-4.19-stable
common-android-4.14-stable
다음은 Cuttlefish 기기에서 커널을 개발하기 위한 커널 소스입니다.
kernel/common-android14-6.1
kernel/common-android14-5.15
kernel/common-android13-5.15
kernel/common-android13-5.10
kernel/common-android-mainline
Android 커널 개발
Cuttlefish 기기에서 커널을 개발하려면 다음 단계를 따르세요.
사용 중인 Cuttlefish 기기에 적합한 커널 저장소 메니페스트를 클론하고 필요한 변경사항을 적용합니다.
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
커널과 ramdisk를 빌드합니다. 자세한 내용은 가상 기기의 공급업체 모듈 빌드를 참고하세요.
tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_dist
common-android-4.19-stable
,common-android-4.14-stable
또는common-android11-5.4
커널 메니페스트를 사용하는 경우 다음을 실행합니다.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
커널 소스를 다운로드하고 커널 개발 환경을 설정하지 않기 위해 로컬에서 빌드하는 대신 ci.android.com에서 관련 아티팩트를 다운로드할 수 있습니다.
Cuttlefish가 적용된 커널 및 ramdisk를 실행합니다.
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
비GKI 커널(4.19 및 이전 버전)을 실행하는 경우
-initramfs_path
인수를 생략합니다.Cuttlefish의 aarch64 버전에서 커널을 실행하는 경우
aarch64
빌드 구성을 사용하고bzImage
대신Image
아티팩트를 사용합니다.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