android 服务层,Android framework层自定义系统服务

本文详细介绍了在Android系统中添加自定义服务的过程,包括创建IBinder接口,实现服务逻辑,注册服务到SystemServer,更新ContextImpl以获取服务,以及在 sepolicy 中添加必要的权限配置。步骤涉及aidl文件的使用、服务管理和权限控制,是理解Android系统服务运行机制的重要参考。
摘要由CSDN通过智能技术生成

1)新建IBinder.aidl,生成BpBinder,客户端(Ixxxx.aidl)

2)创建BpServiceManager(IBinder),实现IBinder业务逻辑函数。

3)创建BnBinder,服务端(xxxService)

4)在 frameworks /base /services /java /com /android /server /SystemServer.java

添加Service:SystemService.add(BnBinder)

5)在/frameworks/base/core/java/android/app/ContextImpl.java

private xxxServiceManager getxxxSevviceManager()

6)在/frameworks/base/Android.mk中

添加core/java/android/app/IxxxService.aidl \

7)在\external\sepolicy\service.te 添加:

index 56478d0..6caba56 100644

--- a/sepolicy/service.te

+++ b/sepolicy/service.te

@@ -102,3 +102,4 @@ type wifip2p_service, app_api_service, system_server_service, service_manager_ty

type wifiscanner_service, system_api_service, system_server_service, service_manager_type;

type wifi_service, app_api_service, system_server_service, service_manager_type;

type window_service, system_api_service, system_server_service, service_manager_type;

+type xxx_service, system_api_service, system_server_service, service_manager_type;

8)在 \external\sepolicy\service_contexts添加 syk@dell-Precision-Tower-7910:~/external/sepolicy$ git diff service_contexts diff --git a/sepolicy/service_contexts b/sepolicy/service_contexts index 85dcd3d..3230be0 100644 --- a/sepolicy/service_contexts +++ b/sepolicy/service_contexts @@ -1,3 +1,4 @@ +xxx                                     u:object_r:xxx_service:s0  accessibility                             u:object_r:accessibility_service:s0  account                                   u:object_r:account_service:s0  activity                                  u:object_r:activity_service:s0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值