AVB özelliklerindeki sürüm bilgileri

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şturur
    • com.android.build.boot.security_patch -> '2022-01-05'
  • VENDOR_SECURITY_PATCH := 2022-02-05 oluşturur
    • com.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şturur
    • com.android.build.system.os_version -> '12.0.0'
  • BOOT_OS_VERSION := a.b.c oluşturur
    • com.android.build.boot.os_version -> 'a.b.c'
  • VENDOR_OS_VERSION := 12.0.1 oluşturur
    • com.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;