diff options
| -rw-r--r-- | services/backup/java/com/android/server/backup/Trampoline.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/services/backup/java/com/android/server/backup/Trampoline.java b/services/backup/java/com/android/server/backup/Trampoline.java index 303734a4043c..87872e8bcbc2 100644 --- a/services/backup/java/com/android/server/backup/Trampoline.java +++ b/services/backup/java/com/android/server/backup/Trampoline.java @@ -332,7 +332,14 @@ public class Trampoline extends IBackupManager.Stub { // If the user is unlocked, we can start the backup service for it. Otherwise we // will start the service when the user is unlocked as part of its unlock callback. if (getUserManager().isUserUnlocked(userId)) { - startServiceForUser(userId); + // Clear calling identity as initialization enforces the system identity but we + // can be coming from shell. + long oldId = Binder.clearCallingIdentity(); + try { + startServiceForUser(userId); + } finally { + Binder.restoreCallingIdentity(oldId); + } } } else { try { |