Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Direktori, Aturan, dan sepolicy

Halaman ini menjelaskan tata letak direktori untuk perangkat yang menjalankan Android 8.0 dan lebih tinggi, aturan VNDK, dan sepolicy terkait.

Tata letak direktori

Tata Letak Direktori yang Diturunkan terdiri dari direktori berikut:

  • /system/lib[64] berisi semua library shared framework, termasuk LL-NDK, VNDK, dan library framework-only (termasuk LL-NDK-Private dan beberapa perpustakaan dengan nama yang sama dengan yang ada di VNDK-SP).
  • /system/lib[64]/vndk-sp berisi pustaka VNDK-SP untuk HAL proses yang sama.
  • /vendor/lib[64] berisi perpustakaan VNDK yang diperluas oleh vendor (baik perpustakaan DXUA atau DXUX VNDK), implementasi HAL proses yang sama, dan perpustakaan bersama vendor lainnya.
  • /vendor/lib[64]/vndk-sp dapat berisi pustaka VNDK-SP yang diperluas oleh vendor.

Modul vendor memuat pustaka VNDK dari /system/lib[64] .

Aturan VNDK

Bagian ini memberikan daftar lengkap aturan VNDK:

  • Proses kerangka kerja tidak boleh memuat pustaka bersama non-SP-HAL dari partisi vendor (diberlakukan secara ketat mulai dari Android 8.1).
  • Proses vendor tidak boleh memuat pustaka non-LL-NDK, non-VNDK-SP, dan non-VNDK dari partisi sistem. (tidak dipaksakan secara ketat di Android O tetapi akan dirilis di masa mendatang).
  • Pustaka VNDK yang diinstal harus merupakan bagian dari pustaka VNDK yang memenuhi syarat yang ditentukan Google.
  • Ketergantungan luar SP-HAL dan SP-HAL-Dep harus dibatasi untuk perpustakaan LL-NDK atau VNDK-SP yang ditentukan Google.
    • Ketergantungan perpustakaan bersama SP-HAL harus dibatasi untuk perpustakaan LL-NDK, perpustakaan VNDK-SP yang ditentukan Google, perpustakaan SP-HAL lainnya, dan / atau perpustakaan bersama vendor lainnya yang dapat diberi label sebagai perpustakaan SP-HAL-Dep .
    • Pustaka bersama vendor dapat diberi label sebagai pustaka SP-HAL-Dep hanya jika itu bukan pustaka AOSP dan dependensinya dibatasi untuk pustaka LL-NDK, pustaka VNDK-SP yang ditentukan Google, pustaka SP-HAL, dan / atau perpustakaan SP-HAL-Dep lainnya.
  • VNDK-SP harus mandiri. libRS_internal.so mendapat perlakuan khusus di Android 8.0, tetapi akan ditinjau kembali dalam rilis mendatang.
  • Tidak ada komunikasi kerangka kerja-vendor melalui antarmuka non-HIDL, termasuk (tetapi tidak terbatas pada) binder, soket, memori bersama, file, dll.
  • Ukuran partisi sistem harus cukup besar untuk memuat dua salinan dari semua perpustakaan VNDK yang memenuhi syarat dan salinan kerangka kerja bersama perpustakaan yang tidak memenuhi syarat.

sepolicy

Proses kerangka kerja yang dijelaskan dalam bagian ini sesuai dengan coredomain di sepolicies sementara proses vendor sesuai dengan non-coredomain . Sebagai contoh, /dev/binder dapat diakses di coredomain dan /dev/vndbinder dapat diakses di non- coredomain .

Kebijakan serupa membatasi akses ke perpustakaan bersama pada partisi sistem dan vendor. Tabel berikut ini menunjukkan hak untuk mengakses perpustakaan bersama dari berbagai kategori:

Kategori Partisi Dapat diakses dari
coredomain
Dapat diakses dari
non-coredomain
LL-NDK Sistem Y Y
LL-NDK-Pribadi Sistem Y Y
VNDK-SP / VNDK-SP-Privat Sistem Y Y
VNDK-SP-Ext Penjaja Y Y
VNDK Sistem Y Y
VNDK-Ext Penjaja N Y
FWK-ONLY Sistem Y N
FWK-ONLY-RS Sistem Y N
SP-HAL Penjaja Y Y
SP-HAL-Dep Penjaja Y Y
HANYA VND Penjaja N Y

LL-NDK-Private dan VNDK-SP-Private harus dapat diakses dari kedua domain karena non- coredomain secara tidak langsung akan mengaksesnya. Demikian pula, SP-HAL-Dep harus dapat diakses dari coredomain karena SP-HAL bergantung padanya.

label same_process_hal_file

Pustaka berikut ada di partisi vendor. Jadikan perpustakaan ini dapat diakses dari coredomain dan non- coredomain .

  • VNDK-SP-Ext di /vendor/lib[64]/vndk-sp
  • SP-HAL di /vendor/lib[64] atau /vendor/lib[64]/hw
  • SP-HAL-Dep in /vendor/lib[64] atau /vendor/lib[64]/hw

same_process_hal_file label secara eksplisit pada file-file ini sebagai same_process_hal_file , karena apa pun di partisi vendor secara default tidak dapat diakses ke coredomain . Tambahkan baris yang mirip dengan yang berikut ke file file_contexts khusus file_contexts .

/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