diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/com/android/server/SystemConfig.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index d40924b603a5..21ca948fa89c 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -229,6 +229,7 @@ public class SystemConfig { private ArrayMap<String, Set<String>> mPackageToUserTypeBlacklist = new ArrayMap<>(); private final ArraySet<String> mRollbackWhitelistedPackages = new ArraySet<>(); + private final ArraySet<String> mWhitelistedStagedInstallers = new ArraySet<>(); /** * Map of system pre-defined, uniquely named actors; keys are namespace, @@ -394,6 +395,10 @@ public class SystemConfig { return mRollbackWhitelistedPackages; } + public Set<String> getWhitelistedStagedInstallers() { + return mWhitelistedStagedInstallers; + } + public ArraySet<String> getAppDataIsolationWhitelistedApps() { return mAppDataIsolationWhitelistedApps; } @@ -1137,6 +1142,20 @@ public class SystemConfig { } XmlUtils.skipCurrentTag(parser); } break; + case "whitelisted-staged-installer": { + if (allowAppConfigs) { + String pkgname = parser.getAttributeValue(null, "package"); + if (pkgname == null) { + Slog.w(TAG, "<" + name + "> without package in " + permFile + + " at " + parser.getPositionDescription()); + } else { + mWhitelistedStagedInstallers.add(pkgname); + } + } else { + logNotAllowedInPartition(name, permFile, parser); + } + XmlUtils.skipCurrentTag(parser); + } break; default: { Slog.w(TAG, "Tag " + name + " is unknown in " + permFile + " at " + parser.getPositionDescription()); |
