android 源码权限问题
2016-09-22 10:25
435 查看
当第三方apk由于权限问题出现报错时候,但是又只能用该apk,无法提交更新的情况的下
可以在
idh.code\frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java
中的
在红色的部分进行处理,默认支持该权限
可以在
idh.code\frameworks\base\services\core\java\com\android\server\pm\PackageManagerService.java
中的
@Override public int checkPermission(String permName, String pkgName, int userId) { if (!sUserManager.exists(userId)) { return PackageManager.PERMISSION_DENIED; } synchronized (mPackages) { <span style="color:#ff0000;"> if(("android.permission.ASEC_CREATE".equals(permName) || "android.permission.ASEC_ACCESS".equals(permName) || "android.permission.ASEC_DESTROY".equals(permName) || "android.permission.ASEC_MOUNT_UNMOUNT".equals(permName) || "android.permission.WRITE_EXTERNAL_STORAGE".equals(permName) || "android.permission.WRITE_MEDIA_STORAGE".equals(permName) || "android.permission.ACCESS_CACHE_FILESYSTEM".equals(permName) || "android.permission.ACCESS_ALL_EXTERNAL_STORAGE".equals(permName)) && "com.android.vending".equals(pkgName)){ return PackageManager.PERMISSION_GRANTED; }</span> final PackageParser.Package p = mPackages.get(pkgName); if (p != null && p.mExtras != null) { final PackageSetting ps = (PackageSetting) p.mExtras; final PermissionsState permissionsState = ps.getPermissionsState(); if (permissionsState.hasPermission(permName, userId)) { return PackageManager.PERMISSION_GRANTED; } // Special case: ACCESS_FINE_LOCATION permission includes ACCESS_COARSE_LOCATION if (Manifest.permission.ACCESS_COARSE_LOCATION.equals(permName) && permissionsState .hasPermission(Manifest.permission.ACCESS_FINE_LOCATION, userId)) { return PackageManager.PERMISSION_GRANTED; } } }
@Override public int checkUidPermission(String permName, int uid) { final int userId = UserHandle.getUserId(uid); if (!sUserManager.exists(userId)) { return PackageManager.PERMISSION_DENIED; } synchronized (mPackages) { <span style="white-space:pre"> </span><pre code_snippet_id="1893343" snippet_file_name="blog_20160922_1_188772" name="code" class="java"><span style="color:#ff0000;"> if(("android.permission.ASEC_CREATE".equals(permName) || "android.permission.ASEC_ACCESS".equals(permName) || "android.permission.ASEC_DESTROY".equals(permName) || "android.permission.ASEC_MOUNT_UNMOUNT".equals(permName) || "android.permission.WRITE_EXTERNAL_STORAGE".equals(permName) || "android.permission.WRITE_MEDIA_STORAGE".equals(permName) || "android.permission.ACCESS_CACHE_FILESYSTEM".equals(permName) || "android.permission.ACCESS_ALL_EXTERNAL_STORAGE".equals(permName)) && "com.android.vending".equals(pkgName)){ return PackageManager.PERMISSION_GRANTED; }</span>
在红色的部分进行处理,默认支持该权限
相关文章推荐
- 关于android源码文件操作,无权限问题
- ubuntu9.04下编译android源码遇到的问题
- android2.2源码编译问题7-4
- 编译android2.2的源码出现问题,问题如下:
- Android权限机制总结与常见权限不足问题分析
- android 源码编译遇到得一些问题
- Android权限问题导致的系统调用bug
- android 源码下载问题1--学习curl命令
- 32 位ubunt u下载编译android2.2源码的问题之一
- [原]用Eclipse开发Android应用,用svn管理源码时遇到的问题及解决方法
- 编译android源码及遇到的问题
- Android权限机制总结与常见权限不足问题分析
- 回答网友的问题,有C# ASP.NET 通用权权限系统源码下载收费
- 回答网友的问题,有C# ASP.NET 通用权权限系统源码下载收费
- 回答网友的问题,有C# ASP.NET 通用权权限系统源码下载收费
- 回答网友的问题,有C# ASP.NET 通用权权限系统源码下载收费
- 回答网友的问题,有C# ASP.NET 通用权权限系统源码下载收费
- Android权限获取机制与常见权限不足问题分析
- Android系统源码编译全过程—— Android编译问题:Only 64-bit build environments are supported beyond froyo/2.2