码迷,mamicode.com
首页 > 移动开发 > 详细

Android安全机制--权限

时间:2015-04-15 13:36:43      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:android   安全   

android的权限persion也是细粒度特权管理。

分类:

Normal 
Dangerous(安装时有提示的)
Signature(用于厂商定义的权限,厂商开发的几个app能用,其他第三方不能用,用的的是厂商的private key来签名)
SignatureOrSystem(厂商或是在system自带的能用的权限)

在frameworks/base/core/res/AndroidManifest.xml 下可以看到定义的权限

技术分享技术分享技术分享

运行时权限控制方式:

1.通过PacakageManage的CheckPermission

Android独有的Service(底层平台Linux不具有)
所以需要在Android本身Framework中控制
 主流的Service一般都基于Binder IPC或者其他IPC提供服务
所以在最低层控制(Service所在的Server中)以避免逃逸控制
绕开Utility Function直接Invoke Remote Service
例子: DayDream

技术分享技术分享

技术分享

2.映射为OS的特定属性

非Android特有的Service(底层平台已经提供,如File访问,TCPIP数
据收发等)
多个入口访问: Android API, Java API,NDK C API, Shell, etc
 底层控制准则,会聚口在底层,所以在底层(OS层面)统一控制,这
样可以避免逃逸控制
所以复用OS的一些安全控制特性,比如GID
所以需要把Android空间的Permission Mapping到OS的GID
 例子:访问SDCard

当我们声明具有读写SD卡权限时

技术分享技术分享

查看文件权限,每个都加上了gid为 sdcard-_rw

技术分享技术分享

怎么加的呢?

语法:
 UID assigning permission:<assign-permission 
name=“permission_name"  uid=“target_uid" />
 GIDs Mapping: <permission name=“permission_name "  > 
<group gid=“assigned gid" />
<group gid=“assigned gid" /> 
…………
</permission>
发生时刻:安装时
在etc/permissions目录下
任何符合以上语法的在system/etc/permissions下面的xml文件,都会被
系统读取来parse并进行UID/GID的mapping。比如Platform.xml

安全性:只有ROOT用户才允许新增或者改写。

技术分享技术分享

Android安全机制--权限

标签:android   安全   

原文地址:http://blog.csdn.net/chaoyue0071/article/details/45056827

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!