big白菜的个人主页

http://bbs.ntpcb.com/u.php?uid=73326  [收藏] [复制]

big白菜

  • 0

    关注

  • 0

    粉丝

  • 2

    访客

  • 等级:一级逆天
  • 身份:禁止发言
  • 总积分:6
  • 保密,1987-01-01

最后登录:2023-05-25

更多资料

日志

Android L APP 如何获取sys file system 中节点的写权限

2017-08-30 17:14







[Description]
Android L APP 如何获取sys file system 中节点的写权限
[Keyword]
L SELinux sys write
[Android Version]
Version >= android  5.0
[Solution]
Google 默认禁止app , 包括system app, radio app 等直接写/sys 下面的文件, 认为这个是有安全风险的。如果直接放开SELinux 权限, 会导致CTS 无法通过.

通常遇到此类情况,你有两种做法:

(1). 通过system server service 或者 init 启动的service 读写, 然后app 通过binder/socket 等方式连接APP 访问. 此类安全可靠, 并且可以在service 中做相关的安全审查, 推崇这种方法.


(2). 修改对应节点的SELinux Security Label, 为特定的APP, 如system app,radio, bluetooth 等内置APP开启权限, 但严禁为untrsted app 开启权限. 具体的做法下面以 system app 控制/sys/class/leds/lcd-backlight/brightness 来说明.


1. 在device/mediatek /common/sepolicy/file.te 定义brightness SELinux type
type sys_lcd_brightness_file, fs_type,sysfs_type;

2. 在device/mediatek/common/sepolicy/file_contexts 绑定 brightness 对应的label, 注意对应的节点是实际节点,而不是链接.以及整个目录路径中也绝不能包含
链接(无数同仁有犯这个错误,特意提醒)
/sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness
u:object_r:sys_lcd_brightness_file:s0

3. 在device/mediatek/common/sepolicy/system_app.te 中申请权限.
allow system_app sys_lcd_brightness_file:file rw_file_perms;
4. 为其它的process 申请相关的权限,如system_server, 在
device/mediatek/common/sepolicy/system_server.te
allow system_server sys_lcd_brightness_file:file rw_file_perms;

原则上我们都推崇使用第一种方式处理.


分类:一牛网论坛|回复:0|浏览:379|全站可见|转载
 

下一篇: 使用新的memory的操作流程

上一篇:

Powered by phpwind v8.7.1 Certificate Copyright Time now is:04-27 01:30
©2003-2011 逆天PCB论坛 版权所有 Gzip disabled 粤ICP备14042835号 问题咨询 | 广告业务点这里