Nesta página, explicamos como usar os campos de metadados obrigatórios e opcionais do pacote de serviços.
Metadados obrigatórios
O modelo de execução do pacote de serviços exige que cada pacote defina os seguintes metadados:
- Nome do serviço de acordo com a convenção de nomenclatura do SDV
- Representação de número inteiro e string da versão do pacote de serviços
- Caminho para a biblioteca do pacote de serviços.
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"
...
}
Metadados opcionais
Os metadados opcionais oferecem suporte a recursos específicos da SDV.
Metadados de orquestração
A configuração de orquestração do SDV oferece um mecanismo para controlar o comportamento de inicialização e desligamento dos pacotes de serviços. Ela define um conjunto de regras que determinam quando e como as ações são realizadas nas instâncias de pacotes de serviços. Essas regras são baseadas em modos personalizados, de veículo e de energia.
Para associar uma configuração de orquestração ao pacote de serviços,
forneça o caminho para o módulo prebuilt_etc no
campo opcional orchestration_config_path:
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"
}
Caminho da política de autorização
A política de autorização do SDV oferece um mecanismo para declarar permissões para o pacote de serviços. A política de autorização define quais ações o pacote de serviços pode realizar (como publicar, assinar, veicular ou chamar).
Para associar uma política de autorização ao pacote de serviços, forneça o caminho para o módulo prebuilt_etc no campo opcional authorization_policy_path:
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"
}
Metadados do provedor VSIDL
Os metadados do provedor VSIDL fazem parte de um mecanismo para integrar pacotes de serviços com agentes de plataformas de diagnóstico e SOME/IP.
Para associar metadados de um provedor VSIDL a um pacote de serviços,
forneça o caminho para os arquivos prebuilt_etc que contêm metadados gerados
no campo opcional vsidl_schemas_path / diagnostics_config_path /
(somente APEX de configuração SOME/IP) external_service_bundle_metadata_path:
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"
}
Para saber mais, consulte Visão geral do provedor VSIDL.
Metadados de tag de registro
O atributo de tag de registro especifica o identificador exclusivo dos registros gerados pelo pacote de serviços. Se esse atributo não for definido, uma tag padrão será gerada automaticamente usando o nome do pacote, o nome do pacote de serviço e o nome da instância. Para ter clareza ideal, defina uma tag de registro concisa e exclusiva.
Metadados personalizados
Com os metadados personalizados, os OEMs e fornecedores podem definir alguns metadados específicos do pacote de serviços.
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"
}
}
Exemplo completo
# 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"
}
}