From 7c01c22c396af0d563bfdcc309cf773f327eb7fd Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Mon, 27 Sep 2021 15:45:22 +0200 Subject: [PATCH] Clear calling identity when determining instant app status. This requires INTERACT_ACROSS_USERS_FULL, which the current caller (MediaProvider) lacks. Bug: 199988018 Test: inspect logs Change-Id: I4ef3494315b996473a0fb14b967ddaf62b5d7aa6 --- .../java/com/android/server/StorageManagerService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 3510501358121..da891a2b1cfb5 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -4366,8 +4366,13 @@ class StorageManagerService extends IStorageManager.Stub packageName = packagesForUid[0]; } - if (mPmInternal.isInstantApp(packageName, UserHandle.getUserId(uid))) { - return StorageManager.MOUNT_MODE_EXTERNAL_NONE; + final long token = Binder.clearCallingIdentity(); + try { + if (mPmInternal.isInstantApp(packageName, UserHandle.getUserId(uid))) { + return StorageManager.MOUNT_MODE_EXTERNAL_NONE; + } + } finally { + Binder.restoreCallingIdentity(token); } if (mStorageManagerInternal.isExternalStorageService(uid)) {