首页 > 技术文章 > Android系统权限管理

hellsong 2015-08-17 15:40 原文

权限分级?

     Android系统中包含一般的权限和URI权限。
     传统Android权限按照危险程度分为normal, dangerous, signature和signatureOrSystem。其中不同的权限根据签名或是否系统应用分配给第三方程序。
     URI权限用于权限临时分配,让其直接用户处理特定敏感数据。如电子邮件程序需要图片浏览器查看图片,而用户的电子邮件是用户隐私,不能使用传统的方式直接分配权限,只想让图片浏览器暂时只能读取特定图片。

权限如何添加和验证?

     Android权限通过两种方式声明,一是应用程序AndroidManifest.xml中使用permission声明,PackageManagerService在安装应用程序时会将其加入权限树。另一种是系统预置的方式,PackageManagerService在启动的时候会读取/etc/permission目录下的xml文件,这些文件存放的就是所有预置的权限,还有需要分配给进程和进程组的权限。
     应用程序在安装的时候会将所请求的权限提取到包信息(PackageParser.Package),然后在读取所有的权限信息后生成权限授予信息。授予权限时,如权限为normal和dangerous,则直接授予应用程序,如为signature,则检查声明权限的应用程序签名是否和请求权限的应用程序签名一样。signatureOrSystem则检查签名,并检查是否是系统应用。

推荐阅读