summaryrefslogtreecommitdiff
path: root/com/android/server/pm/permission/BasePermission.java
diff options
context:
space:
mode:
Diffstat (limited to 'com/android/server/pm/permission/BasePermission.java')
-rw-r--r--com/android/server/pm/permission/BasePermission.java27
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()) == '.') {