Android权限
Android应用程序是沙箱隔离的,默认情况下,只能访问自己的文件和非常有限的系统服务。
使用pm list permissions命令(通过查询包管理器服务来获取权限列表,包数据以XML文件的形式存放在/data/system/packages.xml,随着每次应用的安装、升级、卸载进行更新)可查看当前系统已知的权限列表
在命令后添加-f参数,可以显示权限的额外信息,包括定义的包名、标签、描述和保护级别。
android.permission打头的为内置权限,都是在Android包内定义的。
应用程序可以通过在AndroidManifest.xml文件中添加一个至多个标签来申请权限,并且使用标签来定义新权限。
Android中定义的4个保护级别:normal级别、dangerous级别、signature级别、signatureOrSystem级别
normal级别
权限保护级别的默认值,定义了访问系统或其它应用程序的低风险权限。normal保护级别的权限无需用户确认,自动授权。
dangerous级别
可访问到用户数据或在某种形式上控制设备。在赋予dangerous级别权限之前,Android会弹出一个确认对话框,并显示所请求的权限信息。需在安装时赋予权限,所以用户可以同意或取消安装。
signature级别
它们可呗赋予系统镜像的部分应用,或者与声明权限具有相同签名秘药的应用程序。这允许尝试无须共享签名密钥即可预装自己的应用来共享一个需要权限的特定功能。4.4之后,安装在/system/priv-app/目录下的应用,才能被赋予这个级别的保护权限。
pp/目录下的应用,才能被赋予这个级别的保护权限。