【问题标题】:How to provide RPC interface in an Android system service?如何在Android系统服务中提供RPC接口?
【发布时间】:2019-11-18 19:14:31
【问题描述】:
我正在开发一个(本机)服务进程,其可执行文件驻留在
Android 8.1/9.0 上的系统分区。让我们称这个过程为 S.S
应该向其可执行文件的进程 V 提供 RPC 服务
驻留在供应商分区上。我从 Android Treble 架构中读到
HIDL 将系统组件与供应商组件分开
接口。我是否应该使用 HIDL 中的回调接口来适应
我的需要,还是我应该使用其他一些机制,例如 AIDL?
【问题讨论】:
标签:
android
android-source
rpc
android-binder
【解决方案1】:
是的,您需要将 Hardware Binder 上下文与HIDL 一起使用。
背景:现在有三个 Binder 上下文:
- 框架绑定器 (
/dev/binder)
这仅适用于系统/框架端的 IPC。此 Binder 上下文使用 AIDL。
- 供应商绑定 (
/dev/vndbinder)
这仅适用于供应商端的 IPC。此 Binder 上下文也使用 AIDL。
- 硬件绑定器 (
/dev/hwbinder)
此上下文允许将供应商端的服务与系统/框架端的服务连接起来。由于 Trebles 的目标是允许单独更新系统和供应商分区,AIDL 不再足够安全。因此HIDL 被引入并被此上下文使用。