DTB görüntüleri

Android uygulamaları, bootloader'ı tıklayın. DTB görüntüsünün konumu (ve DTB resim parametreleri) Android sürümleri arasında farklılık gösterir.

DTB resim biçimi

Android 10 ve sonraki sürümlerde DTB görüntüsünde DTB kullanılmalıdır. şu biçimlerde sunulur:

  • DT blob'ları art arda birleştirildi. Önyükleme yükleyici, ilgili blob'u okumak ve ayrıştırmak için her FDT başlığındaki totalsize alanını kullanır.

  • DTB/DTBO bölümleri. Önyükleyici, girişin donanım tanımlama bilgilerini barındırabilen dt_table_entry yapısını (id, rev ve custom alanlarını içerir) inceleyerek doğru DT blob'unu seçmenin etkili bir yoluna sahiptir. Ayrıntılar için DTB/DTBO bölümlendirme bölümüne bakın.

DTB görüntüsünü önyükleme görüntüsüne dahil etme

Android 10 çalıştıran cihazlar DTB resmini görüntüsü oluşturabilirsiniz. Bu, Android'in e-postaya eklenen komut dosyalarını destekleme ihtiyacını DTB görüntüsünü çekirdekte image.gz olarak ayarlar ve Tedarikçi Firma Testi'nin kullanılmasını sağlar DTB'yi doğrulamak (ve standartlaştırmak) için Suite (VTS) testi yerleşim.

Ayrıca, A/B olmayan cihazlarda, kesintiye uğrayan OTA'lardan kaynaklanan sorunları önlemek için DTB'nin ayrı bir bölümde değil, kurtarma görüntüsünün bir parçası olarak bulunması daha güvenlidir. OTA sırasında DTB bölümlendirmesi yapıldıktan sonra güncellendiğinde (ancak tam güncelleme tamamlanmadan önce) cihaz, kurtarma modunu uygulayarak OTA'yı tamamlayın; ancak DTB bölümü güncellendikten sonra, kurtarma görüntüsüyle (kurtarma işlemini gerçekleştirmiş olan) (henüz güncellenmemiştir). DTB görüntüsü, başlatma görüntüsü biçiminin bir parçası olarak sunuluyor. kurtarma görüntüsünü kendi kendine yeterli hale getirerek (yani (başka bir bölüme bağlı değildir).

Önyükleme resmi yapısı

Android 10 çalıştıran cihazlar, aşağıdaki önyükleme resmi yapısını kullanarak bir DTB resmi içerebilir.

Başlatma görüntüsü bölümü Sayfa sayısı
Başlatma üstbilgisi (1 sayfa) 1
Çekirdek (l sayfa) l = (kernel_size + page_size - 1) / page_size
Ramdisk (m sayfa) e = (ramdisk_size + page_size - 1) / page_size
İkinci aşama bootloader (n sayfa) n = (second_size + page_size - 1) / page_size
DTBO'yu kurtarma (sayfa sayısı) i = (recovery_dtbo_size + page_size - 1) / page_size
DTB (p sayfaları) p = (dtb_size + page_size - 1) / page_size

DTB resim yolu

Android 10 çalıştıran cihazlarda, DTB resminin yolunu belirtmek için mkbootimg.py aracını ve aşağıdaki bağımsız değişkenleri kullanabilirsiniz.

Bağımsız değişken Açıklama
dtb Önyükleme/kurtarma görüntülerine eklenecek DTB görüntüsünün yolu.
dtb_offset base bağımsız değişkenine eklendiğinde, nihai cihaz ağacının fiziksel yükleme adresini sağlar. Örneğin, base bağımsız değişkeni 0x10000000 ve dtb_offset bağımsız değişkeni 0x01000000, başlatma görüntüsündeki dtb_addr_field başlık 0x11000000 olarak doldurulur.

DTB resminin yolunu belirtmek için BOARD_PREBUILT_DTBIMAGE_DIR kart yapılandırması değişkeni kullanılmalıdır. BOARD_PREBUILT_DTBIMAGE_DIR dizininde *.dtb uzantılı birden fazla dosya varsa Android derleme sistemi, önyükleme resmi oluşturmada kullanılan nihai DTB resmini oluşturmak için dosyaları birleştirir.

dtb bağımsız değişkenini, BOARD_PREBUILT_DTBIMAGE_DIR tarafından belirtilen dizindeki DTB resmiyle birlikte mkbootimg.py'e iletmek için BOARD_INCLUDE_DTB_IN_BOOTIMG kart yapılandırma değişkeni true olarak ayarlanmalıdır. Örnek:

BOARD_INCLUDE_DTB_IN_BOOTIMG := true

dtb_offset bağımsız değişkenini BOARD_MKBOOTIMG_ARGS panosuna ekleyebilirsiniz yapılandırma değişkenini diğer ofsetler ve başlık sürümüyle eşleştirin. Örnek:

BOARD_MKBOOTIMG_ARGS := --ramdisk_offset $(BOARD_RAMDISK_OFFSET) --dtb_offset $(BOARD_DTB_OFFSET) --tags_offset $(BOARD_KERNEL_TAGS_OFFSET) --header_version $(BOARD_BOOTIMG_HEADER_VERSION)

Bootloader desteği

VTS'nin Android 10 çalıştıran cihazlarda başarılı bir şekilde çalışması için önyükleyicinin güncellenmiş önyükleme görüntüsünü desteklemesi ve seçili cihaz ağacının (DT) dizesini belirtmek için androidboot.dtb_idx çekirdek komut satırı parametresini eklemesi gerekir. Yalnızca bir (1) dizin belirtebilirsiniz. Örneğin, androidboot.dtb_idx=N parametresi, N değerini önyükleme resminde bulunan DTB grubundan önyükleme yükleyicisi tarafından seçilen cihaz ağacının sıfır tabanlı dizini olarak bildirir.