Android系统服务如何提供RPC接口?

How to provide RPC interface in an Android system service?

我正在开发一个(本机)服务进程,其可执行文件位于 Android 8.1/9.0 上的系统分区。我们称这个过程为 S. S 应该向进程 V 提供 RPC 服务,该进程 V 的可执行文件 驻留在供应商分区上。我读自 Android 高音架构 系统组件通过 HIDL 与供应商组件分开 接口。我应该使用 HIDL 中的回调接口来适应 我需要,还是应该使用其他一些机制,例如 AIDL?

是的,您需要将 Hardware Binder 上下文与 HIDL 一起使用。

背景:现在有3个Binder上下文:

  1. 框架活页夹(/dev/binder
    这仅适用于 system/framework 端的 IPC。此 Binder 上下文使用 AIDL.
  2. 供应商活页夹(/dev/vndbinder
    这仅适用于供应商端的 IPC。此 Binder 上下文也使用 AIDL
  3. 硬件活页夹(/dev/hwbinder
    此上下文允许将供应商端的服务与 system/framework 端的服务连接起来。由于 Trebles 的目标是允许单独更新系统和供应商分区,因此 AIDL 不再足够安全。因此 HIDL 被引入并被此上下文使用。