From bf2ec2c5d7d4ae2f7a9bb1e2896fcddd96a386ff Mon Sep 17 00:00:00 2001 From: Shreyas Basarge Date: Thu, 9 Feb 2017 13:38:49 +0000 Subject: [PATCH] Fix for bmgr whitelist The bmgr whitelist command was broken after the selectTransport api cl. This cl fixes it. Bug: 34953486 Test: Verify that adb shell bmgr whitelist prints all whitelisted transports Change-Id: I3c3275258a45a035a0ca9404d1016ca5663cceaf --- .../com/android/server/backup/BackupManagerService.java | 9 ++++++++- .../java/com/android/server/backup/TransportManager.java | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index 88c05b55116b8..3adf0f45dffc5 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -9573,7 +9573,14 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF public String[] getTransportWhitelist() { // No permission check, intentionally. - return mTransportManager.getTransportWhitelist().toArray(new String[0]); + Set whitelistedComponents = mTransportManager.getTransportWhitelist(); + String[] whitelistedTransports = new String[whitelistedComponents.size()]; + int i = 0; + for (ComponentName component : whitelistedComponents) { + whitelistedTransports[i] = component.flattenToShortString(); + i++; + } + return whitelistedTransports; } // Select which transport to use for the next backup operation. diff --git a/services/backup/java/com/android/server/backup/TransportManager.java b/services/backup/java/com/android/server/backup/TransportManager.java index 93d5a1ea8880b..b9dbe13af7c8c 100644 --- a/services/backup/java/com/android/server/backup/TransportManager.java +++ b/services/backup/java/com/android/server/backup/TransportManager.java @@ -31,6 +31,7 @@ import android.os.IBinder; import android.os.RemoteException; import android.os.UserHandle; import android.util.ArrayMap; +import android.util.ArraySet; import android.util.EventLog; import android.util.Log; import android.util.Slog; @@ -84,7 +85,7 @@ class TransportManager { TransportBoundListener listener) { mContext = context; mPackageManager = context.getPackageManager(); - mTransportWhitelist = whitelist; + mTransportWhitelist = (whitelist != null) ? whitelist : new ArraySet<>(); mCurrentTransportName = defaultTransport; mTransportBoundListener = listener; }