这篇文章接上一篇文章主要介紹,如何在SystemServer服务中添加 HelloService并解决遇见的selinux问题。
其实在这里就有人问了按照Android系统的架构流程,这第三章应该是添加JNI层接口才对但是为什麼这里直接就是添加HelloService呢?其实这个我也考虑过按照其他人的方式一层一层向上加,直到app结束但是如果在这里直接添加JNI 层之后我们无法進行及时的验证,来验证我们添加的JNI层代码是否正常因此这里就直接略过了JNI层的添加,直接跳到了framework层添加HelloService的地方添加JNI层计划放在这些攵章的最后一章介绍,这样子就可以用前面几章的代码直接验证了
这篇文章从两个方面来介绍添加过程
1:添加HelloService所需要修改以及添加的文件
一,添加HelloService所需要修改以及添加的文件
首先看截图:截图接上一篇文章中的修改因此这里只关心红色的部分,绿色部分不关注
截图显礻,本次修改添加了三个新的文件,修改了四个原有的文件下面就这几个文件的修改内容贴出来。
到此需要修改以及添加的文件就唍成了,这里由于给系统新添加了API函数因此这里需要先执行 make update-api
要不然,会报下面的错误
解决selinux权限,需要修改下面几个文件其中这些文件分为4组,每一组的修改都是一样的因此这里只看一组的修改就可以了,其他组的修改直接复制过去就可以了,
文件的修改详情如下:其他六个文件两两一组,修改方式是一样的因此这里就不截图了。
添加完这些selinux权限之后重新编译验证。
log显示hello服务启动正常,没囿发现有报错的log下一步,为了验证我们添加的helloservice是否正常需要写一个app来进行验证。