Android5.1.1源码 - 在Framework中添加自定义系统服务
来源:互联网 发布:淘宝众筹 万创中国 编辑:程序博客网 时间:2024/06/07 10:02
前言
本文的方法要修改Android源码。但只要将系统服务写出来,也可以注入system_server进程将系统服务加载到system_server中。
步骤
1. 添加一个aidl文件,我将aidl文件添加到这个路径下:
frameworks/base/core/java/android/content/bw/IBWService.aidl,IBWService.aidl是我的aidl文件。下面是一个例子:
2. 在frameworks/base/Android.mk文件的LOCAL_SRC_FILES中系统添加了很多aidl文件,我们在系统添加的文件列表中添加一行:core/java/android/content/bw/IBWService.aidl
3. 写一个服务文件继承aidl中的Stub类,这个类我添加到了这个路径下:
frameworks/base/services/core/java/com/android/server/bw/BWService.java。这里有一个技巧,可以在自己的Android项目中先写一个aidl和一个继承它Stub的类,当代码编写无误时将这两个文件拷贝到Android源码目录中。下面是服务文件的例子:
4. 在SystemServer类中添加我们自定义的系统服务,系统如何添加系统服务可以参考Android5.1.1源码 - 分析Android系统服务何时被添加到ServiceManager这篇文章。下面是添加自定义系统服务的一个例子:
5. 由于Android5.1.1中有SeAndroid系统,这个系统中维护了一个系统服务的白名单,如果你要添加的系统服务不在这个白名单中,那么添加系统服务将会失败,这个白名单的路径是:external/sepolicy/service_contexts。下面是我在这个白名单中添加的一行:
bwservice u:object_r:system_server_service:s0
bwservice就是ServiceManager.addService时输入的服务名。
至此添加系统服务成功,重新编译Android源码即可。
转自:阿里聚安全博客
- Android5.1.1源码 - 在Framework中添加自定义系统服务
- [实践] Android5.1.1源码 - 在Framework中添加自定义系统服务
- Android5.1 Framework分析----如何在SystemServer中添加系统服务
- 在android framework中添加自定义系统服务
- Andrioid Framework中添加系统服务
- Android5.1 在init.rc 中添加自己的服务
- 在framework当中添加一个系统自定义服务,权限的问题
- Android源码添加自定义系统服务
- Android源码添加自定义系统服务
- Android源码添加自定义系统服务
- Android4.4源码添加系统自定义服务
- Android源码添加自定义系统服务
- 在Android5.1系统源码中加入测试APP应用程序
- android5.0输入系统添加自定义按键
- android framework添加系统服务
- android framework 添加系统服务
- Android5.0 framework 灯光系统 -- 电池灯源码分析
- 在OpenSSL源码中添加自定义加密算法
- 2016百度之星 hdu 5714 离散化+map+差分数组
- Dubbo 与 Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 使用JDK自带的方法进行文件解压
- MVC中去掉index.php(优雅的使用url)
- iOS native 与 React Native 个人见解
- Android5.1.1源码 - 在Framework中添加自定义系统服务
- JavaScript基础——引用类型(三)Function类型
- 个人看B站的一些姿势
- maven错误锦集- Could not transfer artifact com.oracle:ojdbc14:jar:10.2.0.4.0
- PPT制作自我介绍的要点
- 简单的九九乘法表
- jdk1.8 和spring 2.5.5 兼容性问题
- Service的简单使用
- EasyUI DataGrid 时间格式化