首页
社区
课程
招聘
[原创][实践] Android5.1.1源码 - 添加应用权限
发表于: 2016-7-15 11:27 6914

[原创][实践] Android5.1.1源码 - 添加应用权限

2016-7-15 11:27
6914
我自己修改Android ROM的时候需要给每个应用添加特定的权限,然后就研究了一下如何修改Andorid源码添加特定的权限。

我的博客:i不歪

修改方法

修改PackageParser类,该类在文件frameworks/base/core/java/android/content/pm/PackageParser.java中。

在PackageParser类中添加下面的方法:
private void addUsersPermission(Package pkg, String usersPermission) {
    int index = pkg.requestedPermissions.indexOf(usersPermission);
    if (-1 == index) {
        pkg.requestedPermissions.add(usersPermission.intern());
        pkg.requestedPermissionsRequired.add(Boolean.TRUE);
    } else {
        pkg.requestedPermissionsRequired.set(index, Boolean.TRUE);
    }
}


在PackageParser类parseBaseApk方法中添加下面语句:
addUsersPermission(pkg, <权限字符串>);

添加位置:在该方法的最后一行代码前添加。

权限字符串

如果要添加网络权限,那么权限字符串传入:"android.permission.INTERNET",代码见下:
addUsersPermission(pkg, "android.permission.INTERNET");

以此类推,权限字符串是AndroidManifest.xml中"uses-permission"标签中所能设置的权限。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 53
活跃值: (270)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
这只是添加app需要的permission,系统PMS并不一定会给app grant这些permission,
要直接授权某些特定permission,还是建议修改PMS
2016-7-15 14:44
0
雪    币: 144
活跃值: (224)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
我添加网络权限,所以没有这个问题
2016-7-15 16:56
0
游客
登录 | 注册 方可回帖
返回
//