Android的权限管理浅析

Android权限管理是基于Linux的进程隔离机制与最小权限原则,Android定义了名称到标识符的AID映射表
每一个AID都会映射到一个UID和GID(也就是给UID和GID分配的相应的权限),在应用程序执行时,它们的UID和GID会被分配给新创建的进程,从而进程运行时,系统可以在内核中实施底层的限制措施(Android的沙箱所在)。

Android的权限模型包含:API权限,文件权限,IPC权限
在Android应用的AndroidManifest.xml文件中包含应用所指定的高级权限,PackageManager在应用安装时,从应用的Manifest文件中提取,并存储在/data/system/packages.xml文件中。并在应用进程实例化阶段,向进程授予适当地权限。

Chrome浏览器申请的权限:


高级权限对应的用户组,存放在/etc/permissions/plantform.xml文件中


通过两种方式实施权限检查:1.在调用方法时,进行权限检查,由运行环境实施检查; 2.在操作系统底层进行检查,由库或者内核实施。
一些服务API与内核级的安全机制相对应,如INTERNET权限,意味着申请权限应用的UID会被添加到inet用户组当中。而一些文件的访问权限控制则依赖了unix文件系统的权限控制模型。

大体来说:应用程序在安装时,会在Manifest.xml中申请相应的高级权限,有些常用权限系统会直接授予,程序直接安装,而有些需要询问用户是否授予该应用程序所申请的权限(根据permission中的 android:protectionLevel设置)。安装完成之后,在应用程序开启时,系统会向进程授予相应的应用进程权限,程序在运行过程中,需要调用某一个需要权限的资源或者服务,会经过相应的权限检查(运行环境,或库,内核),通过后,就可以运行相应的服务。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值