בדף הזה מוסבר איך לפתח ליבות של Android במכשירי Cuttlefish.
מניפסטים נתמכים של ליבת מערכת ההפעלה
Cuttlefish תומך במניפסטים הבאים של הליבה בענף הגרסה האחרונה של Android ובגרסאות GSI של AOSP.
- ב-
android-latest-release
common-android-mainline
- ב-
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.
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
פיתוח ליבות של 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.
מפעילים את הליבה ואת 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