summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-12-16 01:33:33 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-12-16 01:33:33 +0000
commit70b60797305e68d001a7f5f9a6c6afa634deab4d (patch)
treef7bf50f3e30bb1a68b5c69929af661c2b8d2853f
parent8c5c5d9dfeb41d1462cdb491f9189557335dff22 (diff)
parentf0a70b189162fff6fec7346d3fba691f16420f79 (diff)
Merge "Add a whitelist to control packages eligible for rollback (1/n)"
-rw-r--r--core/java/com/android/server/SystemConfig.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java
index 49a73ee7790f..7562bad80a54 100644
--- a/core/java/com/android/server/SystemConfig.java
+++ b/core/java/com/android/server/SystemConfig.java
@@ -222,6 +222,8 @@ public class SystemConfig {
private ArrayMap<String, Set<String>> mPackageToUserTypeWhitelist = new ArrayMap<>();
private ArrayMap<String, Set<String>> mPackageToUserTypeBlacklist = new ArrayMap<>();
+ private final ArraySet<String> mRollbackWhitelistedPackages = new ArraySet<>();
+
/**
* Map of system pre-defined, uniquely named actors; keys are namespace,
* value maps actor name to package name.
@@ -382,6 +384,10 @@ public class SystemConfig {
return mBugreportWhitelistedPackages;
}
+ public Set<String> getRollbackWhitelistedPackages() {
+ return mRollbackWhitelistedPackages;
+ }
+
/**
* Gets map of packagesNames to userTypes, dictating on which user types each package should be
* initially installed, and then removes this map from SystemConfig.
@@ -1078,6 +1084,16 @@ public class SystemConfig {
}
XmlUtils.skipCurrentTag(parser);
} break;
+ case "rollback-whitelisted-app": {
+ String pkgname = parser.getAttributeValue(null, "package");
+ if (pkgname == null) {
+ Slog.w(TAG, "<" + name + "> without package in " + permFile
+ + " at " + parser.getPositionDescription());
+ } else {
+ mRollbackWhitelistedPackages.add(pkgname);
+ }
+ XmlUtils.skipCurrentTag(parser);
+ } break;
default: {
Slog.w(TAG, "Tag " + name + " is unknown in "
+ permFile + " at " + parser.getPositionDescription());