Deployment

Deployment file kebijakan otorisasi menentukan lokasi penyimpanan yang ditetapkan untuk file kebijakan khusus untuk setiap layanan kendaraan software-defined (SDV). Mekanisme deployment bervariasi antara platform inti SDV dan SDV IVI.

Platform inti SDV

Platform inti SDV menggunakan file APEX untuk memaketkan bundle layanan dan konfigurasi bundle layanan. Komponen pendaftaran paket layanan mengambil kebijakan otorisasi untuk paket layanan SDV yang disimpan di APEX.

APEX adalah paket bertanda tangan dengan nama unik yang disebut nama paket. Setiap APEX dapat berisi beberapa paket layanan. Setiap paket layanan memiliki metadata yang dideklarasikan dalam file manifes di APEX.

Metadata paket layanan memiliki jalur ke file kebijakan otorisasi, yang harus berada dalam APEX yang sama.

Deploy kebijakan otorisasi untuk layanan SDV dengan identitas {sdv-vm-name}:{package.name}.{ServiceBundle}.{instance-name} di SDV sebagai berikut:

  1. Letakkan file kebijakan otorisasi di APEX package.name.
  2. Perbarui entri ServiceBundle dalam file manifes paket layanan di APEX package.name dengan menambahkan jalur kebijakan otorisasi yang sesuai ke dalam kolom authorization_policy_path.
  3. Deploy package.name APEX ke VM sdv-vm-name.

Contoh

(apex_root) sdv_service_bundles_manifest.textproto

sdv_service_bundle_metadata {
  name: "SampleRpcServer"
  version_number: 0
  version_name: "0.1 Alpha"
  native_library_path: "lib64/libsdv_sample_rpc.so"
  # Path to the authorization policy file.
  # Warning: Must be a relative path to the APEX root directory.
  authorization_policy_path: "etc/authz/sample_rpc/permissions.textproto"
}

Tempatkan file kebijakan otorisasi di etc/authz/sample_rpc/permissions.textproto dalam APEX yang sama dengan sdv_service_bundles_manifest.textproto.

Platform IVI SDV

Ada perbedaan tertentu antara platform IVI SDV dan penerapan inti SDV. Di platform IVI SDV:

  • Tidak ada pendaftaran paket layanan.
  • Aplikasi berbasis Java dan dikirimkan dalam APK.
  • Agen tidak ada di APEX.

Karena faktor-faktor ini, deployment di platform SDV berbeda.

Deploy kebijakan otorisasi untuk layanan SDV dengan identitas {ivi-vm-name}:{package.name}.{ServiceBundle}/{instance-name} di SDV IVI sebagai berikut:

  1. Tentukan jalur kebijakan otorisasi sesuai dengan pola {policy-dir}/{package.name}/{ServiceBundle}.textproto.
    • Dengan policy-dir adalah salah satu dari berikut ini:
      • /product/etc/sdv_authz_policies
      • /system/etc/sdv_authz_policies
      • /system_ext/etc/sdv_authz_policies
      • /vendor/etc/sdv_authz_policies
    • Misalnya, /vendor/etc/sdv_authz_policies/com.sdv.pkg/WindowManager.textproto adalah jalur kebijakan otorisasi yang valid.
  2. Masukkan kebijakan otorisasi di jalur kebijakan otorisasi pada VM ivi-vm-name.

Dukungan pengujian dan agen

Agen SDV memiliki deployment kebijakan otorisasi yang sama di SDV core dan SDV IVI. Jika agen tidak memiliki APEX, kebijakan otorisasi yang sesuai harus berada di APEX khusus konfigurasi pendamping.

Contoh

(apex_root) sdv_service_bundles_manifest.textproto

sdv_service_bundle_metadata {
   # Should match the bundle name in the FQIN registered by the SOME/IP broker agent
   name: "SomeIpBroker"
   # Version number of the config APEX
   version_number: 1
   # Version name of the config APEX
   version_name: "1"

   # Reference the manifest itself to mark the metadata as a config-only
   # declaration.
   native_library_path: "etc/sdv_service_bundles_manifest.textproto"

   # Path to the authorization policy file for SOME/IP broker.
   authorization_policy_path: "etc/config/access_control/someip_authz_policy.textproto"
}

Kebijakan otorisasi tingkat VM

Letakkan kebijakan tingkat VM di APEX dengan nama paket com.oem.sdv.authz. Gunakan file khusus dengan nama <vm_name>.textproto yang sesuai.

Jika <vm_name>.textproto yang sesuai tidak ada, framework otorisasi juga akan mencari file .default.textproto di APEX yang sama.

Alasan

.default.textproto diperkenalkan karena dua alasan:

  • Penyiapan yang disederhanakan: Untuk beberapa OEM, mungkin cukup untuk menetapkan default.textproto untuk semua VM SDV, dan hanya memberikan <vm-name>.textproto khusus untuk VM IVI.
  • Kemampuan update: Jika VM baru muncul setelah update kendaraan, default.textproto yang wajar mungkin cukup untuk menghindari update semua VM.

Logika resolusi

Saat memeriksa izin untuk subjek dari VM yang disebut <vm-name>, framework otorisasi mencari kebijakan dalam urutan berikut:

  1. <vm-name>.textproto: Jika ada, lakukan pemeriksaan berdasarkan <vm-name>.textproto. Jika tidak ada, kembali ke file default.
  2. .default.textproto: Jika ada, lakukan pemeriksaan berdasarkan .default.textproto. Jika tidak ada, tolak akses.

Tentukan modul Soong dengan izin tingkat VM

Modul harus berupa APEX dengan nama paket com.oem.sdv.authz.

Tambahkan nilai ke file .mk:

SDV_VM_LEVEL_PERMISSIONS_MODULE := {soong.module.name}