Android5.1.1源码 - 在Framework中添加自定义系统服务

转载 2016年05月30日 17:30:32

前言

本文的方法要修改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源码即可。


转自:阿里聚安全博客


android framework增加新的系统服务

[android]Framework新增系统服务 分类: android2014-04-24 17:21 638人阅读 评论(0) 收藏 举报 在android源码中增加一项系统服...
  • yiwuxue
  • yiwuxue
  • 2014年10月16日 11:46
  • 2032

在android framework中添加自定义系统服务

添加系统服务需要添加aidl,service,manager文件,需要修改SystemServer,Context,ContextImpl 下面举例进行说明,主要添加一个服务,用于获取系统时间和...
  • sgzy001
  • sgzy001
  • 2017年01月11日 16:20
  • 2331

[实践] Android5.1.1源码 - 在Framework中添加自定义系统服务

本文的方法要修改Android源码。但只要将系统服务写出来,也可以注入system_server进程将系统服务加载到system_server中。...
  • AliMobileSecurity
  • AliMobileSecurity
  • 2016年05月30日 16:11
  • 982

android framework添加系统服务

http://blog.csdn.net/pierce0young/article/details/24424991 在android源码中添加系统服务,如在android.app包下增加DevIn...
  • Arlen6310
  • Arlen6310
  • 2016年12月14日 14:09
  • 495

在framework当中添加一个系统自定义服务,权限的问题

问题: 在framework当中添加一个系统自定义服务,操作打开与关闭GPS。普通APK调用服务来打开与关闭GPS, 会出现java.lang.SecurityException: Package...
  • px348402717
  • px348402717
  • 2016年11月09日 20:46
  • 801

Android自定义系统服务与部分系统服务列表

Android系统服务的目录结构 1.系统服务的撰写: ·定义一个服务接口aidl文件:framework/base/core/java/android/os/ ·注册aidl文件f...
  • u013360656
  • u013360656
  • 2015年04月26日 14:50
  • 601

android framework 添加系统服务

前言 本文的方法要修改Android源码。我们自定义一个自己的服务,并将其添加到ServiceManager中。步骤 1. 添加一个aidl文件,我将aidl文件添加到这个路径下: framew...
  • u011479494
  • u011479494
  • 2016年12月27日 16:52
  • 1258

android 5.1 如何添加一个系统service

Intro:This article explains how to add a new service and associated application APIs to Android Loll...
  • lewif
  • lewif
  • 2015年10月15日 09:24
  • 1565

android—如何添加一个系统服务

c中添加service java添加service前面分析过binder的实现流程,binder的实现包含了java和c++两部分,那么应该如何去添加一个service? c++中添加service...
  • lewif
  • lewif
  • 2016年02月18日 17:33
  • 2130

Android源码添加自定义系统服务

本文以一个简单的例子详细介绍如何为Android 6.0 系统新增一个系统服务,以及如何使用自定义系统服务。 目标:1.创建一个自定义服务CCCService         2.APP 开发过程...
  • djwmzyl
  • djwmzyl
  • 2016年11月23日 16:21
  • 672
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android5.1.1源码 - 在Framework中添加自定义系统服务
举报原因:
原因补充:

(最多只允许输入30个字)