Bu sayfada, Android 8.0 ve sonraki sürümleri çalıştıran cihazlar için dizin düzeni açıklanmaktadır. daha yüksek, VNDK kuralları ve ilişkili sepolicy.
Dizin düzeni
Bozuk Dizin Düzeni şunlardan oluşur: dizinler:
/system/lib[64]
, çerçeve içinde paylaşılan tüm kitaplıkları içerir. ve yalnızca çerçeve kütüphanelerini ( LL-NDK-Private ve VNDK-SP'dekiler)./system/lib[64]/vndk-sp
, şunlar için VNDK-SP kitaplıkları içerir: HAL'leri ekleyebilirsiniz./vendor/lib[64]
, tedarikçi firma tarafından genişletilen VNDK kitaplıklarını içerir (ya da DXUA veya DXUX VNDK kitaplıkları), aynı süreç HAL uygulamaları ve diğer tedarikçi firmalar koordineli olacaklardır./vendor/lib[64]/vndk-sp
, yardımcı olur.
Tedarikçi firma modülleri /system/lib[64]
kaynağından VNDK kitaplıklarını yükler.
VNDK kuralları
Bu bölümde, VNDK kurallarının kapsamlı bir listesi sunulmaktadır:
- Çerçeve işlemleri, satıcıdan SP-HAL olmayan paylaşılan kitaplıklar yüklememelidir bölümler (Android 8.1'den itibaren kesinlikle zorunlu kılınmıştır).
- Tedarikçi firma işlemleri LL-NDK, VNDK-SP olmayan ve VNDK olmayan kitaplıkları sistem bölümünde bulabilirsiniz. (Android'de kesin olarak zorunlu kılınmaz) O, ancak daha sonraki bir sürümde olacaktır).
- Yüklü VNDK kitaplıkları, Google tarafından tanımlanan uygun VNDK'nın bir alt kümesi olmalıdır kitaplıklar.
- SP-HAL ve SP-HAL-Dep'in dış bağımlılıkları
LL-NDK veya Google tarafından tanımlanan VNDK-SP kitaplıkları.
- SP-HAL paylaşılan kitaplığın bağımlılıkları LL-NDK ile sınırlı olmalıdır. kitaplıkları, Google tanımlı VNDK-SP kitaplıkları, diğer SP-HAL kitaplıkları ve/veya SP-HAL-Dep olarak etiketlenebilecek diğer satıcı paylaşılan kitaplıklar kitaplıklar.
- Tedarikçi firma tarafından paylaşılan bir kitaplık, yalnızca bir AOSP kitaplığı değildir ve bağımlılıkları LL-NDK kitaplıklarıyla sınırlıdır. Google tarafından tanımlanan VNDK-SP kitaplıkları, SP-HAL kitaplıkları ve/veya diğer SP-HAL-Dep kitaplıklar.
- VNDK-SP bağımsız olmalıdır.
libRS_internal.so
özel hale geliyor kullanıma sunuyoruz, ancak gelecekteki bir sürümde yeniden ziyaret edilecek. - Aşağıdakiler dahil olmak üzere, HIDL dışı arayüzlerle çerçeve-tedarikçi iletişimi yoktur. dosya, yuva, paylaşılan anılar, dosyalar vb.
- Sistem bölümünün boyutu iki kopya içerecek kadar büyük olmalıdır uygun olan tüm VNDK kitaplıklarının ve uygun olmayan çerçevenin bir kopyasının paylaşılmış kitaplıklar.
sepolicy
Bu bölümde açıklanan çerçeve işlemleri
Tedarikçi firma işlemleri ise sepolitikalarda coredomain
non-coredomain
. Örneğin /dev/binder
,
yalnızca coredomain
içinde erişilebilir ve /dev/vndbinder
yalnızca coredomain
dışında erişilebilir.
Benzer politikalar, sistem ve uygulama ortamlarında paylaşılan kitaplıklara erişimi kısıtlar. satıcı bölümleri. Aşağıdaki tabloda paylaşılan erişim hakları gösterilmektedir kitaplıklarını da kullanabilirsiniz:
Kategori | Bölüm | Coredomain'den erişilebilir |
Çekirdek alan dışındaki alandan erişilebilir |
---|---|---|---|
LL-NDK | Sistem | Y | Y |
LL-NDK-Gizli | Sistem | Y | Y |
VNDK-SP/VNDK-SP-Özel | Sistem | Y | Y |
VNDK-SP-Ext | Satıcı | Y | Y |
VNDK | Sistem | Y | Y |
VNDK-Ext | Satıcı | H | Y |
YALNIZCA FWK | Sistem | Y | H |
YALNIZCA FWK-RSK | Sistem | Y | H |
SP-HAL | Satıcı | Y | Y |
SP-HAL-Dep | Satıcı | Y | Y |
YALNIZCA VND | Satıcı | H | Y |
LL-NDK-Private ve VNDK-SP-Private olmalıdır:
her iki alandan da erişilebilir, çünkü coredomain
dışı
dolaylı olarak erişebilir. Benzer şekilde, SP-HAL-Dep'e
coredomain
, çünkü SP-HAL bunu kullanır.
aynı_işlem_hal_dosya etiketi
Tedarikçi firma bölümünde aşağıdaki kitaplıklar bulunur. Bu kitaplıklara her ikisinden de erişilebilir
coredomain
ve coredomain
olmayan
/vendor/lib[64]/vndk-sp
bölgesinde VNDK-SP-Ext/vendor/lib[64]
veya/vendor/lib[64]/hw
içinde SP-HAL/vendor/lib[64]
veya/vendor/lib[64]/hw
bölgesinde SP-HAL-Dep
Bu dosyaları açıkça same_process_hal_file
olarak etiketleyin çünkü
vendor
bölümü varsayılan olarak coredomain
tarafından erişilebilir değil. Şuna benzer satırlar ekle:
tedarikçi firmaya özel file_contexts
dosyasına ekleyin.
/vendor/lib(64)?/hw/libMySpHal\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/vndk-sp/libBase\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libBaseInternal\.so u:object_r:same_process_hal_file:s0