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上下文:
- 框架活页夹(
/dev/binder
)
这仅适用于 system/framework 端的 IPC。此 Binder 上下文使用 AIDL
.
- 供应商活页夹(
/dev/vndbinder
)
这仅适用于供应商端的 IPC。此 Binder 上下文也使用 AIDL
。
- 硬件活页夹(
/dev/hwbinder
)
此上下文允许将供应商端的服务与 system/framework 端的服务连接起来。由于 Trebles 的目标是允许单独更新系统和供应商分区,因此 AIDL
不再足够安全。因此 HIDL
被引入并被此上下文使用。
我正在开发一个(本机)服务进程,其可执行文件位于 Android 8.1/9.0 上的系统分区。我们称这个过程为 S. S 应该向进程 V 提供 RPC 服务,该进程 V 的可执行文件 驻留在供应商分区上。我读自 Android 高音架构 系统组件通过 HIDL 与供应商组件分开 接口。我应该使用 HIDL 中的回调接口来适应 我需要,还是应该使用其他一些机制,例如 AIDL?
是的,您需要将 Hardware Binder 上下文与 HIDL
一起使用。
背景:现在有3个Binder上下文:
- 框架活页夹(
/dev/binder
)
这仅适用于 system/framework 端的 IPC。此 Binder 上下文使用AIDL
. - 供应商活页夹(
/dev/vndbinder
)
这仅适用于供应商端的 IPC。此 Binder 上下文也使用AIDL
。 - 硬件活页夹(
/dev/hwbinder
)
此上下文允许将供应商端的服务与 system/framework 端的服务连接起来。由于 Trebles 的目标是允许单独更新系统和供应商分区,因此AIDL
不再足够安全。因此HIDL
被引入并被此上下文使用。