ネイティブ サービスの ID を構成する

SDV は、サービス バンドルと Java アプリの ID を自動生成された Android ID(AID)から取得します。ベンダー ハードウェア抽象化レイヤ(HAL)などのネイティブ サービスにはこの自動メカニズムがないため、SDV ID を各サービスのプログラムに関連付けるように手動で構成する必要があります。

SDV ID をネイティブ サービス プログラムに関連付けるには、次の操作を行います。

  1. サービスが配置されているパーティションの予約済み範囲(ベンダーやプロダクトの範囲など)で、サービスの一意の AID を定義します。

    パーティション固有の範囲の詳細については、AID を構成するをご覧ください。

    複数のサービスで単一の AID を共有するのではなく、ネイティブ サービスごとに一意の AID を定義します。サービス ID は AID に基づいてサービス プロセスに割り当てられるため、AID を共有すると、サービス ID とその認可が共有されます。

  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 にマッピングします。

    サービス ID は、パッケージ名、サービス バンドル名、サービス インスタンス名で構成されます。packageName.serviceBundleName/serviceInstanceName の形式の文字列としてエンコードされます。

    たとえば、サービスが AID vendor_gateway_client でベンダー パーティションで実行され、数値 2902 を持つ場合、マッピングを /vendor/etc/sdv_native_services_names ファイルに追加する必要があります。

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