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.
Android 11'de, Genel Kernel kullanan cihazlar Resim (GKI) tedarikçi firma başlatmasını destekleme bölüm, Bu, başlatma bölümü. DTB görüntüsü, satıcıya özel veriler içerdiğinden bir parçası olacak. DTB resim parametrelerini belirtmek için Tedarikçi firma önyükleme başlığı başlıklı makaleyi inceleyin.
Android 10'da cihazlar, önyükleme bölümünde DTB görüntüsünü içerebilir. DTB resim parametrelerini belirtmek için DTB resmini önyükleme resmine dahil etme başlıklı makaleyi inceleyin.
Android 9 ve önceki sürümlerde DTB görüntüsü çekirdeği oluşturmak için kendi bölmesine veya
image.gz
çekirdeğine eklenmelidir + DTB görüntüsü (daha sonraboot.img
oluşturmak içinmkbootimg
öğesine iletilir).
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
vecustom
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.