בדף הזה מוסבר איך לפתח ליבות של 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