diff options
Diffstat (limited to 'com/android/server/pm/permission/BasePermission.java')
-rw-r--r-- | com/android/server/pm/permission/BasePermission.java | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/com/android/server/pm/permission/BasePermission.java b/com/android/server/pm/permission/BasePermission.java index 71d3202d..09a6e9c0 100644 --- a/com/android/server/pm/permission/BasePermission.java +++ b/com/android/server/pm/permission/BasePermission.java @@ -48,7 +48,6 @@ import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Arrays; -import java.util.Collection; import java.util.Map; import java.util.Objects; import java.util.Set; @@ -78,7 +77,7 @@ public final class BasePermission { final String name; - final @PermissionType int type; + @PermissionType final int type; String sourcePackageName; @@ -253,12 +252,12 @@ public final class BasePermission { return changed; } - public void updateDynamicPermission(Collection<BasePermission> permissionTrees) { + public void updateDynamicPermission(Map<String, BasePermission> permissionTrees) { if (PackageManagerService.DEBUG_SETTINGS) Log.v(TAG, "Dynamic permission: name=" + getName() + " pkg=" + getSourcePackageName() + " info=" + pendingPermissionInfo); if (sourcePackageSetting == null && pendingPermissionInfo != null) { - final BasePermission tree = findPermissionTree(permissionTrees, name); + final BasePermission tree = findPermissionTreeLP(permissionTrees, name); if (tree != null && tree.perm != null) { sourcePackageSetting = tree.sourcePackageSetting; perm = new PackageParser.Permission(tree.perm.owner, @@ -270,8 +269,8 @@ public final class BasePermission { } } - static BasePermission createOrUpdate(@Nullable BasePermission bp, @NonNull Permission p, - @NonNull PackageParser.Package pkg, Collection<BasePermission> permissionTrees, + public static BasePermission createOrUpdate(@Nullable BasePermission bp, @NonNull Permission p, + @NonNull PackageParser.Package pkg, Map<String, BasePermission> permissionTrees, boolean chatty) { final PackageSettingBase pkgSetting = (PackageSettingBase) pkg.mExtras; // Allow system apps to redefine non-system permissions @@ -301,7 +300,7 @@ public final class BasePermission { if (bp.perm == null) { if (bp.sourcePackageName == null || bp.sourcePackageName.equals(p.info.packageName)) { - final BasePermission tree = findPermissionTree(permissionTrees, p.info.name); + final BasePermission tree = findPermissionTreeLP(permissionTrees, p.info.name); if (tree == null || tree.sourcePackageName.equals(p.info.packageName)) { bp.sourcePackageSetting = pkgSetting; @@ -346,12 +345,12 @@ public final class BasePermission { return bp; } - static BasePermission enforcePermissionTree( - Collection<BasePermission> permissionTrees, String permName, int callingUid) { + public static BasePermission enforcePermissionTreeLP( + Map<String, BasePermission> permissionTrees, String permName, int callingUid) { if (permName != null) { - BasePermission bp = findPermissionTree(permissionTrees, permName); + BasePermission bp = findPermissionTreeLP(permissionTrees, permName); if (bp != null) { - if (bp.uid == UserHandle.getAppId(callingUid)) { + if (bp.uid == UserHandle.getAppId(callingUid)) {//UserHandle.getAppId(Binder.getCallingUid())) { return bp; } throw new SecurityException("Calling uid " + callingUid @@ -374,9 +373,9 @@ public final class BasePermission { } } - private static BasePermission findPermissionTree( - Collection<BasePermission> permissionTrees, String permName) { - for (BasePermission bp : permissionTrees) { + private static BasePermission findPermissionTreeLP( + Map<String, BasePermission> permissionTrees, String permName) { + for (BasePermission bp : permissionTrees.values()) { if (permName.startsWith(bp.name) && permName.length() > bp.name.length() && permName.charAt(bp.name.length()) == '.') { |