selinux

1. Add new service started by init

情景定义一个init 启动的service, demo_service, 对应的执行档是/system/bin/demo.

(1).  创建一个demo.te /device/mediatke/common/sepolicy 目录下, 然后在/device/mediatke/common/BoardConfig.mk BOARD_SEPOLICY_UNION 宏中新增 demo.te

(2).  定义demo 类型,init 启动service 时类型转换, demo.te

type  demo, domain;

type  demo_exec, exec_type, file_type;

init_daemon_domain(demo)

(3).  绑定执行档 file_contexts 类型

/system/bin/demo  u:object_r:demo_exec:s0

(4). 根据demo 需要访问的文件以及设备定义其它的权限在demo.te .

 

2. Set System Property

情景一个native service demo, 需要设置一个自定义的system property,  demo.setting.case1.

(1).  定义system property类型. property.te

type demo_prop, property_type;

(2).  绑定system property 类型property_contexts

demo.        u:object_r:demo_prop:s0

(3). demo.te 中新增

•   unix_socket_connect(demo,property,init);

   allow demo demo_prop:property_service set;

3.

Use Binder and Add System Service

▪情景:  一个native service demo, 创建了一个binder service demo, 并对外提供服务.

▪(1). 在service.te 中定义service 类型

•type  demo_service  service_manager_type;

▪(2).  在service_contexts 中绑定service

•demo  u:object_r:demo_service:s0

▪(3). 在demo 中声明binder 权限  demo.te

•binder_use(demo)

•binder_call(demo, binderservicedomain)

•biner_service(demo)

▪(4). 允许demo 这个进程添加demo 这个service, 在demo.te

•allow  demo demo_service:service_manager add;

4.

Access system device

情景一个native service 需要访问一个专属的char device /dev/demo

(1). 定义device 类型, device.te

type demo_device dev_type;

(2). 绑定demo device, file_contexts

/dev/demo u:object_r:demo_device:s0

(3). 声明demo 使用demo device 的权限 demo.te

allow demo demo_device:chr_file rw_file_perms;

5.  Use Local Socket

情景一个native service init 创建一个socket 并绑定在 /dev/socket/demo, 并且允许某些process 访问.

(1). 定义socket 的类型 file.te

type demo_socket, file_type;

(2). 绑定socket 的类型 file_contexts

/dev/socket/demo_socket u:object_r:demo_socket:s0

(3). 有的process 访问.

# allow app connectto & write

unix_socket_connect(appdomain, demo, demo)

# more..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值