From 2d45bd539765805d5040c4fff91090a4debc9742 Mon Sep 17 00:00:00 2001 From: Ruslan Tkhakokhov Date: Tue, 2 May 2023 16:30:45 +0000 Subject: [PATCH] Clear calling identity n BackupManager#reportDelayedRestoreResult The method binds BackupTransport, which needs to happen from system process. Bug: 280047012 Test: 1. Modify TelephonyBackupAgent to call BackupManager#reportDelayedRestoreResult 2. Observe there's no exception. Change-Id: I84ee31fa7d08f1f4714e303c33e64ed61503c452 --- .../com/android/server/backup/BackupManagerService.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index 3a7aa855ea90a..ce9cdc2aeab5a 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -1619,7 +1619,14 @@ public class BackupManagerService extends IBackupManager.Stub { /* caller */ "reportDelayedRestoreResult()"); if (userBackupManagerService != null) { - userBackupManagerService.reportDelayedRestoreResult(packageName, results); + // Clear as the method binds to BackupTransport, which needs to happen from system + // process. + final long oldId = Binder.clearCallingIdentity(); + try { + userBackupManagerService.reportDelayedRestoreResult(packageName, results); + } finally { + Binder.restoreCallingIdentity(oldId); + } } }