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:
repo aracı ve Bazel bootstrap'in yüklü olduğunu doğrulayın:
sudo apt install repo bazel-bootstrap
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
EFI uygulamasını oluşturun:
./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
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.