Android 11, VNDK anlık görüntü derlemesini destekler
yapılar
ne olursa olsun vendor.img
oluşturmak için kullanabileceğiniz tedarikçi anlık görüntüleri
Kaynak ağaçtaki Android sürümü. Bu işlem, resimlerin karma sürümlerini etkinleştirir.
hem de yeni bir sistem görüntüsüne sahip olursunuz.
Aşağıdakiler için karma resim sürümleri desteklenmez.
Android.mk.
Shortg, tedarikçi firma anlık görüntüsünü oluşturduğundan modüllerAndroid.mk
, tedarikçi anlık görüntüsü olarak yakalanmaz (SoC'ye ait modüller)Android.mk
ürününün çalışacağı garanti edilmez.)Dezenfektan. Tedarikçi firma ve VNDK anlık görüntüleri, dezenfektan olarak dezenfektanı desteklemez varyantlarının ayrı olarak oluşturulması gerekir.
Tedarikçi firma anlık görüntüleri hakkında
Tedarikçi firma anlık görüntüsü, OEM'in sahip olduğu anlık görüntüdür. Bu program, önceden oluşturulmuş C++ modüllerinden oluşur.
/vendor
ürününde yüklendi ancak AOSP'de korunuyor. Tedarikçiyi yakalamadan
yeni Android sürümüne geçme, önceki Android sürümünün anlık görüntüsü
tedarikçi anlık görüntü modülleri kaldırılabileceği için tedarikçi firma bölümünü bozabilir
ya da API veya ABI uyumluluğu olmadan değiştirilmiştir.
Tedarikçi firma anlık görüntüsü, AOSP'de aşağıdaki modülleri içerir.
vendor: true
veyavendor_available: true
ile paylaşılan, statik ve başlık kitaplıklarıvendor_available: true
içeren VNDK statik kitaplıklarıvendor: true
veyavendor_available: true
ile yürütülebilir dosyalar ve nesne dosyaları
Aşağıdaki dizinlerde yer alan modüller, SoC'ye ait donanım kodu olarak kabul edilir ve yok sayılır.
device/
vendor/
hardware/
, şunlar hariç:hardware/interfaces
hardware/libhardware
hardware/libhardware_legacy
SoC'ye ait donanım kodları diğer dizinlerde de bulunabilir. Şu anda tedarikçi anlık görüntüleri bu yapılandırmaları desteklemez.
Tedarikçi firma anlık görüntüleri derleyin
Aşağıdaki komutları kullanarak tedarikçi firma anlık görüntüsü oluşturun.
. build/envsetup.sh
lunch target
m dist vendor-snapshot
Bu komutlar vendor-$(TARGET_DEVICE).zip
dosyasını kullanarak
$DIST_DIR
. Aşağıdaki örnekte bir satıcı anlık görüntü zip dosyası gösterilmektedir:
vendor-$(TARGET_DEVICE).zip
├── arch-arm64-armv8-a
│ ├── binary -> binary files, *.json files
│ ├── header -> *.json files
│ ├── object -> *.o files, *.json files
│ ├── shared -> *.so files, *.json files
│ └── static -> *.a files, *.json files
├── arch-arm-armv8-a -> (arch-arm64-armv8-a)
├── configs -> *.rc files, *.xml files
├── include -> exported header files (*.h, *.hh, etc.)
└── NOTICE_FILES -> license txt files
- JSON dosyalarında modül adı, dışa aktarılan dizinler,
init_rc
dosya vevintf_fragments
dosya. configs
dizini,init_rc
işaretlerinden.rc
ve.xml
dosyaları içerir vevintf_fragments
.
Tedarikçi firma anlık görüntülerini yükleyin
Tedarikçi firma anlık görüntüsü yüklemek için hedef dizine gidin ve ekleyebilirsiniz.
python3 development/vendor_snapshot/update.py --local $DIST_DIR --install-dir \
vendor/vendor name/vendor_snapshot VER
Bu komut,
/vendor/vendor name/vendor_snapshot/vVER/$(TARGET_ARCH)/Android.bp
Aşağıdaki örnekte bir tedarikçi firma anlık görüntüsünün dizin yapısı gösterilmektedir:
vendor/vendor name/vendor_snapshot/
├── v30
│ ├── arm64
│ │ ├── arch-arm64-armv8-a
│ │ │ ├── binary -> (prebuilt libs)
│ │ │ ├── object -> (prebuilt libs)
│ │ │ ├── shared -> (prebuilt libs)
│ │ │ └── static -> (prebuilt libs)
│ │ ├── arch-arm-armv8-a -> (same as above)
│ │ ├── configs -> (config files)
│ │ ├── include -> (exported header files)
│ │ ├── NOTICE_FILES -> (license files)
│ │ └── Android.bp -> (snapshot modules)
│ ├── arm -> (same as above)
│ ├── x86_64 -> (same as above)
│ └── x86 -> (same as above)
└── (other vendor versions) -> (same as above)
Tedarikçi firma görüntüleri derleyin
VNDK anlık görüntü derlemesini kullanma
yapılar
ve tedarikçi firma anlık görüntüsü için Android'den bağımsız olarak vendor.img
sürümünü kullanarak farklı versiyonların karışık sürümlerini
resim. Hem VNDK anlık görüntüsünü hem de tedarikçi firma anlık görüntüsünü yükledikten sonra,
Tedarikçi firma sürümüne BOARD_VNDK_VERSION
. Örnek:
# BoardConfig.mk
BOARD_VNDK_VERSION := 29
BOARD_VNDK_VERSION
, current
dışında bir değere ayarlandığında derleme
sistem:
- VNDK anlık görüntü modüllerini ve tedarikçi firma anlık görüntü modüllerini etkinleştirir.
BOARD_VNDK_VERSION
Her anlık görüntü modülü bir C++ kaynak modülünü geçersiz kılar aynı ada sahip. ro.vndk.version
değeriniBOARD_VNDK_VERSION
olarak ayarlar.BOARD_VNDK_VERSION
-system_ext
VNDK anlık görüntü modüllerini yükler.