diff options
author | Chris Tate <ctate@android.com> | 2016-06-20 17:54:15 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-06-20 17:54:15 +0000 |
commit | 24c08b27ef08154d687e599f5fafa763cb4e3cb4 (patch) | |
tree | 06806be7a2fb0d8367529ea056a08239ec5d8286 | |
parent | fd540afef565e6153dc2ac363212dad21caf39a0 (diff) | |
parent | 0754128dc9dbd15b0896e385237fbcb8a1021373 (diff) |
Merge \\"Let bmgr inspect the set of whitelisted transports\\" into nyc-dev am: 0f101342e1
am: 0754128dc9
Change-Id: I86f7a4965945fba52916b4db7e7a54e90aa824ab
4 files changed, 42 insertions, 0 deletions
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java index 69b5a17300de..5bf80765a7de 100644 --- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java +++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java @@ -122,6 +122,11 @@ public final class Bmgr { return; } + if ("whitelist".equals(op)) { + doPrintWhitelist(); + return; + } + System.err.println("Unknown command"); showUsage(); } @@ -604,6 +609,20 @@ public final class Bmgr { } } + private void doPrintWhitelist() { + try { + final String[] whitelist = mBmgr.getTransportWhitelist(); + if (whitelist != null) { + for (String transport : whitelist) { + System.out.println(transport); + } + } + } catch (RemoteException e) { + System.err.println(e.toString()); + System.err.println(BMGR_NOT_RUNNING_ERR); + } + } + private String nextArg() { if (mNextArg >= mArgs.length) { return null; diff --git a/core/java/android/app/backup/IBackupManager.aidl b/core/java/android/app/backup/IBackupManager.aidl index 5d4cc6fe2dc9..a320bbf9d178 100644 --- a/core/java/android/app/backup/IBackupManager.aidl +++ b/core/java/android/app/backup/IBackupManager.aidl @@ -218,6 +218,14 @@ interface IBackupManager { String[] listAllTransports(); /** + * Retrieve the list of whitelisted transport components. Callers do </i>not</i> need + * any special permission. + * + * @return The names of all whitelisted transport components defined by the system. + */ + String[] getTransportWhitelist(); + + /** * Specify the current backup transport. Callers must hold the * android.permission.BACKUP permission to use this method. * diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index 930c151b1485..eea771d26a0e 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -9598,6 +9598,15 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF return list; } + public String[] getTransportWhitelist() { + // No permission check, intentionally. + String[] whitelist = new String[mTransportWhitelist.size()]; + for (int i = mTransportWhitelist.size() - 1; i >= 0; i--) { + whitelist[i] = mTransportWhitelist.valueAt(i).flattenToShortString(); + } + return whitelist; + } + // Select which transport to use for the next backup operation. public String selectBackupTransport(String transport) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, diff --git a/services/backup/java/com/android/server/backup/Trampoline.java b/services/backup/java/com/android/server/backup/Trampoline.java index e74526338a8f..312b878b284c 100644 --- a/services/backup/java/com/android/server/backup/Trampoline.java +++ b/services/backup/java/com/android/server/backup/Trampoline.java @@ -275,6 +275,12 @@ public class Trampoline extends IBackupManager.Stub { } @Override + public String[] getTransportWhitelist() { + BackupManagerService svc = mService; + return (svc != null) ? svc.getTransportWhitelist() : null; + } + + @Override public String selectBackupTransport(String transport) throws RemoteException { BackupManagerService svc = mService; return (svc != null) ? svc.selectBackupTransport(transport) : null; |