Keymaster sürümünü desteklemek için bağlama cihaz bootloader'ının işletim sistemi (OS) sürümünü sağlaması beklenir ve her bölümün güvenlik yaması düzeyini içerir. İşletim sistemi sürümü ve güvenlik yama düzeyi, AVB'de iki ayrı anahtar/değer çiftidir. özellikleri hakkında daha fazla bilgi edinin. Örnek:
com.android.build.system.os_version -> '12'
com.android.build.system.security_patch -> '2022-02-05'
com.android.build.vendor.os_version -> '12'
com.android.build.vendor.security_patch -> '2022-02-05'
com.android.build.boot.os_version -> '12'
com.android.build.boot.security_patch -> '2022-02-05'
Cihaz bootloader'ı, bu AVB özelliklerini bir vbmeta görüntüsünden
avb_property_lookup()
.
Birden çok vbmeta resim yüklemesi için:
avb_slot_verify()
ve
AvbSlotVerifyData**
out_data
çıkış parametresinin değeridir.
Sürüm bilgilerinin varsayılan biçimi
Android derleme sistemi varsayılan olarak işletim sistemi için aşağıdaki biçimi kullanır sürümünü ve güvenlik yamasını gösterir.
com.android.build.${partition}.os_version
biçimi A[.B.C] şeklindedir.
örneğin, 12
veya 12.0.0
:
- A: ana sürüm
- B: alt sürüm, olmadığında varsayılan olarak sıfırlanır
- C: alt sürüm, olmadığında varsayılan olarak sıfırlanır
com.android.build.${partition}.security_patch
, YYYY-AA-GG biçimindedir.
Varsayılan olarak, derleme sistemi
system
için com.android.build.${partition}.security_patch
,
system_ext
ve product
bölümleri. Cihaz üreticisi:
BOOT_SECURITY_PATCH
, VENDOR_SECURITY_PATCH
ve diğer parametrelerin ayarlanması bekleniyor
yamalardır. Örnek:
BOOT_SECURITY_PATCH := 2022-01-05
oluştururcom.android.build.boot.security_patch -> '2022-01-05'
VENDOR_SECURITY_PATCH := 2022-02-05
oluştururcom.android.build.vendor.security_patch -> '2022-02-05'
Cihaz üreticisi, *_SECURITY_PATCH
ayarını şu şekilde yapabilir:
$(PLATFORM_SECURITY_PATCH)
tüm bölümleri her zaman aynı güvenlik düzeyiyle sürüme güncellediğinde
seviyesi.
BOOT_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)
VENDOR_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)
Özel sürüm bilgilerini belirtme
Android 13'ten itibaren her cihaz derlemesinin bir OS sürümü için cihaz bootloader'ı tarafından tanınabilecek özel bir değer. Örnek:
SYSTEM_OS_VERSION := 12.0.0
oluştururcom.android.build.system.os_version -> '12.0.0'
BOOT_OS_VERSION := a.b.c
oluştururcom.android.build.boot.os_version -> 'a.b.c'
VENDOR_OS_VERSION := 12.0.1
oluştururcom.android.build.vendor.os_version -> '12.0.1'
Başlatma görüntüsü başlığındaki eski sürüm bilgileri
Android 9'dan itibaren Keymaster
sürüm bağlama
os_version
öğesinin boot.img
başlığından kaldırılmasını öneriyor.
Karşılaştırma için,
başlatma görüntüsünün üstbilgisi de burada açıklanmıştır. Lütfen
os_version
alanı, hem işletim sistemi sürümünü hem de güvenlik yaması düzeyini
32 bitlik imzalanmamış bir tam sayıdır. Bu mekanizma, tüm resimlerin tek bir resim yerine
bölüm modülerleştirmesi sonrasında geçerliliğini yitirmiş olan
Treble Projesi.
// Operating system version and security patch level.
// For version "A.B.C" and patch level "Y-M-D":
// (7 bits for each of A, B, C; 7 bits for (Y-2000), 4 bits for M)
// A = os_version[31:25]
// B = os_version[24:18]
// C = os_version[17:11]
// Y = 2000 + os_version[10:4]
// M = os-version[3:0]
uint32_t os_version;