summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2022-01-21 23:00:04 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-01-21 23:00:04 +0000
commita1ea4c6986d75b41b6df58d1de8511e113a5e6db (patch)
tree6119ce8a6ab6c0680bf9b4084f7f6f7558269b4e
parentf3e50be0e28dc721f9728522566a52f1283698a0 (diff)
parentafeb865147d76e965f7cb038fe09b3f09ce333df (diff)
downloadcts-a1ea4c6986d75b41b6df58d1de8511e113a5e6db.tar.gz
Merge "Allow bypassing fixed check for system components and platform-signed persistent privileged apps." into sc-v2-dev
-rw-r--r--common/device-side/util-axt/src/com/android/compatibility/common/util/BaseDefaultPermissionGrantPolicyTest.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/common/device-side/util-axt/src/com/android/compatibility/common/util/BaseDefaultPermissionGrantPolicyTest.java b/common/device-side/util-axt/src/com/android/compatibility/common/util/BaseDefaultPermissionGrantPolicyTest.java
index 49208b1d5af..17663807182 100644
--- a/common/device-side/util-axt/src/com/android/compatibility/common/util/BaseDefaultPermissionGrantPolicyTest.java
+++ b/common/device-side/util-axt/src/com/android/compatibility/common/util/BaseDefaultPermissionGrantPolicyTest.java
@@ -81,6 +81,13 @@ public abstract class BaseDefaultPermissionGrantPolicyTest extends BusinessLogic
public abstract Set<String> getRuntimePermissionNames(List<PackageInfo> packageInfos);
/**
+ * Return the names of all the packages whose permissions can always be granted as fixed.
+ */
+ public Set<String> getGrantAsFixedPackageNames(ArrayMap<String, PackageInfo> packagesToVerify) {
+ return Collections.emptySet();
+ }
+
+ /**
* Returns whether the permission name, as defined in
* {@link PermissionManager.SplitPermissionInfo#getNewPermissions()}
* should be considered a violation.
@@ -532,9 +539,10 @@ public abstract class BaseDefaultPermissionGrantPolicyTest extends BusinessLogic
}
}
- public void checkDefaultGrantsInCorrectState(Map<String, PackageInfo> packagesToVerify,
+ public void checkDefaultGrantsInCorrectState(ArrayMap<String, PackageInfo> packagesToVerify,
SparseArray<UidState> pregrantUidStates,
Map<String, ArrayMap<String, ArraySet<String>>> violations) {
+ Set<String> grantAsFixedPackageNames = getGrantAsFixedPackageNames(packagesToVerify);
PackageManager packageManager = getInstrumentation().getContext().getPackageManager();
for (PackageInfo packageInfo : packagesToVerify.values()) {
final int uid = packageInfo.applicationInfo.uid;
@@ -576,7 +584,8 @@ public abstract class BaseDefaultPermissionGrantPolicyTest extends BusinessLogic
setPermissionGrantState(packageInfo.packageName, permission, false);
- Boolean fixed = uidState.grantedPermissions.valueAt(i);
+ Boolean fixed = grantAsFixedPackageNames.contains(packageInfo.packageName)
+ || uidState.grantedPermissions.valueAt(i);
// Weaker grant is fine, e.g. not-fixed instead of fixed.
if (!fixed && packageManager.checkPermission(permission, packageInfo.packageName)