summaryrefslogtreecommitdiff
path: root/cmds/bmgr
diff options
context:
space:
mode:
authorAnnie Meng <anniemeng@google.com>2018-06-04 19:12:16 +0100
committerAnnie Meng <anniemeng@google.com>2018-06-05 19:25:37 +0100
commit8927037477f4a895b35c492e0861dea86dd2440f (patch)
tree1a8237223e3818eeb5df53c0f99f99ccc4518c52 /cmds/bmgr
parent9cf1839e502c30b415f858e8628fb9d2ce3f8c99 (diff)
Disable bmgr if BMS is not running
If BMS is not running, we should not run any bmgr commands and print an error. This can occur after a device with a lockscreen reboots and has not unlocked yet, as the backup service is not active before unlocking. Bug: 80691476 Test: 1) Device with lock + adb reboot -> run any 'adb shell bmgr' command -> prints error 2) Device with no lock + adb reboot -> run any 'adb shell bmgr' command -> success Change-Id: I101b61d18a637cdb945ffc4a5e989a5dd270ee32
Diffstat (limited to 'cmds/bmgr')
-rw-r--r--cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java25
1 files changed, 22 insertions, 3 deletions
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
index 84a04e5ad6e3..5e6163397c51 100644
--- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
+++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
@@ -71,9 +71,7 @@ public final class Bmgr {
return;
}
- mBmgr = IBackupManager.Stub.asInterface(ServiceManager.getService("backup"));
- if (mBmgr == null) {
- System.err.println(BMGR_NOT_RUNNING_ERR);
+ if (!isBmgrActive()) {
return;
}
@@ -150,6 +148,27 @@ public final class Bmgr {
showUsage();
}
+ private boolean isBmgrActive() {
+ mBmgr = IBackupManager.Stub.asInterface(ServiceManager.getService("backup"));
+ if (mBmgr == null) {
+ System.err.println(BMGR_NOT_RUNNING_ERR);
+ return false;
+ }
+
+ try {
+ if (!mBmgr.isBackupServiceActive(UserHandle.USER_SYSTEM)) {
+ System.err.println(BMGR_NOT_RUNNING_ERR);
+ return false;
+ }
+ } catch (RemoteException e) {
+ System.err.println(e.toString());
+ System.err.println(BMGR_NOT_RUNNING_ERR);
+ return false;
+ }
+
+ return true;
+ }
+
private String enableToString(boolean enabled) {
return enabled ? "enabled" : "disabled";
}