Trang này mô tả cách phát triển hạt nhân Android trên thiết bị Cuttlefish.
Tệp kê khai nhân được hỗ trợ
Cuttlefish hỗ trợ các tệp kê khai nhân sau đây trên các bản phát hành GSI chính và AOSP (Dự án nguồn mở Android).
- Vào
aosp-main
common-android-mainline
common-android16-6.12
common-android15-6.6
common-android14-6.1
common-android14-5.15
- Vào
aosp-android13-gsi
common-android13-5.15
common-android13-5.10
- Vào
aosp-android12-gsi
common-android12-5.10
common-android12-5.4
common-android-4.19-stable
- Vào
aosp-android11-gsi
common-android11-5.4
common-android-4.19-stable
common-android-4.14-stable
Sau đây là các nguồn nhân kernel để phát triển nhân kernel trên thiết bị 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
Phát triển nhân Android
Để phát triển nhân trên thiết bị Cuttlefish, hãy làm theo các bước sau:
Sao chép tệp kê khai kho lưu trữ nhân thích hợp cho thiết bị Mực nang của bạn và thực hiện mọi thay đổi.
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
Tạo nhân và ổ đĩa RAM. Để biết thêm thông tin, hãy xem phần Xây dựng mô-đun nhà cung cấp cho thiết bị ảo.
tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_dist
Nếu sử dụng tệp kê khai hạt nhân
common-android-4.19-stable
,common-android-4.14-stable
hoặccommon-android11-5.4
, hãy chạy: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
Thay vì tạo cục bộ (để tránh tải nguồn nhân hệ điều hành xuống, thiết lập môi trường phát triển nhân hệ điều hành), bạn có thể tải các cấu phần phần mềm có liên quan xuống tại ci.android.com.
Chạy hạt nhân và ramdisk bằng Cuttlefish.
cvd create \ -kernel_path=./out/virtual_device_x86_64/dist/bzImage \ -initramfs_path=./out/virtual_device_x86_64/dist/initramfs.img
Nếu khởi chạy một hạt nhân không phải GKI (bất kỳ hạt nhân nào ở cấp 4.19 trở xuống), hãy bỏ qua đối số
-initramfs_path
.Nếu bạn đang chạy hạt nhân trên phiên bản aarch64 của Cuttlefish, hãy sử dụng cấu hình bản dựng
aarch64
và sử dụng cấu phần phần mềmImage
thay vìbzImage
.cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img