时间:2021-05-02
由上篇Android Permission权限机制引子,我们知道Android 通过在每台设备上实施了基于权限的安全策略来处理安全问题,采用权限来限制安装应用程序的能力。本篇文章继续来探讨和Android权限相关的话题,主要集中在权限级别、ICC(inter- component communication)权限保护两个方面。
权限级别 protection level
每一个Permission权限都设有了权限级别(protection level),分别如下:
复制代码 代码如下:
normal级别是一些比较低风险的权限,我们在安装一个新app到手机时,一般会被折叠起来的权限就是normal级别的。
dangerous则是那些比较高风险的权限,在安装时会明显提示用户该app具有这些权限,并且需要用户同意确认才能正确安装app的权限。
signature则在我们用户自定义权限custom时,会用得到的,具体做法我会在另一篇博文:Android 自定义权限中具体研究的,这里简述之:
用户在某一个app(先称permisson app)中自定义了permission时,并且指定了某些组件需要该自定义权限才能打开,这是前提,然后用户又开发了另外一个app(称为permission client),这个permission client如果想访问permisson app中指定了自定义权限的组件,那么这两个app必须具备相同的signature,这就是signature级别的意思。
复制代码 代码如下:
这个同上,但多了一个Or,or是指除了相同的signature之外还可以指定为相同的Android img也可以访问,这个img其实就是系统级别的定制了,一般用的很少。
ICC(inter-component communication)权限保护
<application>元素和组件元素都有android:permission的属性,在这里我们称这个属性分别为应用程序和组件的权限标签。应用程序内的组件可以继承应用程序元素设置的权限标签,当某一组件启动 ICC 时,相关的访问控制器就会查看组件和组件所在应用程序的权限标签集合,如目标组件的访问权限标签在以上的集合内,允许 ICC 的建立继续进行,否则将会被拒绝,即使这两个组件在同一应用程序内。
改图描述了该逻辑的进程:组件A是否可以访问组件B和C,取决于比较B和C内的访问权限标签与应用程序1内的标签集合的结果。B和应用程序1内都有i1标签,所以组件A可以访问组件B,相反应用程序1内没有标签i2,组件A 不可以访问组件B。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
为Android程序申请权限注意Android系统提供为程序提供了权限申请,即在manifest中使用uses-permission来申请即可.实现起来非常简单
把从网络获取的图片数据保存在SD卡上,先把权限都加上网络权限android.permission.INTERNETSD卡读写权限android.permissi
Android.permission.MODIFY_PHONE_STATE权限限制已经改为系统权限普通应用程序已经无法调用所以网上找到的那些如何使用androi
1.动态权限申请模糊的位置信息android.permission.ACCESS_COARSE_LOCATION权限为例在AndroidManifest文件中加
1、如何声明自定义权限在Manifest文件中使用Permission标签定义自己的权限:...解释下各个属性:name,该标签就是权限的名字。descript