Android Permission

来源:互联网 发布:绝对零度 知乎 编辑:程序博客网 时间:2024/05/21 10:30

http://blog.csdn.net/stevenliyong/archive/2010/03/03/5343085.aspx

 

1. 文件(夹)读写权限

 

init.rc 中建立test1 test2 test3 文件夹

 

mkdir /data/misc/test1 0770 root root   

mkdir /data/misc/test2 0770 wifi wifi

mkdir /data/misc/test3 0770 system misc

 

其中

 

test1 目录的owner是root, group 也是root

test2 目录的owner是wifi , group 也是wifi

test3 目录的owner是system , group 是misc (任何用户都属于group misc)

 

service xxxx /system/bin/xxxx
    user root
    disabled
    oneshot

service yyyy /system/bin/yyyy 
    user system
    disabled
    oneshot

service zzzz /system/bin/zzzz
    user wifi
    disabled
    oneshot

 

结果:

 

xxxx 服务可以访问 test1, test2, test3

yyyy 服务可以访问 test3

zzzz 服务可以访问 test2, test3

 

Android 中mkdir 的定义

 

 

2. Property 权限


     Android Property 也是有权限的。

 

2.1 以前缀 ctl. 开头的控制属性, 设置前,Android 代码会调用函数check_control_perms()检查调用者的 user id 和 group id 


 

2.2 其它属性, 设置前,Android 代码会调用函数check_perms()检查调用者的 user id 和 group id 

check_perms(msg.name, cr.uid, cr.gid)



从代码中可以看到, 任何不以property_perms[]  中定义的前缀开头的property 是

无法被除root以外的用户访问的,包括system用户。

 

3. 最后补充Android 的uid gid 定义

 

可见root (AID_ROOT = 0) 的权限最高, app (AID_APP = 10000) 权限最低, misc (AID_MISC = 9998) 权限倒数第三低。

所以#1 中描述的目录test3的group 属性设置成了 misc, 则除了 app/nobody 这两个用户,

android系统中其它所有用户都有该目录的group权限!

原创粉丝点击