为原生服务配置身份

SDV 从服务软件包和 Java 应用的自动生成的 Android ID (AID) 中派生出它们的身份。由于供应商硬件抽象层 (HAL) 等原生服务缺少这种自动机制,您必须手动配置它们,以将 SDV 身份与每个服务的程序相关联。

如需将 SDV 身份与原生服务计划相关联,请按以下步骤操作:

  1. 在服务所在分区的预留范围内(例如供应商或产品范围),为服务定义唯一的 AID。

    如需详细了解特定于分区的范围,请参阅配置 AID

    为每个原生服务定义唯一的 AID,而不是在多个服务之间共享单个 AID。由于服务身份是根据 AID 分配给服务进程的,因此共享 AID 会导致共享服务身份及其授权

  2. 使用服务 .rc 文件中的 user 选项,在您创建的唯一 AID 下配置服务。

    例如:

    service native_sdv_gateway_client_service /vendor/bin/native_sdv_gateway_client_service
        [..]
        user vendor_gateway_client
        [..]
    
  3. 将唯一 AID 的数值映射到服务所在分区的 sdv_native_services_names 配置文件中为该服务指定的服务身份

    服务身份由软件包名称、服务软件包名称和服务实例名称组成。它以 packageName.serviceBundleName/serviceInstanceName 形式的字符串进行编码。

    例如,如果您的服务在 AID 为 vendor_gateway_client 且数值为 2902 的供应商分区上运行,则必须将相应映射添加到 /vendor/etc/sdv_native_services_names 文件中:

    2902,android.sdv.samples.gateway.client.NativeTestApp/default