Bal*_*n A 8 android android-service android-service-binding android-securityexception android-application-class
在我的 Android-O 设备中,下面两个后台服务通过 AIDL 相互通信。
本机/C++ android 服务
eg, /system/bin/nat二进制。来自 apk 的 Java 服务
eg /system/app/jav/jav.apk到目前为止没有问题。以上两个服务都注册了ServiceManager. 两个服务都可以通过 /dev/binder. 相互调用,都从 Android 启动开始并无限期地继续运行。
高音带来了麻烦:
按照 Treble 的要求,上面的两个都应该移动到 /vendor 分区,并有适当的 SEPolicies。,这样,java 和 c++ 服务都可以通过/dev/vndbinder.相互调用,即通过注册自己VendorServiceManager。
参考文档https://source.android.com/devices/architecture/hidl/binder-ipc我能够启动本地 c++ 服务,/vendor/bin/nat从中VenorServiceManager(/dev/vndbinder)成功注册。
现在我可以通过vndservice call com.yyy.zzz.Myservice 0
但是,无法启动部署为的 JAVA 供应商服务来调用 aidl 接口函数/vendor/app/jav/jav.apk.
看起来总是ServiceManager处理 AndroidManifest 中的所有“服务”条目,VendorServiceManager甚至不处理 /vendor 分区应用程序。我不能通过 AndroidManifest 注册 VendorServiceManager 吗?如果是,是否有任何示例应用程序/代码可以参考?
另外,Android 抛出错误说后台服务无法启动。有没有办法从 /vendor 分区应用程序获得后台 JAVA 服务,即使它是由系统 linux 用户启动并使用平台证书签名的?
我不希望有“作业调度程序”类型的延迟处理程序,因为通信和响应预计是实时的,并且服务预计从启动时开始无限期运行。
请帮助您提出建议。
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |