הורדה, בנייה והפעלה

בדף הזה מוסבר איך להוריד, ליצור ולהפעיל את AAOS SDV ב-Cuttlefish.

איך מורידים את קוד המקור של AAOS SDV

פועלים לפי ההוראות במאמר הורדת קוד המקור של Android.

הגדרת סביבת ה-build

בספריית העבודה, מפעילים את הסקריפט envsetup.sh כדי להגדיר את סביבת ה-build:

source build/envsetup.sh

הסקריפט הזה מייבא כמה פקודות שמאפשרות לעבוד עם קוד המקור של Android, כולל הפקודות שמופיעות בדף הזה. כדי לראות את קוד המקור של הסקריפט, עיינו בקובץ platform/build/envsetup.sh. כדי להציג את העזרה המובנית, מקלידים hmm.

בחירת יעד

לפני שיוצרים SDV, צריך לזהות יעד ליצירה. כדי לזהות את היעד שרוצים ליצור, משתמשים בפקודה lunch ואחריה מחרוזת שמייצגת את היעד שרוצים ליצור. לדוגמה, משתמשים בפקודה הזו כדי ליצור יעד לאמולטור Cuttlefish:

lunch sdv_core_cf-aosp_current-userdebug

הפקודה הזו בוחרת את המוצר, את הגדרת הגרסה ואת הווריאנט ל-build, ושומרת את הבחירה בסביבה.

יעדי lunch ל-SDV מסופקים בפרויקט Git נפרד שנמצא בספרייה device/google/sdv. תיאור מפורט של היעדים הזמינים מופיע בכתובת device/google/sdv/README.md. היעדים העיקריים של Cuttlefish (cf) הם:

  • ‫sdv_core_cf-aosp_current-userdebug – יצירת קובץ אימג' של AAOS SDV Core (sdv_core) שפועל ב-Cuttlefish (cf).
  • ‫sdv_media_cf-aosp_current-userdebug – יצירת קובץ אימג' של AAOS SDV Core עם ממשקי API של מדיה וירטואלית ב-virtIO‏ (sdv_media).
  • ‫sdv_media_har_cf-aosp_current-userdebug – יוצרים קובץ אימג' שמרחיב את יעד המדיה של AAOS SDV‏ (sdv_media_cf) lunch כדי שיכיל את ה-HAR. ‫HAR פועל אוטומטית בזמן ההפעלה.
  • ‫sdv_ivi_cf-aosp_current-userdebug – יצירת קובץ אימג' של מערכת מולטימדיה (IVI) שמכילה את SDV Gateway ואפליקציות לדוגמה ב-Java.
  • ‫sdv_ivi_cf_ds-aosp_current-userdebug – יוצרים קובץ אימג' שמרחיב את יעד ה-IVI של SDV ב-AAOS‏ (sdv_ivi_cf) וכולל את ההטמעה של DriverUI ו-Instrument Cluster ב-Display Safety.

פיתוח SDV ל-AAOS

מריצים את הפקודה הבאה כדי ליצור את היעד. בהתאם למפרט של תחנת העבודה, ה-build הראשון נמשך בין 30 ל-60 דקות. הבנייה הבאה תימשך הרבה פחות זמן.

m

הפלט של ה-build מופיע ב-$OUT_DIR. אם בונים יעדים שונים, כל יעד שנוצר מופיע ב-$OUT_DIR.

בדיקה של גרסת ה-build באמצעות Cuttlefish

אחרי שיוצרים את ה-SDV של AAOS, בודקים את ה-build באמצעות Cuttlefish.

  1. כדי להפעיל את Cuttlefish עם גרסת ה-build:

    cvd create

    ‫Cuttlefish פועל באמצעות היעד שבניתם (sdv_core_cf-aosp_current-userdebug). אחרי ש-Cuttlefish מופעל, מוצגת ההודעה הבאה:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. מריצים את adb כדי להתחבר ל-Cuttlefish.

  3. מריצים את הפקודה adb devices כדי לוודא שה-build פועל. תוצג תוצאה דומה לזו:

    List of devices attached
    0.0.0.0:6520 device
  4. מריצים את הפקודה cvd stop כדי לכבות את המכשיר.

כדי להריץ כמה מכונות של Cuttlefish עם גרסאות build שונות, קראו את המאמר Cuttlefish: multi-tenancy.

פתרון בעיות

בקטע הזה מוסבר איך לפתור שגיאות שעלולות להתרחש במהלך ההורדה, ה-build או ההפעלה של AAOS SDV.

שגיאות RBE

אם נתקלים בשגיאות ב-Remote Build Execution ‏ (RBE), מסירים את ההגדרות של USE_RBE ו-ENABLE_RBE_BOOTSTRAP מ-.bashrc או מ-.zshrc

‫cvd: מנהל ה-VM‏ crosvm לא נתמך במכונה הזו

אם Cuttlefish מדווח ש-VM Manager‏ crosvm לא נתמך במכונה, מריצים את הפקודה הבאה כדי להתקין את Cuttlefish:

sudo apt install cuttlefish-common

לא נמצא cvd

אם מופיעה השגיאה cvd not found:

  1. מגדירים את ה-build מחדש.
  2. ממשיכים עם בחירת יעד.

לולאות קריסה של Cuttlefish

אם Cuttlefish נכנס ללולאת קריסה:

  1. כדי לעצור את כל המכונות של Cuttlefish, מריצים את הפקודה cvd stop.
  2. שימוש ב-Cuttlefish כדי לבדוק מחדש את ה-build.