diff options
Diffstat (limited to 'services/core/java/com/android/server/SystemConfig.java')
-rw-r--r-- | services/core/java/com/android/server/SystemConfig.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/SystemConfig.java b/services/core/java/com/android/server/SystemConfig.java index 1bd11261689..e0ef5ae1e69 100644 --- a/services/core/java/com/android/server/SystemConfig.java +++ b/services/core/java/com/android/server/SystemConfig.java @@ -17,6 +17,7 @@ package com.android.server; import android.app.ActivityManager; +import android.content.ComponentName; import android.content.pm.FeatureInfo; import android.content.pm.Signature; import android.os.*; @@ -89,6 +90,9 @@ public class SystemConfig { // These are the app package names that should not allow IME switching. final ArraySet<String> mFixedImeApps = new ArraySet<>(); + // These are the permitted backup transport service components + final ArraySet<ComponentName> mBackupTransportWhitelist = new ArraySet<>(); + final ArrayMap<Signature, ArraySet<String>> mSignatureAllowances = new ArrayMap<Signature, ArraySet<String>>(); @@ -133,6 +137,10 @@ public class SystemConfig { return mSignatureAllowances; } + public ArraySet<ComponentName> getBackupTransportWhitelist() { + return mBackupTransportWhitelist; + } + SystemConfig() { // Read configuration from system readPermissions(Environment.buildPath( @@ -388,6 +396,24 @@ public class SystemConfig { XmlUtils.skipCurrentTag(parser); continue; + } else if ("backup-transport-whitelisted-service".equals(name)) { + String serviceName = parser.getAttributeValue(null, "service"); + if (serviceName == null) { + Slog.w(TAG, "<backup-transport-whitelisted-service> without service in " + + permFile + " at " + parser.getPositionDescription()); + } else { + ComponentName cn = ComponentName.unflattenFromString(serviceName); + if (cn == null) { + Slog.w(TAG, + "<backup-transport-whitelisted-service> with invalid service name " + + serviceName + " in "+ permFile + + " at " + parser.getPositionDescription()); + } else { + mBackupTransportWhitelist.add(cn); + } + } + XmlUtils.skipCurrentTag(parser); + } else { XmlUtils.skipCurrentTag(parser); continue; |