VNDK anlık görüntüleri, doğru VNDK'yı sağlamak için bir sistem görüntüsü tarafından kullanılabilir sistem ve tedarikçi görüntüleri şuradan derlendiğinde bile tedarikçi firma görüntülerine Android'in farklı sürümleri. VNDK anlık görüntüsü oluşturmak için yakalama gerekir VNDK kitaplıklarını anlık görüntü olarak ve sürüm numarasıyla işaretleme. İlgili içeriği oluşturmak için kullanılan tedarikçi firma görüntüsü, gerekli ABI'leri sağlayan belirli bir VNDK sürümüyle bağlantı verebilir. temsil eder. Ancak, aynı VNDK sürümünde VNDK kitaplıkları ABI kararlılığı.
VNDK anlık görüntü tasarımı, oluşturarak mevcut sistem görüntüsünden bir VNDK anlık görüntüsünün önceden derlenmesi yükleniyor önceden oluşturulmuş kitaplıkları daha yeni bir Android sürümünün sistem bölümüne ekler.
VNDK kitaplıkları hakkında
Kullanıma sunulan HIDL-HAL'ler Android 8.0, sistem ve satıcı bölümleri için ayrı ayrı yükseltme yapılmasına olanak tanır. VNDK Bu kod, belli bir kod için tedarikçi kodunun VNDK'da olmayan kitaplıklarla bağlantı kurar ve satıcıların kullanmasını engeller ayarlandı. Sonuç olarak, tedarikçi firma görüntüsü doğru VNDK'nın tedarikçi firma görüntüsüne sağlanır.
VNDK Çekirdeği
VNDK çekirdekli kitaplık grubu
/system/lib[64]/vndk-${VER}
ve kullanılabilir
yalnızca API düzeyi şuna eşit olan tedarikçi firma işlemleri için:
${VER}
. Sistem işlemlerinde bu kitaplıklar kullanılamaz ve
bunun yerine /system/lib[64]
içinde yüklü kitaplıkları kullanın. Çünkü
her işlem için geçerli olan katı ad alanı kısıtlamasını (VNDK çekirdek kitaplıkları)
ikili yüklemeye karşı güvenlidir.
VNDK-core'a bir kitaplık eklemek için şunu ekleyin:
Android.bp
:
vendor_available: true, vndk: { enabled: true, },.
VNDK-SP
VNDK-SP kitaplıkları, /system/lib[64]/vndk-sp-${VER}
sürümüne yüklendi
ve tedarikçi süreçleri ile sistem süreçlerine (SP-HAL üzerinden)
kitaplıklarda yüklü olup olmadığını kontrol edin. VNDK-SP kitaplıkları
çift yüklemeli.
VNDK-SP'ye bir kitaplık dahil etmek için aşağıdakileri Android.bp
öğesine ekleyin:
vendor_available: true, vndk: { enabled: true, support_system_process: true, },
LL-NDK
LL-NDK kitaplıkları /system/lib[64]
içinde yüklü. Satıcı modülleri
önceden seçilmiş LL-NDK simgelerine erişmek için LL-NDK saplama kitaplıklarını kullanabilir
kitaplıklar. LL-NDK kitaplıklarının geriye dönük olarak uyumlu ve ABI'nin kararlı olması gerekir.
Satıcı modüllerinin eski sürümlerinin, LL-NDK kitaplıklarının yeni sürümlerini kullanmasını sağlamak.
VNDK anlık görüntüsü, LL-NDK'nın ABI'ye göre kararlı özellikleri nedeniyle
eski tedarikçi görüntüleri için LL-NDK kitaplıklarının eklenmesine gerek yoktur.
VNDK anlık görüntüleri hakkında
Android 8.1, VNDK içeriyor kaynak koddan oluşturulan kitaplıklar hakkında daha fazla bilgi edinin. Ancak, bu yapılandırmanın sonraki sürümleri için Android için her VNDK sürümü anlık görüntü olarak alınmalı ve eski bir tedarikçi firma görüntüsüne bağlantı oluşturmayı etkinleştirmek için önceden derleyin.
Android 9'dan itibaren Android'in yeni sürümleri
Daha eski sürümler için VNDK-core ve VNDK-SP dizinlerinin en az bir anlık görüntüsünü ekleyin
Android kaynak kodundaki sürümler. Derleme sırasında, gerekli anlık görüntüler
/system/lib[64]/vndk-${VER}
ve
/system/lib[64]/vndk-sp-${VER}
(
(${VER}
, tedarikçi firma bölümü) belirten dize değişkenidir.
VNDK anlık görüntüsünün sürüm adını temsil eder.
VNDK anlık görüntü kitaplıkları her VNDK sürümü için farklı olabileceğinden, VNDK
anlık görüntü, bağlayıcı ad alanı yapılandırmalarını da içerir.
etc/ld.config.${VER}.txt
,
/etc/llndk.libraries.${VER}.txt
ve
/etc/vndksp.libraries.${VER}.txt
.
Örnek: Sistemi ve tedarikçi firmanın sürümünü yükseltme resimler
Anlık görüntü gerekmez; VNDK için ek yapılandırmalar olmadan derleme anlık görüntüler.
Örnek: Yalnızca sistem görüntüsünü yükseltme
Şuna ait VNDK anlık görüntüsünü ve bağlayıcı ad alanı yapılandırma dosyalarını içermelidir:
sistem görüntüsündeki tedarikçi firma
imajıdır. Bağlayıcı ad alanı yapılandırma dosyaları
şurada VNDK kitaplıklarını aramak için otomatik olarak yapılandırılır:
/system/lib[64]/vndk-${VER}
ve
/system/lib[64]/vndk-sp-${VER}
.
Örnek: Sistem görüntüsünü yükseltme, tedarikçi firma görüntüsünde küçük değişiklik
VNDK anlık görüntüsüne göre tedarikçi firma görüntüsü oluşturma henüz desteklenmiyor. Bu nedenle, tedarikçi imajını orijinal kaynak koduyla ayrı olarak derlemeli, sistem görüntüsünü önceki örnekte açıklandığı gibi yeni sürüme geçirin.
VNDK anlık görüntü mimarisi
Bir Android 9 sistem görüntüsünü Android 8.1 tedarikçi firma görüntüsü, Android 8.1 ile eşleşen VNDK anlık görüntüsü Android 9 için tedarikçi firma görüntüsü sağlanmalıdır aşağıdaki gibi sistem görüntüsü:
.VNDK anlık görüntü tasarımı aşağıdaki yöntemleri içerir:
- VNDK-core ve VNDK-SP için anlık görüntü oluşturma
kitaplıklar. Android 9'da
mevcut VNDK derlemesinin anlık görüntüsünü almak için kullanabilirsiniz. Bu komut dosyası tümünü gruplandır
/system/lib[64]/vndk-28
ve kütüphaneler/system/lib[64]/vndk-sp-28
bir VNDK anlık görüntüsü olarak kaynak kodu kullanılır; burada28
, Android 9 Anlık görüntü, bağlayıcıyı da içerir/etc/ld.config.28.txt
ad alanı yapılandırma dosyaları,/etc/llndk.libraries.28.txt
ve/etc/vndksp.libraries.28.txt
. Oluşturulan anlık görüntü kullanılacak (Android 9'dan yüksek) kullandığınızdan emin olun. - Önceden oluşturulmuş VNDK çekirdek ve VNDK-SP kitaplıklarını
anlık görüntü. Android 9'da bir VNDK anlık görüntüsü
önceden oluşturulmuş bir VNDK çekirdek kitaplığı ve bir dizi VNDK-SP kitaplığının yanı sıra
bağlayıcı ad alanı yapılandırma dosyaları olarak kullanılır. Bir VNDK listesi sağladığınızda
derleme sırasında sistem görüntüsünün yüklenecek anlık görüntü sürümleri
VNDK anlık görüntü kitaplıkları
/system/lib[64]/vndk-${VER}
ve/system/lib[64]/vndk-sp-${VER}
dizinleri ve bağlayıcı bu VNDK anlık görüntülerinin ad alanı yapılandırma dosyalarını/etc
dizini.
VNDK sürüm oluşturma
Her Android sürümü yalnızca bir VNDK anlık görüntüsüne sahiptir ve SDK sürümü
VNDK sürümü (VNDK sürümünün 27 gibi bir tam sayı sayısına sahip olduğu anlamına gelir)
(Android 8.1 için) bakın. Android sürümü şu durumda olduğunda VNDK sürümü sabittir:
yayınlandı. Tedarikçi firma bölümü tarafından kullanılan VNDK sürümü depolandı
ro.vndk.version
özelliğinde otomatik olarak yer alır. Bu özellik,
emin olun. Bu sürüm daha sonra tedarikçi VNDK sürümünü tanımlamak için kullanılır
ve ad alanı için VNDK anlık görüntü sürümünü tanımlama
yapılandırma.
VNDK kitaplıkları oluşturma
make vndk
komutu, bağımlılıklar ve ad alanı dahil olmak üzere vndk:
{ enabled: true, … }
içeren kitaplıklar oluşturur
yapılandırma dosyaları. BOARD_VNDK_VERSION := current
ayarlanmışsa
bu kitaplıklar make
komutuyla oluşturulur.
Bu derleme anlık görüntüden VNDK kitaplıklarını yüklemediği için yüklü VNDK kitaplıkları ABI kararlılığında değildir. Ancak Android sürümü yayınlandığında, mevcut VNDK sürümünün ABI'si düzeltilmiştir. Bu noktada ABI arızası bir yapı hatasıdır, bu nedenle Android sürümüne yapılan yamalar VNDK kitaplıkları için ABI'yı değiştirin.