Ta strona opisuje, jak tworzyć, uruchamiać i rozwijać funkcje programu rozruchowego Androida na urządzeniu Cuttlefish.
Źródła AOSP
Aby rozwijać funkcje programu rozruchowego Androida, użyj konfiguracji U-boot dla
Cuttlefish z Cuttlefish w
najnowszej gałęzi wersji (android17-release) lub w
gałęziach ogólnego obrazu systemu (GSI)
dla Androida 11 lub nowszego. Oto źródła w AOSP:
Tworzenie programu rozruchowego
Aby lokalnie tworzyć, uruchamiać i rozwijać funkcje programu rozruchowego, wykonaj te czynności:
Sklonuj manifest forka Androida U-boot:
$ 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) -qSkompiluj docelowy program rozruchowy odpowiedni dla architektury Cuttlefish. Przykład:
x86_64
$ tools/bazel run //u-boot:crosvm_x86_64_distaarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
Wynikowy plik binarny programu rozruchowego (
u-boot.binw przypadku arm64 iu-boot.romw przypadku x86_64) znajdziesz w$PATH_TO_REPO/out/u-boot-mainline/dist.Uruchom urządzenie Cuttlefish z programem rozruchowym. Dołącz parametr
pause_in_bootloader, aby wyłączyć automatyczne uruchamianie i umożliwić interakcję z programem rozruchowym.$ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=trueAby wejść w interakcję z programem rozruchowym, połącz się z jego konsolą.
$ screen ~/cuttlefish_runtime/consoleGdy skończysz interakcję z programem rozruchowym, kontynuuj uruchamianie, wpisując w konsoli
boot.
Testowanie przepływu programu rozruchowego z różnymi jądrami
Aby przetestować przepływ programu rozruchowego z różnymi jądrami lub modułami jądra, przekaż artefakty docelowe (jądro i moduły jądra) za pomocą argumentów --kernel_path i --initramfs_path. Asembler przepakowuje obrazy rozruchowe na podstawie artefaktów przekazanych w argumentach.
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.imgWięcej informacji znajdziesz w artykule Tworzenie jąder Androida.