Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.
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 yang lebih tinggi, aturan VNDK, dan sepolicy terkait.

Tata letak direktori

Tata Letak Direktori Terdegenerasi terdiri dari direktori berikut:

  • /system/lib[64] berisi semua library bersama framework, termasuk LL-NDK, VNDK, dan library khusus framework (termasuk LL-NDK-Private dan beberapa library dengan nama yang sama dengan yang ada di VNDK-SP).
  • /system/lib[64]/vndk-sp berisi pustaka VNDK-SP untuk HAL dengan proses yang sama.
  • /vendor/lib[64] berisi pustaka VNDK yang diperluas oleh vendor (pustaka DXUA atau DXUX VNDK), implementasi HAL dengan proses yang sama, dan pustaka bersama vendor lainnya.
  • /vendor/lib[64]/vndk-sp mungkin 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 library non-LL-NDK, non-VNDK-SP, dan non-VNDK dari partisi sistem. (tidak diterapkan secara ketat di Android O tetapi akan dirilis di masa mendatang).
  • Library VNDK yang diinstal harus merupakan bagian dari library VNDK yang memenuhi syarat yang ditentukan Google.
  • Dependensi luar SP-HAL dan SP-HAL-Dep harus dibatasi ke LL-NDK atau library VNDK-SP yang ditentukan Google.
    • Dependensi pustaka bersama SP-HAL harus dibatasi ke pustaka LL-NDK, pustaka VNDK-SP yang ditentukan Google, pustaka SP-HAL lainnya, dan / atau pustaka bersama vendor lain yang dapat diberi label sebagai pustaka SP-HAL-Dep .
    • Pustaka bersama vendor dapat diberi label sebagai pustaka SP-HAL-Dep hanya jika itu bukan pustaka AOSP dan dependensinya dibatasi pada 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 di rilis mendatang.
  • Tidak ada komunikasi vendor kerangka kerja melalui antarmuka non-HIDL, termasuk (tetapi tidak terbatas pada) pengikat, soket, memori bersama, file, dll.
  • Ukuran partisi sistem harus cukup besar untuk memuat dua salinan dari semua pustaka VNDK yang memenuhi syarat dan satu salinan pustaka bersama kerangka kerja yang tidak memenuhi syarat.

sepolicy

Proses kerangka kerja yang dijelaskan di bagian ini sesuai dengan coredomain di sepolicies sedangkan proses vendor sesuai dengan non-coredomain . Misalnya, /dev/binder hanya bisa diakses di coredomain dan /dev/vndbinder hanya bisa diakses di non- coredomain .

Kebijakan serupa membatasi akses ke pustaka bersama di partisi sistem dan vendor. Tabel berikut ini memperlihatkan hak untuk mengakses pustaka bersama dari berbagai kategori:

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

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

same_process_hal_file label

Pustaka berikut ini 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 di /vendor/lib[64] atau /vendor/lib[64]/hw

same_process_hal_file label eksplisit file-file ini sebagai same_process_hal_file , karena apa pun yang ada di partisi vendor secara default tidak dapat diakses ke coredomain . Tambahkan baris yang mirip dengan berikut ini 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