首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >044android初级篇之android app中的权限及自定义权限

044android初级篇之android app中的权限及自定义权限

作者头像
上善若水.夏
发布2018-09-28 10:49:23
1.9K0
发布2018-09-28 10:49:23
举报
文章被收录于专栏:上善若水上善若水上善若水

自定义权限的声明

如果自定义的软件中因对外提供什么服务,而想声明一个权限,来限制此服务的使用,可以在Manifest中,声明权限。

以launcher2程序的访问provider的权限为例子:

在application 中注册provider

<provider android:authorities="com.android.launcher2.settings" 
        android:exported="true" 
        android:name="com.android.launcher2.LauncherProvider" 
        android:readPermission="com.android.launcher.permission.READ_SETTINGS" 
        android:writePermission="com.android.launcher.permission.WRITE_SETTINGS"/>

对外声明权限,包括权限名,权限所在组,权限级别

<permission 
    android:description="@string/permdesc_read_settings" 
    android:label="@string/permlab_read_settings" 
    android:name="com.android.launcher.permission.READ_SETTINGS" 
    android:permissionGroup="android.permission-group.SYSTEM_TOOLS" 
    android:protectionLevel="normal"/>
<permission 
    android:description="@string/permdesc_write_settings" 
    android:label="@string/permlab_write_settings" 
    android:name="com.android.launcher.permission.WRITE_SETTINGS" 
    android:permissionGroup="android.permission-group.SYSTEM_TOOLS" 
    android:protectionLevel="signatureOrSystem"/>

Android权限级别(protectionLevel)

通常情况下,对于需要付费的操作以及可能涉及到用户隐私的操作,我们都会格外敏感。 出于安全考虑,Android中对一些访问进行了限制,如网络访问(需付费)以及获取联系人(涉及隐私)等。应用程序如果想要进行此类访问,则需要申请相应权限。Android对这些权限进行了四类分级,不同级别的权限对应不同的认证方式。

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

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

android模拟器中需要的官方系统的系统签名key

如果使用了模拟器,有时候 一定希望可以拿到系统权限,有一种拿到系统权限的方式是使用该系统的系统签名key进行签名。 android 官方sdk中的模拟器镜像可以在android源码中拿到,位于:

android-5.0.0_r5\src\build\target\product\security\platform.x509.pem
android-5.0.0_r5\src\build\target\product\security\platform.pk8

同时其他几个key也可以在该目录下拿到。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.04.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自定义权限的声明
  • Android权限级别(protectionLevel)
  • android模拟器中需要的官方系统的系统签名key
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档