本頁說明如何在 Cuttlefish 裝置上建構、執行及開發 Android 開機載入程式功能。
Android 開放原始碼計畫來源
如要開發 Android 系統啟動載入程式功能,請在最新發布分支 (android16-release
) 或 Android 11 以上版本的通用系統映像檔 (GSI) 分支中,使用 Cuttlefish 的 U-boot Cuttlefish 設定。以下是 Android 開放原始碼計畫中的來源:
開發系統啟動載入程式
如要在本機建構、執行及開發開機載入程式功能,請按照下列步驟操作:
複製 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_dist
aarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
產生的系統啟動載入程式二進位檔 (arm64 為
u-boot.bin
,x86_64 為u-boot.rom
) 位於$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 核心」。