本頁說明如何在 Cuttlefish 上下載、建構及執行 AAOS SDV。
取得 AAOS SDV 原始碼
請按照「下載 Android 原始碼」一文中的說明操作。
設定建構環境
在工作目錄中,找出 envsetup.sh 指令碼,設定建構環境:
source build/envsetup.sh這個指令碼會匯入多個指令,方便您處理 Android 原始碼,包括本頁面使用的指令。如要查看指令碼來源,請參閱 platform/build/envsetup.sh。如要查看內建說明,請輸入 hmm。
選擇一個目標
建立 SDV 前,請先找出要建構的目標。如要識別要建構的目標,請使用 lunch 指令,後面加上代表要建構目標的字串。舉例來說,使用這個指令為 Cuttlefish 模擬器建構目標:
lunch sdv_core_cf-trunk_staging-userdebug這個指令會選取要建構的產品、發布設定和變數,並將選取項目儲存在環境中。
SDV 的 lunch 目標位於 devices/google/sdv 目錄中,屬於獨立的 Git 專案。如要查看可用目標的詳細說明,請前往 device/google/sdv/README.md。主要的 Cuttlefish (cf) 目標如下:
sdv_core_cf-trunk_staging-userdebug- Build an image of AAOS SDV Core (sdv_core) that runs on Cuttlefish (cf).sdv_media_cf-trunk_staging-userdebug- 使用 virtIO 虛擬化媒體 API (sdv_media) 建構 AAOS SDV Core 的映像檔。sdv_media_har_cf-trunk_staging-userdebug- 建立可擴充 AAOS SDV 媒體 (sdv_media_cf)lunch目標的圖片,以包含高可用性算繪器 (HAR)。HAR 會在開機時自動執行。sdv_ivi_cf-trunk_staging-userdebug- 建構車內資訊娛樂 (IVI) 系統的映像檔,其中包含 SDV 閘道和 Java 範例應用程式。sdv_ivi_cf_ds-trunk_staging-userdebug- 建構擴充 AAOS SDV IVI 目標 (sdv_ivi_cf) 的映像檔,並納入 Display Safety 的 DriverUI 和儀表板實作項目。
建構 AAOS SDV
執行下列指令來建構目標。第一次建構作業需要 30 到 60 分鐘,實際時間視工作站規格而定。後續建構作業所需時間大幅減少。
m建構作業的輸出內容會顯示在 $OUT_DIR 中。如果您建構不同的目標,每個目標建構作業都會顯示在 $OUT_DIR 中。
使用 Cuttlefish 測試建構版本
建構 AAOS SDV 後,請使用 Cuttlefish 測試建構版本。
如要使用建構版本啟動 Cuttlefish,請按照下列步驟操作:
cvd createCuttlefish 會使用您建構的目標 (
sdv_core_cf-trunk_staging-userdebug) 執行。Cuttlefish 開機後,會顯示以下訊息:VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfully執行
adb即可連線至 Cuttlefish。執行
adb devices,確認建構作業正在執行。系統會顯示類似下列的結果:List of devices attached 0.0.0.0:6520 device執行
cvd stop關閉裝置。
如要執行多個 Cuttlefish 執行個體,並使用不同建構版本,請參閱 Cuttlefish:多租戶。
疑難排解
本節說明如何排解下載、建構或執行 AAOS SDV 時可能發生的錯誤。
RBE 錯誤
如果遇到任何遠端建構執行 (RBE) 錯誤,請從 .bashrc 或 .zshrc 移除 USE_RBE 和 ENABLE_RBE_BOOTSTRAP 的定義
cvd:這部電腦不支援 VM 管理員 crosvm
如果 Cuttlefish 回報您的電腦不支援 VM 管理工具 crosvm,請執行下列指令來安裝 Cuttlefish:
sudo apt install cuttlefish-common找不到 cvd
如果收到 cvd not found 錯誤訊息:
- 再次設定建構。
- 繼續「選擇目標」。
Cuttlefish 當機迴圈
如果 Cuttlefish 進入當機迴圈:
- 如要停止所有 Cuttlefish 執行個體,請執行
cvd stop。 - 使用 Cuttlefish 重新測試建構版本。