2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
Android 커널 개발
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
이 페이지에서는 Cuttlefish 기기에서 Android 커널을 개발하는 방법을 설명합니다.
지원되는 커널 메니페스트
Cuttlefish는 Android 최신 출시 브랜치 및 AOSP GSI 출시에서 다음 커널 메니페스트를 지원합니다.
android-latest-release
android-15.0.0_r36
common-android16-6.12
common-android15-6.6
common-android14-6.1
common-android14-5.15
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 기기에서 커널을 개발하기 위한 커널 소스입니다.
Android 커널 개발
Cuttlefish 기기에서 커널을 개발하려면 다음 단계를 따르세요.
사용 중인 Cuttlefish 기기에 적합한 커널 저장소 메니페스트를 클론하고 필요한 변경사항을 적용합니다.
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
커널과 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 create \
-kernel_path=./out/virtual_device_x86_64/dist/bzImage \
-initramfs_path=./out/virtual_device_x86_64/dist/initramfs.img
비GKI 커널(4.19 및 이전 버전)을 실행하는 경우 -initramfs_path
인수를 생략합니다.
Cuttlefish의 aarch64 버전에서 커널을 실행하는 경우 aarch64
빌드 구성을 사용하고 bzImage
대신 Image
아티팩트를 사용합니다.
cvd create \
-kernel_path=./out/virtual_device_aarch64/dist/Image \
-initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Develop Android kernels\n\n\u003cbr /\u003e\n\nThis page describes how to develop Android kernels on Cuttlefish devices.\n\nSupported kernel manifests\n--------------------------\n\nCuttlefish supports the following kernel manifests on\nthe Android latest release branch and AOSP GSI releases.\n\n- On `android-latest-release`\n - `common-android-mainline`\n- On `android-15.0.0_r36`\n - `common-android16-6.12`\n - `common-android15-6.6`\n - `common-android14-6.1`\n - `common-android14-5.15`\n- On `aosp-android13-gsi`\n - `common-android13-5.15`\n - `common-android13-5.10`\n- On `aosp-android12-gsi`\n - `common-android12-5.10`\n - `common-android12-5.4`\n - `common-android-4.19-stable`\n- On `aosp-android11-gsi`\n - `common-android11-5.4`\n - `common-android-4.19-stable`\n - `common-android-4.14-stable`\n\nThe following are kernel sources for kernel development on Cuttlefish devices.\n\n- [`kernel/common-android-mainline`](https://cs.android.com/android/kernel/superproject/+/common-android-mainline:)\n- [`kernel/common-android16-6.12`](https://cs.android.com/android/kernel/superproject/+/common-android16-6.12:)\n- [`kernel/common-android15-6.6`](https://cs.android.com/android/kernel/superproject/+/common-android15-6.6:)\n- [`kernel/common-android14-6.1`](https://cs.android.com/android/kernel/superproject/+/common-android14-6.1:)\n- [`kernel/common-android14-5.15`](https://cs.android.com/android/kernel/superproject/+/common-android14-5.15:)\n- [`kernel/common-android13-5.15`](https://cs.android.com/android/kernel/superproject/+/common-android13-5.15:)\n- [`kernel/common-android13-5.10`](https://cs.android.com/android/kernel/superproject/+/common-android13-5.10:)\n\nDevelop Android kernels\n-----------------------\n\nTo develop kernels on Cuttlefish devices, follow these steps:\n\n1. Clone the appropriate kernel repo manifest for your Cuttlefish device and\n make any changes.\n\n mkdir common-android-mainline\n cd common-android-mainline\n repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline\n repo sync -c -j$(nproc) -q\n\n2. Build the kernel and ramdisk. For more information, see\n [Building the Vendor Modules for the Virtual Device](/docs/setup/build/building-kernels#building-gki-modules).\n\n tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_dist\n\n If using `common-android-4.19-stable`, `common-android-4.14-stable`, or\n `common-android11-5.4` kernel manifests, run: \n\n 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\n\n Instead of building locally (to avoid downloading the kernel source,\n setting up a kernel development environment), you can download the relevant\n artifacts at ci.android.com.\n - [`android-mainline`](https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid?)\n - [`android16-6.12`](https://ci.android.com/builds/branches/aosp_kernel-common-android16-6.12/grid?)\n - [`android15-6.6`](https://ci.android.com/builds/branches/aosp_kernel-common-android15-6.6/grid?)\n - [`android14-6.1`](https://ci.android.com/builds/branches/aosp_kernel-common-android14-6.1/grid?)\n - [`android14-5.15`](https://ci.android.com/builds/branches/aosp_kernel-common-android14-5.15/grid?)\n - [`android13-5.15`](https://ci.android.com/builds/branches/aosp_kernel-common-android13-5.15/grid?)\n - [`android13-5.10`](https://ci.android.com/builds/branches/aosp_kernel-common-android13-5.10/grid?)\n - [`android12-5.10`](https://ci.android.com/builds/branches/aosp_kernel-common-android12-5.10/grid?)\n - [`android12-5.4`](https://ci.android.com/builds/branches/aosp_kernel-common-android12-5.4/grid?)\n - [`android11-5.4`](https://ci.android.com/builds/branches/aosp_kernel-common-android11-5.4/grid?)\n3. Launch the kernel and ramdisk with Cuttlefish.\n\n cvd create \\\n -kernel_path=./out/virtual_device_x86_64/dist/bzImage \\\n -initramfs_path=./out/virtual_device_x86_64/dist/initramfs.img\n\n If launching a non-GKI kernel (anything at or under\n 4.19), omit the `-initramfs_path` argument.\n\n If you're launching the kernel on an aarch64 version of Cuttlefish, use the\n `aarch64` build configuration and use the `Image` artifact instead of\n `bzImage`. \n\n cvd create \\\n -kernel_path=./out/virtual_device_aarch64/dist/Image \\\n -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img"]]