Android önyükleyici özelliklerini geliştirin

Bu sayfada, Mürekkep Balığı cihazında Android önyükleyici özelliklerinin nasıl oluşturulacağı, çalıştırılacağı ve geliştirileceği açıklanmaktadır.

AOSP kaynakları

Android önyükleyici özelliklerini geliştirmek için, Android 11 veya üzeri için aosp-main veya genel sistem görüntüsü (GSI) dallarında Cuttlefish ile U-boot'un Cuttlefish yapılandırmasını kullanın. AOSP'deki kaynaklar şunlardır:

Bir önyükleyici geliştirin

Önyükleyici özelliklerini yerel olarak oluşturmak, çalıştırmak ve geliştirmek için şu adımları izleyin:

  1. U-boot'un Android çatalı için manifest dosyasını kopyalayın:

    $ 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
    
  2. Mürekkepbalığı mimarinize uygun önyükleyici hedefini oluşturun. Örneğin:

    • x86_64

      $ tools/bazel run //u-boot:crosvm_x86_64_dist
      
    • aarch64

      $ tools/bazel run //u-boot:crosvm_aarch64_dist
      

    Ortaya çıkan önyükleyici ikili dosyası ( arm64 için u-boot.bin ve x86_64 için u-boot.rom ) $PATH_TO_REPO/out/u-boot-mainline/dist içinde bulunur.

  3. Cuttlefish cihazını önyükleyiciyle başlatın. Otomatik önyüklemeyi devre dışı bırakmak ve önyükleyiciyle etkileşime girmenizi sağlamak için pause_in_bootloader parametresini ekleyin.

    $ launch_cvd \
        -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \
        -pause_in_bootloader -console=true
    
  4. Önyükleyiciyle etkileşim kurmak için önyükleyici konsoluna bağlanın.

    $ screen ~/cuttlefish_runtime/console
    
  5. Bootloader etkileşimleri bittiğinde, konsola boot yazarak önyüklemeye devam edin.

Önyükleyici akışını farklı çekirdeklerle test edin

Önyükleyici akışını farklı çekirdekler veya çekirdek modülleriyle test etmek için, hedef yapıtları (çekirdek ve çekirdek modülleri) --kernel_path ve --initramfs_path bağımsız değişkenlerini kullanarak iletin. Derleyici, bağımsız değişkenlerde iletilen yapılara dayalı olarak önyükleme görüntülerini yeniden paketler.

cvd start \
    -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

Daha fazla bilgi için bkz. Android Çekirdeklerini Geliştirme .