Halaman ini menjelaskan cara menggunakan kolom metadata paket layanan wajib dan opsional.
Metadata wajib
Model eksekusi paket layanan mengharuskan setiap paket layanan menentukan metadata berikut:
- Nama layanan sesuai dengan konvensi penamaan SDV
- Representasi bilangan bulat dan string dari versi paket layanan
- Jalur ke library paket layanan
sdv_service_bundle_metadata {
# Name of the service bundle.
#
# Must follow SDV service naming convention rules.
# Ref: https:/automotive/sdv/core-areas/naming-conventions
#
# When using VSIDL catalog and middleware generation, this name must be
# equal to the service bundle name defined in the catalog.
name: "TheNameOfTheServiceBundle"
# Service Bundle Version Number.
# Must be non-negative number.
version_number: 1
# Service Bundle Version Name.
# Must be non-empty string.
version_name: "1.0 alpha"
# Path to the native library to be loaded as service bundle.
# Must be the relative path from the APEX root directory
native_library_path: "lib64/libservice_bundle.so"
}
# Service bundle one.
sdv_service_bundle_metadata {
name: "ServiceBundleOne"
...
}
# Service bundle two.
sdv_service_bundle_metadata {
name: "ServiceBundleTwo"
...
}
Metadata opsional
Metadata opsional mendukung kemampuan SDV tertentu.
Metadata orkestrasi
Konfigurasi orkestrasi SDV menyediakan mekanisme untuk mengontrol perilaku startup dan shutdown paket layanan. Konfigurasi orkestrasi SDV menentukan sekumpulan aturan yang menentukan kapan dan bagaimana tindakan dilakukan pada instance paket layanan. Aturan ini didasarkan pada mode kendaraan, daya, dan kustom.
Untuk mengaitkan konfigurasi orkestrasi dengan paket layanan, berikan jalur ke modul prebuilt_etc di kolom orchestration_config_path opsional:
sdv_service_bundle_metadata {
...
# Path to the orchestration config file.
# Warning: Shall be relative path to the APEX root directory.
orchestration_config_path: "etc/configuration/orchestration/configuration.textproto"
}
Jalur kebijakan otorisasi
Kebijakan otorisasi SDV menyediakan mekanisme untuk mendeklarasikan izin untuk paket layanan. Kebijakan otorisasi menentukan tindakan yang dapat dilakukan paket layanan (seperti memublikasikan, berlangganan, menayangkan, atau memanggil).
Untuk mengaitkan kebijakan otorisasi dengan paket layanan, berikan jalur ke modul prebuilt_etc di kolom authorization_policy_path opsional:
sdv_service_bundle_metadata {
...
# Path to the authorization policy file.
# Warning: Shall be relative path to the APEX root directory.
authorization_policy_path: "etc/authz/permissions.textproto"
}
Metadata penyedia VSIDL
Metadata penyedia VSIDL adalah bagian dari mekanisme untuk mengintegrasikan paket layanan dengan agen platform Diagnostik dan SOME/IP.
Untuk mengaitkan metadata penyedia VSIDL dengan paket layanan, berikan jalur ke file prebuilt_etc yang berisi file metadata yang dihasilkan di kolom vsidl_schemas_path / diagnostics_config_path / (khusus konfigurasi SOME/IP APEX) external_service_bundle_metadata_path opsional:
sdv_service_bundle_metadata {
...
# Path to the file with protobuf schemas extracted from bundle's VSIDL definition.
# Warning: Must be relative path to the APEX root directory.
vsidl_schemas_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-vsidl-config.binpb"
# Path to the diagnostics config file.
# Warning: Shall be relative path to the APEX root directory.
diagnostics_config_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-diag-config.binpb"
# Path to the SOME/IP config file. To be used in SOME/IP configuration apex only.
# Warning: Must be relative path to the APEX root directory.
external_protocol_mapping_path: "etc/vsidl_provider/someip-config.binpb"
}
Untuk mempelajari lebih lanjut, lihat Ringkasan Penyedia VSIDL.
Metadata tag log
Atribut tag log menentukan ID unik untuk log yang dihasilkan oleh paket layanan. Jika atribut ini tidak ditentukan, tag default akan otomatis dibuat menggunakan nama paket, nama paket layanan, dan nama instance. Untuk kejelasan optimal, tentukan tag log yang ringkas dan unik.
Metadata kustom
Metadata kustom memungkinkan OEM dan vendor menentukan beberapa metadata paket layanan tertentu
sdv_service_bundle_metadata {
...
# Custom service bundle metadata map.
# Key is a string, value is a string.
#
# 1st custom metadata value.
custom_metadata {
key: "question"
value: "Answer to the Ultimate Question of Life, the Universe, and Everything"
}
# 2nd custom metadata value.
custom_metadata {
key: "answer" value: "42"
}
}
sdv_service_bundle_metadata {
...
# Custom metadata values are stored in etc/.
custom_metadata {
key: "path_to_custom_metadata"
value: "etc/configuration/file"
}
}
Contoh lengkap
# proto-file: //system/software_defined_vehicle/core_services/service_bundles_registry/proto/sdv_service_bundles_manifest.proto
# proto-message: SdvServiceBundleManifestEntry
# SDV service bundle.
sdv_service_bundle_metadata {
# Name of the service bundle.
# Must follow SDV service naming convention rules.
name: "TheNameOfTheServiceBundle"
# Service Bundle Version Number.
# Must be non-negative number.
version_number: 42
# Service Bundle Version Name.
# Must be non-empty string.
version_name: "42.0.beta"
# Path to the native library to be loaded as service bundle.
# Must be the relative path from the APEX root directory.
native_library_path: "lib64/libservice_bundle.so"
# The log tag used for Android logging for the service bundle.
# If not specified, a tag derived from service bundle FQIN will be used.
log_tag: "current_service_bundle"
# Path to the orchestration config file.
# Warning: Shall be relative path to the APEX root directory.
orchestration_config_path: "etc/configuration/orchestration/configuration.textproto"
# Path to the file with protobuf schemas extracted from bundle's VSIDL definition.
# Warning: Must be relative path to the APEX root directory.
vsidl_schemas_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-vsidl-config.binpb"
# Path to the diagnostics config file.
# Warning: Must be relative path to the APEX root directory.
diagnostics_config_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-diag-config.binpb"
# Path to the SOME/IP config file. To be used in SOME/IP configuration apex only.
# Warning: Must be relative path to the APEX root directory.
external_protocol_mapping_path: "etc/vsidl_provider/someip-config.binpb"
# Custom service bundle metadata string.
# Key is a string, value is a string.
custom_metadata {
key: "key" value: "value"
}
# Custom metadata values are stored in etc/.
custom_metadata {
key: "path_to_custom_metadata"
value: "etc/configuration/file"
}
}