בדף הזה מוסבר איך לפתח ליבות של Android במכשירי Cuttlefish.
מניפסטים נתמכים של ליבת מערכת ההפעלה
Cuttlefish תומך במניפסטים הבאים של הליבה בענף הגרסה האחרונה של Android ובגרסאות GSI של AOSP.
- ב-
android-latest-releasecommon-android-mainline
- ב-
android-15.0.0_r36common-android16-6.12common-android15-6.6common-android14-6.1common-android14-5.15
- ב-
aosp-android13-gsicommon-android13-5.15common-android13-5.10
- ב-
aosp-android12-gsicommon-android12-5.10common-android12-5.4common-android-4.19-stable
- ב-
aosp-android11-gsicommon-android11-5.4common-android-4.19-stablecommon-android-4.14-stable
אלה מקורות הליבה לפיתוח ליבה במכשירי 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
פיתוח ליבות של Android
כדי לפתח ליבות במכשירי Cuttlefish, פועלים לפי השלבים הבאים:
משכפלים את המניפסט המתאים של מאגר ליבת הלינוקס למכשיר Cuttlefish ומבצעים את השינויים הרצויים.
mkdir common-android-mainlinecd common-android-mainlinerepo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainlinerepo 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.
מפעילים את הליבה ואת ramdisk באמצעות Cuttlefish.
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.אם מפעילים את הליבה בגרסת aarch64 של Cuttlefish, צריך להשתמש בהגדרת ה-build
aarch64ובארטיפקטImageבמקום ב-bzImage.cvd create \ -kernel_path=./out/virtual_device_aarch64/dist/Image \ -initramfs_path=./out/virtual_device_aarch64/dist/initramfs.img