GBL'yi dağıtma

Bu sayfada, GBL ikilisinin nasıl dağıtılacağı açıklanmaktadır.

Başlatma donanım yazılımı gereksinimleri

GBL'yi kullanmak için önyükleme yazılımının aşağıdaki koşulları karşılaması gerekir:

  • UEFI uyumluluğu. Donanım yazılımı, gerekli UEFI protokollerini uygulamalı ve kullanmalıdır. Ayrıca, üretici yazılımı, tanımlanmış UEFI protokollerini kullanarak üreticiye özel uzantılara izin vermelidir.

  • Güvenlik. Donanım yazılımı, yalnızca kimliği doğrulanmış görüntülerin yüklenmesini sağlayarak Android Verified Boot'un (AVB) tüm yönlerini uygulamalıdır.

  • Başlatma modları İkili dosya; normal başlatma, kurtarma başlatma ve fastboot gibi çeşitli başlatma modlarını işleyebilmelidir.

  • Dinamik bölümleme. Önyükleme yazılımı, doğru A/B önyükleme yuvasının okunmasını destekleyecek ve süperdeki dinamik bölümler ile kullanıcı verileriyle uyumlu olacak şekilde yuva seçimi mantığını uygulamalıdır.

  • İşletim sistemi yapılandırması. Donanım yazılımı, cihazı başlatmak için gereken OEM özelleştirmeleriyle çekirdek komut satırını, cihaz ağacını (DTB) ve bootconfig'i değiştirebilmelidir.

  • Korumalı sanal makine yükleniyor. İkili dosya, korumalı sanal makineler varken Android çekirdeğinden önce önceden doğrulanmış korumalı sanal makine yazılımını doğru şekilde yüklemelidir. Daha fazla bilgi için Microdroid önyükleme sırası başlıklı makaleyi inceleyin.

  • Bellek yönetimi. Önyükleme donanım yazılımı, UEFI bellek ayırma API'sini desteklemelidir.

  • Uyumluluk ve geriye dönük uyumluluk. Donanım yazılımı, farklı tedarikçilere ve çip üzerinde sistemlere sahip cihazlarda çalışmalı ve ilgili Android sürümüyle geriye dönük uyumluluğu korumalıdır.

Başlatma donanım yazılımı desteği

Önceki bölümde belirtilen şartları desteklemek için gerekli değişiklikler yapıldığında aşağıdaki UEFI üretici yazılımı uygulamaları GBF ile çalışır:

  • EDK2 (Tianocore). EDK2, popüler bir açık kaynak UEFI uygulamasıdır. EDK2 tabanlı önyükleyiciler için GBL desteği gerekir ve UEFI desteği zaten mevcuttur.
  • U-Boot. GBL kullanımında UEFI uyumluluğu kazanan, esnek ve yaygın olarak kullanılan bir açık kaynak önyükleyici projesi.
  • LittleKernel (LK). Bazı satıcılar tarafından kullanılan açık kaynaklı bir önyükleyici.

Run GBL

Çalıştırmak için önceden oluşturulmuş bir GBL ikili dosyası edinebilir veya kendi dosyanızı oluşturup çalıştırabilirsiniz.

GBL ikilisini edinme ve çalıştırma

GBL, tek bir EFI uygulaması ikili dosyası olarak dağıtılır. Bu ikili dosyayı, Android'in standart güncelleme mekanizmasını kullanarak cihazın temel donanım yazılımından bağımsız olarak güncelleyebilirsiniz.

Android 16'dan itibaren, ARM-64 yonga setini temel alan bir cihaz gönderiyorsanız GBL'nin Google tarafından imzalanmış en yeni sürümünü dağıtmanızı ve başlatma zincirinize entegre etmenizi önemle tavsiye ederiz.

GBL'yi oluşturup çalıştırma

GBL'yi oluşturmak ve çalıştırmak için:

  1. repo aracı ve Bazel bootstrap'in yüklü olduğunu doğrulayın:

    sudo apt install repo bazel-bootstrap
    
  2. uefi-gbl-mainline manifest dosyasını kullanarak geçerli dizininizi kaynak kontrolü için başlatın:

    repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline
    repo sync -j16
    
  3. EFI uygulamasını oluşturun:

    ./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
    
  4. EFI uygulamasını Cuttlefish içinde çalıştırın:

    cvd start --android_efi_loader=path_to_the_EFI_app ...
    

    Bu cvd start komutu, Android'i doğrudan başlatmak yerine Android'i başlatmak için EFI uygulamasını kullanır.

Hataları bildirme ve önyükleyici ekibiyle iletişime geçme

GBL ile ilgili bir hata bildirmek için Buganizer'daki Android Generic Bootloader bileşenine gidin.

Sorularınız için GBL ekibiyle iletişime geçin veya android-gbl@google.com adresine e-posta gönderin.