בדף הזה נסביר איך לפתח ליבה (kernel) של Android במכשירי דיונון.
מניפסטים נתמכים של ליבה
ב-Cuttlefish יש תמיכה במניפסטים הבאים של הליבה במהדורות הראשיות ובמהדורות AOSP GSI.
- ב-
aosp-main
common-android-mainline
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 ומבצעים את השינויים הנדרשים.
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
אם מפעילים ליבה (kernel) שאינה של 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