Hizmet paketi meta verileri

Bu sayfada, zorunlu ve isteğe bağlı hizmet paketi meta veri alanlarının nasıl kullanılacağı açıklanmaktadır.

Zorunlu meta veriler

Hizmet paketi yürütme modeli, her hizmet paketinin aşağıdaki meta verileri tanımlamasını gerektirir:

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"
  ...
}

İsteğe bağlı meta veriler

İsteğe bağlı meta veriler, belirli SDV özelliklerini destekler.

Orkestrasyon meta verileri

SDV düzenleme yapılandırması, hizmet paketlerinin başlatma ve kapatma davranışını kontrol etmek için bir mekanizma sağlar. SDV düzenleme yapılandırması, hizmet paketi örneklerinde işlemlerin ne zaman ve nasıl gerçekleştirileceğini belirleyen bir dizi kural tanımlar. Bu kurallar; araç, güç ve özel modlara göre belirlenir.

Bir düzenleme yapılandırmasını hizmet paketiyle ilişkilendirmek için isteğe bağlı orchestration_config_path alanında prebuilt_etc modülünün yolunu belirtin:

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"
}

Yetkilendirme politikası yolu

SDV yetkilendirme politikası, hizmet paketi için izinleri bildirme mekanizması sağlar. Yetkilendirme politikası, hizmet paketinin hangi işlemleri gerçekleştirebileceğini (ör. yayınlama, abone olma, sunma veya çağırma) tanımlar.

Yetkilendirme politikasını hizmet paketine ilişkilendirmek için isteğe bağlı authorization_policy_path alanında prebuilt_etc modülünün yolunu belirtin:

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"
}

VSIDL sağlayıcı meta verileri

VSIDL sağlayıcı meta verileri, hizmet paketlerini teşhis ve SOME/IP platformu aracılarıyla entegre etme mekanizmasının bir parçasıdır.

VSIDL sağlayıcı meta verilerini bir hizmet paketiyle ilişkilendirmek için, isteğe bağlı vsidl_schemas_path / diagnostics_config_path / (yalnızca SOME/IP yapılandırma APEX'i) external_service_bundle_metadata_path alanında oluşturulan meta verileri içeren prebuilt_etc dosyalarının yolunu belirtin:

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"
}

Daha fazla bilgi için VSIDL Sağlayıcılarına Genel Bakış başlıklı makaleyi inceleyin.

Günlük etiketi meta verileri

Günlük etiketi özelliği, hizmet paketi tarafından oluşturulan günlüklerin benzersiz tanımlayıcısını belirtir. Bu özellik tanımlanmamışsa paket adı, hizmet paketi adı ve örnek adı kullanılarak otomatik olarak varsayılan bir etiket oluşturulur. En iyi netlik için kısa ve benzersiz bir günlük etiketi tanımlayın.

Özel meta veriler

Özel meta veriler, OEM'lerin ve satıcıların belirli hizmet paketi meta verilerini tanımlamasına olanak tanır.

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"
  }
}

Tam örnek

# 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"
  }
}

Referanslar