ServiceManager add_service SELinux Permission Denied
2016-06-27 19:17
1191 查看
问题点:
在systemserver.java中添加如下代码,向servicemanager进程中添加一个service<span style="font-size:18px;"> try {
Slog.i(TAG, "Hello Service");
ServiceManager.addService("hello", new HelloService());//
} catch (Throwable e) {
Slog.e(TAG, "Failure starting Hello Service", e);
} </span>
servicemanager是BINDER的管理者,负责协调Android里的进程通信。这里添加的helloservice是一个硬件管理服务,运行在单独的进程里,如果APP想要使用这个服务就必须通过servicemanager查询和调用。
执行代码的时候出现了如下错误:
<span style="font-size:18px;"> E SELinux : avc: denied { add } for service=hello scontext=u:r:system_server:s0 tcontext=u:object_r:default_android_service:s0 tclass=service_manager
E ServiceManager: add_service('hello',62) uid=1000 - PERMISSION DENIED</span>提示为SELinux Permission Denied 。解决办法参考:http://stackoverflow.com/questions/30165852/selinux-permission-denied-for-a-new-framework-service-in-android
解决办法:
To file:android-dev\external\sepolicy\service.te
Add:
type mytest_service, system_api_service, system_server_service, service_manager_type;
To file:
android-dev\external\sepolicy\service_contexts
Add:
mytestservice u:object_r:mytest_service:s0
where
mytestserviceyour
name service
我的hello 在\external\sepolicy\service.te 添加了:
<span style="font-size:18px;">type hello_service, system_api_service, system_server_service, service_manager_type;</span>在 \external\sepolicy\service_contexts
添加
<span style="font-size:18px;">hello u:object_r:hello_service:s0</span>然后重新编译
make -j32
就不会有
<span style="font-size:18px;">E ServiceManager: add_service('hello',62) uid=1000 - PERMISSION DENIED</span>的提示了!!
相关文章推荐
- Centos6.5下OpenLdap搭建(环境配置+双机主从配置+LDAPS+enable SSHA)
- Centos 6.4 python 2.6 升级到 2.7
- centos之lnmp及负载均衡
- .Net Core Linux centos7行—IOC模块
- Linux进程间通信-命名管道
- svn命令在linux下的使用
- svn命令在linux下的使用
- 在linux系统下检查postgresql数据库安装,登录数据库及简单的查看数据库
- Linux 移植版的游戏性能简直就是垃圾!
- python (18)在linux中如何实现定时发送邮件到指定邮箱,监测任务
- centos安装python2.7和pip2.7
- centos命令
- 【Linux】完全解读Linux环境变量
- Linux系统灾难性恢复
- [Linux] 内核的 /proc 文件系统介绍及使用方法
- centos下svn命令
- [Linux] NFSv4 and Autofs caveats
- i2c驱动程序
- Centos 6 编译安装LNMP
- Linux中debugfs的解析