summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Tate <ctate@android.com>2016-06-20 17:54:15 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-06-20 17:54:15 +0000
commit24c08b27ef08154d687e599f5fafa763cb4e3cb4 (patch)
tree06806be7a2fb0d8367529ea056a08239ec5d8286
parentfd540afef565e6153dc2ac363212dad21caf39a0 (diff)
parent0754128dc9dbd15b0896e385237fbcb8a1021373 (diff)
Merge \\"Let bmgr inspect the set of whitelisted transports\\" into nyc-dev am: 0f101342e1
am: 0754128dc9 Change-Id: I86f7a4965945fba52916b4db7e7a54e90aa824ab
-rw-r--r--cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java19
-rw-r--r--core/java/android/app/backup/IBackupManager.aidl8
-rw-r--r--services/backup/java/com/android/server/backup/BackupManagerService.java9
-rw-r--r--services/backup/java/com/android/server/backup/Trampoline.java6
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;