1.Android ROOT权限(最高权限)
Android系统管理员用户就叫做Root,该帐户有整个系统最高的权利,可访问和修改系统中几乎所有的文件,只有Root才具备最高级别的管理权限。
优点: 删除系统自带软件,优化系统储存空间
授予软件管理权限,丰富手机操作内容
缺点: 可任意刷机,无法OTA①(Over-the-Air无损失升级系统)升级
病毒木马易侵入,隐私安全降低
或造成系统破坏,系统不稳定
评价: 针对专用系统,不推荐使用无限制的root权限,可以设置开关及密码保护机制。
①:OTA需要两个条件,第一个是recovery是原生未修改过的,第二个是系统区未被修改过。否则OTA升级差分包时会出现冲突,无法升级。ROOT权限可任意修改系统文件,所以不能保证OTA升级的必要条件。
2、Android system权限(高权限)
system权限比ROOT权限级别略低,但是提供了访问system目录的权限,对应Android的权限体系为platform。
第三方应用使用Android编译系统进行编译,最终将应用程序作为系统应用集成到Android系统中,可以拥有系统权限。
system权限比root权限少的权限(目前查到):网卡,更改IP地址,使用ifconfig命令。
评价:推荐使用
3、Android APP权限(普通)
该权限在AndroidManifest文件中由程序开发者声明,在程序安装时由用户授权,共有下述4类不同的权限保护级别(Protection Level)。
Value
Meaning
“normal”
normal级别是默认值。低风险的权限采用此级别。在app安装的时候,系统自动赋予此app请求的所有normal权限,而不会征求用户的同意(但是,在安装app之前,用户总是有权选择检查这些权限)。
“dangerous”
较高风险的权限,此级别的权限意味着,请求权限的app将要访问用户的隐私数据或者控制设备,这可能给用户带来负面影响。
因为dangerous权限会引入潜在的风险,所以系统不会自动赋予此类权限给app。例如,在安装app的时候,会将dangerous权限展示给用户,并请求用户确认。
“signature”
只有请求权限的app与声明权限的app的签名是一样的时候,系统才会赋予signature权限。
如果签名一致,系统会自动赋予权限,而不会通知用户或者征求用户的同意。
“signatureOrSystem”
系统赋予此类权限有2种情况:(1)请求权限的app与声明权限的app的签名一致;(2)请求权限的app在Android 系统镜像(system image)中。
signatureOrSystem权限主要用在这个场景:多个软件供应商的apps预装到了系统目录(system/priv-app)中,而且这些apps之间会共享一些功能。除此之外,尽量不要使用此类权限级别。
权限保护级别是指由android:protectionLevel指定的值。
注1:设备系统是 Android 6.0 (API 23) 或更高版本,并且应用的targetSdkVersion是 23 或更高版本,则针对在AndroidManifest.xml 中声明的dangerous权限,在运行时还需要动态请求用户授权。dangerous权限:(9组24个)涵盖应用需要涉及用户隐私信息的数据或资源,或者可能对用户存储的数据或其他应用的操作产生影响的区域。例如: 读取通讯录、读写存储器数据、获取用户位置等。如果应用声明需要这些危险权限,则必须在运行时明确告诉用户,让用户手动授予。