設定原生服務的身分

SDV 會根據自動產生的 Android ID (AID),推導出服務套件和 Java 應用程式的身分。由於供應商硬體抽象層 (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 設定檔中指定的服務身分

    服務 ID 包含套件名稱、服務套件名稱和服務執行個體名稱。並以 packageName.serviceBundleName/serviceInstanceName 形式的字串編碼。

    舉例來說,如果您的服務在供應商分區中執行,且 AID 為 vendor_gateway_client,數值為 2902,則必須將對應項目新增至 /vendor/etc/sdv_native_services_names 檔案:

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