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设置)。安装完成之后,在应用程序开启时,系统会向进程授予相应的应用进程权限,程序在运行过程中,需要调用某一个需要权限的资源或者服务,会经过相应的权限检查(运行环境,或库,内核),通过后,就可以运行相应的服务。

更多相关文章

  1. 2012年度工作总结
  2. Android(安卓)M 新的运行时权限开发者需要知道的一切
  3. Android(安卓)***测试学习手册(三)Android(安卓)应用的逆向和审计
  4. 怎样用 C/C++ 开发一个原生程序运行在 Android(安卓)下而不用 AD
  5. Android(安卓)应用程序基础(Application Fundamentals)
  6. Android数据存储之文件存储
  7. 《Android安全机制解析与应用实践》笔记 第2章
  8. Android(安卓)进程保活招式大全(转)
  9. Android线程模型

随机推荐

  1. Android ApiDemos示例解析(91):OS->SMS M
  2. Android getText(@string/a)和直接使用字符
  3. Android应用开发提高系列(5)――Android动
  4. Android内核剖析
  5. Android UI加速
  6. Android 水波纹点击效果
  7. android:layout_weight属性
  8. Android中的进程生命周期
  9. android 默认签名 debug签名
  10. android的selector(背景选择器)