关于Android权限系统的理解(持续更新)

来源:互联网 发布:淘宝供销app 编辑:程序博客网 时间:2024/05/29 10:09

这个是我工作之中接触到的关于Android系统权限的问题,欢迎大家提出意见和问题进行交流。

1.运行时权限

说到权限,我首先说要说一下Android M(6.0 API23)的运行时权限,这是新的权限体系,不过毕竟出来已经有一段时间了,最常见的在应用中申请权限的方法我们就不说了,这个随便一搜各种已经写好的封装好的代码一堆堆。我的问题是,如果我们不想通过这种方式申请权限该怎么做?首先有一个特别简单的办法,Android 6.0有考虑向下兼容的情况,所以我们可以通过将程序的目标版本号设置到6.0之前(API<23),但是这个办法可能有问题,如果Android系统在后期取消了这个设计就会产生问题。其实还有一个办法,不过不是修改应用,我们需要修改framework来完成这个操作,在PackageManagerService.java中有个grantPermissionsLPw,我们可以通过修改它来对应用的权限进行预授予(参考文章:http://blog.csdn.net/blank557/article/details/51734541)。

2.系统权限(平台权限)

实际开发中,我们有些功能可能需要系统权限,如小米主题商店的更换字体功能,完成之后需要进行重启,而重启这一操作则需要使用到系统权限,为了让应用获取到这个权限,我们有两种办法,第一,把应用放到源码的环境下进行编译并在makefile文件中使用平台权限,第二,使用常规的IDE进行编译,完成后使用使用对应的系统签名包进行签名,这里需要注意一个问题,系统权限的签名包并不是通用的,使用6.0系统签名的应用无法在5.1上正常使用系统签名,而据说即使同样是6.0的系统如果是不同的厂商定制的ROM,签名包也不可以通用,所以系统权限的获取其实是绑定ROM包的(个人理解)。

0 0