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

1、创建AIDL文件

在源码frameworks/base/core/java/android/os/下面新增了一个ICCCService.aidl

 

2、将AIDL文件放到编译frameworks/base/Android.mk中

frameworks/base/Android.mk文件中的LOCAL_SRC_FILES增加aidl的声明:

LOCAL_SRC_FILES += \

        core/java/android/os/ICCCService.aidl

3、创建Service文件

framework/base/services/core/java/com/android/server/下面新增了一个

CCCService.java 用来实现AIDL文件定义的接口。

 

4、将自定义Service加入到SystemServer启动进程

先在frameworks/base/core/java/android/content/Context.java中添加一行

public static final String CCC_SERVICE="ccc";

修改 frameworks/base/services/java/com/android/server/SystemServer.java

 startOtherServices() 函数 的try模块中增加以下代码

CCCService cccService = null;

try{

Slog.i(TAG,"vavService Service");

cccService = new CCCService(context);

ServiceManager.addService(Context.vav_SERVICE,cccService);

}catch (Throwable e){

Slog.e(TAG,"Failure starting cccService Service",e);

}

5、修改SePolicy的编译验证

修改 /external/sepolicy/service.te

在最后一行添加

type ccc_service,      service_manager_type;

然后修改同目录下 /external/sepolicy/service_contexts 文件

中间插入一行

ccc           u:object_r:system_server_service:s0

 

6、重新编译源码

别忘了先 make update-api

 

参考:

http://www.cnblogs.com/liam999/p/5933827.html

http://www.cnblogs.com/xerrard/p/5206192.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值