Android 7.0上app所需高级权限的解除限制的方法

本文介绍了在Android 7.0及以上版本,如何解决即使拥有系统权限,也无法使用如INSTALL_PACKAGES等高级权限的问题。详细讨论了权限分类,以及在系统升级后遇到的CTS和GTS测试不通过的情况。通过分析日志和查阅文档,发现需要将应用的权限添加到Google的白名单列表中,需提供包名和签名的SH256值进行申请。
摘要由CSDN通过智能技术生成

---- by Shengwen.Wei

一、    概述

        随着移动互联网的发展,用户对于自身的信息安全越来越重视,基于此,android系统对于用户自身的信息安全特别是android M(6.0)以后,对于权限的管理尤为严格。

二、    高级权限的使用限制及解限

        目前,android系统按照安全级别大致将权限分两种:一般权限、危险权限。

对于一般权限,该类权限基本不会涉及用户的使用信息,如蓝牙、NFC等权限;对于这类权限,开发者只需在AndroidMenifest.xml中注册即可;

而对于危险权限,如读写联系人、读写短信等等涉及到用户隐私信息的开发者不仅仅要在AndroidMenifest.xml中注册,还需要在代码中动态注册然后由用户决定是否允许进程是否能支持该种权限的使用甚至很多权限需要拿到系统权限才能使用,这里不做累述,下面介绍的是有部分高级权限即使apk有系统权限,google依然会将其列入黑名单中,影响的系统版本从android M以后开始;

        比如<uses-permission android:name="android.permission.INSTALL_PACKAGES"/> ,这类权限即使App得到了系统级的管理权限,若apk预置于/system/app或/system/pri-app/目录下,还是会有其他问题的存在,如CTS、GTS通不过,那这类情况该如何解决呢?

        这里就以笔者项目中用到的INSTALL_PACKAGES自动安装的权限来说明。

        由于项目需求,在无忧换机app中使用了INSTALL_PACKAGES自动安装App的权限,起初并没有觉得什么不对,因为权限可以正常使用,APP也可以正常自动安装,但是随着项目的进行,当进行CTS、GTS的时候发现GTS并不能通过,log如下:

GtsInstallPackagesWhitelistDeviceTestCases

-           com.google.android.installpackageswhitelist.gts.GtsInstallPackagesWhitelistDeviceTest#testInstallerPackagesAgainstWhitelist

 com.google.android.installpackageswhitelist.gts.GtsInstallPackagesWhitelistDeviceTest#testInstallerPackagesAgainstWhitelistfail: junit.framework.AssertionFailedError:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值