בדף הזה מוסבר איך להוריד, ליצור ולהפעיל את 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.
כדי להפעיל את Cuttlefish עם גרסת ה-build:
cvd createCuttlefish פועל באמצעות היעד שבניתם (
sdv_core_cf-aosp_current-userdebug). אחרי ש-Cuttlefish מופעל, מוצגת ההודעה הבאה:VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfullyמריצים את
adbכדי להתחבר ל-Cuttlefish.מריצים את הפקודה
adb devicesכדי לוודא שה-build פועל. תוצג תוצאה דומה לזו:List of devices attached 0.0.0.0:6520 deviceמריצים את הפקודה
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:
- מגדירים את ה-build מחדש.
- ממשיכים עם בחירת יעד.
לולאות קריסה של Cuttlefish
אם Cuttlefish נכנס ללולאת קריסה:
- כדי לעצור את כל המכונות של Cuttlefish, מריצים את הפקודה
cvd stop. - שימוש ב-Cuttlefish כדי לבדוק מחדש את ה-build.