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 şu biçimlerdedir:

  • DT blob'ları art arda birleştirildi. Bootloader, totalsize alanını kullanarak ilgili blob'u okuyup ayrıştırabilirsiniz.

  • DTB/DTBO bölümleri. Bootloader, 2024'te başlayan doğru DT blobunu incelemek için dt_table_entry struct (id, rev ve custom alanları) görebilirsiniz. Ayrıntılar için bkz. DTB/DTBO Bölümler.

DTB görüntüsünü başlatma görüntüsüne ekle

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 cihazlar için DTB'nin kurtarma görüntüsü almasanız bile, olası sorunları önlemek için ayrı bir bölüm yerine OTA'ları kesintiye uğrattı. 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).

Başlatma görüntüsü yapısı

Android 10 yüklü cihazlarda DTB resmi bulunabilir aşağıdaki önyükleme görüntüsü yapısını kullanın.

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
Kurtarma DTBO'su (o sayfa) i = (recovery_dtbo_size + page_size - 1) / page_size
DTB (p sayfaları) k = (dtb_size + page_size - 1) / page_size

DTB görüntü yolu

Android 10 çalıştıran cihazlarda DTB'nin yolunu belirtmek için mkbootimg.py aracını ve aşağıdaki bağımsız değişkenleri kullanın görüntüsüdür.

Bağımsız değişken Açıklama
dtb Başlatma/kurtarma görüntülerine dahil edilecek DTB görüntüsünün yolu.
dtb_offset base bağımsız değişkenine eklendiğinde fiziksel yükü sağlar adresine gidin. Ö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.

Aşağıdakini belirtmek için pano yapılandırması değişkeni BOARD_PREBUILT_DTBIMAGE_DIR kullanılmalıdır çok kolaylaşır. *.dtb uzantısına sahip birden fazla dosya BOARD_PREBUILT_DTBIMAGE_DIR dizininde, Android derleme sisteminde bulunuyor. önyükleme görüntüsünde kullanılan son DTB görüntüsünü oluşturmak için dosyaları birleştirir çok önemli.

dtb bağımsız değişkenini mkbootimg.py hedefine BOARD_PREBUILT_DTBIMAGE_DIR tarafından belirtilen dizin, pano yapılandırması değişkeni BOARD_INCLUDE_DTB_IN_BOOTIMG, 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 birlikte kullanabilirsiniz. Ö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 çalıştıran cihazlarda başarılı bir şekilde çalışması için 10'da, bootloader güncellenmiş başlatma görüntüsünü desteklemelidir ve şunu belirtmek için androidboot.dtb_idx çekirdek komut satırı parametresini seçilen cihaz ağacının (DT) dizini. Yalnızca bir (1) . Örneğin, androidboot.dtb_idx=N parametresi N değerini Bootloader tarafından Başlatma görüntüsünde DTB'ler var.