SDV 會根據自動產生的 Android ID (AID),推導出服務套件和 Java 應用程式的身分。由於供應商硬體抽象層 (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設定檔中指定的服務身分。服務 ID 包含套件名稱、服務套件名稱和服務執行個體名稱。並以
packageName.serviceBundleName/serviceInstanceName形式的字串編碼。舉例來說,如果您的服務在供應商分區中執行,且 AID 為
vendor_gateway_client,數值為2902,則必須將對應項目新增至/vendor/etc/sdv_native_services_names檔案:2902,android.sdv.samples.gateway.client.NativeTestApp/default