בדף הזה מוסבר איך לבנות, להריץ ולפתח תכונות של טוען האתחול של Android במכשיר Cuttlefish.
מקורות AOSP
כדי לפתח תכונות של טוען האתחול של Android, צריך להשתמש בהגדרת Cuttlefish של U-boot עם Cuttlefish בענף הגרסה האחרונה (android16-release) או בענפים של תמונת מערכת כללית (GSI) ל-Android בגרסה 11 ואילך. אלה המקורות ב-AOSP:
פיתוח תוכנת אתחול
כדי ליצור, להריץ ולפתח תכונות של Bootloader באופן מקומי:
משכפלים את המניפסט של הפיצול של U-boot ל-Android:
$ mkdir u-boot-mainline $ cd u-boot-mainline $ repo init -u https://android.googlesource.com/kernel/manifest -b u-boot-mainline $ repo sync -j$(nproc) -qיוצרים את יעד טוען האתחול שמתאים לארכיטקטורת Cuttlefish. לדוגמה:
x86_64
$ tools/bazel run //u-boot:crosvm_x86_64_distaarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
קובץ הבינארי של תוכנת האתחול (
u-boot.binעבור arm64 ו-u-boot.romעבור x86_64) נמצא ב-$PATH_TO_REPO/out/u-boot-mainline/dist.מפעילים את מכשיר Cuttlefish עם תוכנת האתחול. כוללים את הפרמטר
pause_in_bootloaderכדי להשבית את האתחול האוטומטי ולאפשר אינטראקציה עם טוען האתחול.$ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=trueכדי ליצור אינטראקציה עם תוכנת האתחול, מתחברים למסוף של תוכנת האתחול.
$ screen ~/cuttlefish_runtime/consoleכשמסיימים את האינטראקציות עם טוען האתחול, ממשיכים באתחול על ידי הקלדת
bootבמסוף.
בדיקת תהליך טעינת מערכת ההפעלה עם ליבות שונות
כדי לבדוק את תהליך טעינת מערכת ההפעלה עם ליבות שונות או מודולים שונים של ליבה, מעבירים את הארטיפקטים של היעד (הליבה והמודולים של הליבה) באמצעות הארגומנטים --kernel_path ו---initramfs_path. הכלי לאיחוד אורז מחדש את תמונות האתחול על סמך הארטיפקטים שמועברים בארגומנטים.
cvd create \
-kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/bzImage \
-initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/initramfs.imgמידע נוסף זמין במאמר בנושא פיתוח ליבות של Android.