1.定义好服务名
String PBAP_SERVICE_NAME = "phone_pbap_svc";
String HFP_SERVICE_NAME = "phone_hfp_svc";
- XXX是aidl实现
ServiceManager.addService(HFP_SERVICE_NAME, XXX);
ServiceManager.addService(PBAP_SERVICE_NAME, XXX);
如果没有权限,addService后抛出异常处理方式如下
1.文件:lagvm/lagvm/LINUX/android/device/qcom/sepolicy/generic/private/service_contexts
未尾添加
phone_hfp_svc u:object_r:phone_hfp_service:s0
phone_pbap_svc u:object_r:phone_pbap_service:s0
蓝色phone_hfp_svc和phone_pbap_svc就是代码中定义好的service name
红色phone_hfp_service和phone_pbap_service可自定义,需与前面的phone_hfp_svc和phone_pbap_svc不同
2.文件:lagvm/lagvm/LINUX/android/device/qcom/sepolicy/generic/private/platform_app.te
未尾添加
allow platform_app phone_hfp_service:service_manager { add find };
allow platform_app phone_pbap_service:service_manager { add find };
3.文件:lagvm/lagvm/LINUX/android/device/qcom/sepolicy/generic/private/priv_app.te
未尾添加
allow priv_app phone_hfp_service:service_manager { add find };
allow priv_app phone_pbap_service:service_manager { add find };
4.文件:lagvm/lagvm/LINUX/android/device/qcom/sepolicy/generic/private/system_app.te
未尾添加
allow system_app phone_hfp_service:service_manager { add find };
allow system_app phone_pbap_service:service_manager { add find };
5.文件:lagvm/lagvm/LINUX/android/device/qcom/sepolicy/generic/private/system_service.te
未尾添加
allow system_server phone_hfp_service:service_manager { add find };
allow system_server phone_pbap_service:service_manager { add find };
6.文件:lagvm/lagvm/LINUX/android/device/qcom/sepolicy/generic/public/service.te
未尾添加
type phone_hfp_service, app_api_service, system_api_service, service_manager_type;
type phone_pbap_service, app_api_service, system_api_service, service_manager_type;
编译方法:
make selinux_policy
adb push out/target/product/msmnile_gvmq/system/etc/selinux /system/etc
adb push out/target/product/msmnile_gvmq/system/system_ext/etc/selinux /system/system_ext/etc
adb push out/target/product/msmnile_gvmq/vendor/etc/selinux /vendor/etc
adb push out/target/product/msmnile_gvmq/product/etc/selinux /product/etc(这一条out/target/product/msmnile_gvmq/product/etc/selinux目录可能不存在)
赞成为第一个赞同者