android的系统权限定义
博客专区 > jgj 的博客 > 博客详情
android的系统权限定义
jgj 发表于3年前
android的系统权限定义
  • 发表于 3年前
  • 阅读 34
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

系统的权限定义文件为frameworks/base/core/res/AndroidManifest.xml


其中的一个样例

<permission android:name="android.permission.FORCE_STOP_PACKAGES"
 android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
 android:protectionLevel="signature"
 android:label="@string/permlab_forceStopPackages"
 android:description="@string/permdesc_forceStopPackages"/>

android:protectionLevel表示权限的保护级别,Android对这些权限进行了四类分级,不同级别的权限对应不同的认证方式。

normal:低风险权限,只要申请就可以使用(在AndroidManifest.xml中添加<uses-permission>标签),安装时不需要用户确认;
dangerous:高风险权限,安装时需要用户的确认才可使用;
signature:只有当申请权限的应用程序的数字签名与声明此权限的应用程序的数字签名相同时(如果是申请系统权限,则需要与系统签名相同),才能将权限授给它;
signatureOrSystem:签名相同,或者申请权限的应用为系统应用(在system image中)。

上述四类权限级别同样可用于自定义权限中。如果开发者需要对自己的应用程序(或部分应用)进行访问控制,则可以通过在AndroidManifest.xml中添加<permission>标签,将其属性中的protectionLevel设置为上述四类级别中的某一种来实现。


android:protectionLevel="signature"意思是:app使用FORCE_STOP_PACKAGES权限,app必须和这个权限的声明者的签名保持一致!FORCE_STOP_PACKAGES的声明者是frameworks/base/core/res/,可以在frameworks/base/core/res/Android.mk中看到它的签名信息。

LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_PACKAGE_NAME := framework-res
LOCAL_CERTIFICATE := platform

即,签名为platform。最终得到结论,app需要是platform签名,才可以使用forceStopPackage方法!





















共有 人打赏支持
jgj
粉丝 0
博文 22
码字总数 6713
×
jgj
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: