1,配置服务类型
这里有两种选择:
使用已有的服务类型:
// /device/xxx/common/sepolicy/private/service_contexts
// “hatpreview”是自定义服务的服务名,即注册到ServiceManager的服务名
hatpreview u:object_r:default_android_service:s0
自定义服务类型:
// /device/xxx/common/sepolicy/vendor/service.te
// “hatpreview_service”是要新增的服务类型名。
type hatpreview_service, service_manager_type;
// /device/xxx/common/sepolicy/vendor/service_contexts
// 将服务匹配到对应的服务类型
type hatpreview_service, service_manager_type;
2,让android应用能够找到服务
如果使用自定义服务类型,那么一定要有这一步。如果使用已有的服务类型,那么应用可能已经具备找到服务的权限了。具体配置方法如下:
// /device/xxx/common/sepolicy/vendor/platform_app.te
// hatpreview_service是自定义的服务类型
allow platform_app hatpreview_service:service_manager find;
这里是让拥有系统签名但没有system权限的应用可以通过ServiceManager找到hatpreview_service类型的服务。另外类型的应用需要在priv_ap