サービスアプリは<provider> <grant-uri-permission> を使って、特定のアプリからのみ参照可能なContentProviderを定義する
そのContentProviderはアプリのプライベートな領域にランダムなキーを生成する(初回のみ)

アプリBは サービスアプリのContentProviderにアクセスできるものとする
アプリBはContentResolver経由でサービスアプリのキーを取得する
アプリBはstartServiceでサービスアプリを起動する
アプリBはbindServiceの引数にランダムなキーを使ったURIを指定する

サービスアプリのonBindは、uriのキーを照合する

こんな流れか。

でもこれでセキュリティ的に大丈夫かどうかは 保証できないけどな。