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用户才允许新增或者改写。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值