SDV 从服务软件包和 Java 应用的自动生成的 Android ID (AID) 中派生出它们的身份。由于供应商硬件抽象层 (HAL) 等原生服务缺少这种自动机制,您必须手动配置它们,以将 SDV 身份与每个服务的程序相关联。
如需将 SDV 身份与原生服务计划相关联,请按以下步骤操作:
在服务所在分区的预留范围内(例如供应商或产品范围),为服务定义唯一的 AID。
如需详细了解特定于分区的范围,请参阅配置 AID。
为每个原生服务定义唯一的 AID,而不是在多个服务之间共享单个 AID。由于服务身份是根据 AID 分配给服务进程的,因此共享 AID 会导致共享服务身份及其授权。
使用服务
.rc文件中的user选项,在您创建的唯一 AID 下配置服务。例如:
service native_sdv_gateway_client_service /vendor/bin/native_sdv_gateway_client_service [..] user vendor_gateway_client [..]将唯一 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