Fix getStorageVolumes to return public volumes visible to
userIdSharingMedia with. In ag/16708639, getStorageVolumes was modified to return volumes mounted on the calling user. Clone profile is an exception to this rule, as by definition, it should access the public volumes available to its parent user. To fix this we allow a volume to be returned if: 1. Its a public volume and 2. Its visible to the userId the calling user shares media with. Bug: b/265772860 b/265724297 b/260950918 Test: atest AppCloningHostTest Change-Id: I84a57ea13b08a5f1cd0095e944aeacc3434df4de
This commit is contained in:
@@ -3851,8 +3851,12 @@ class StorageManagerService extends IStorageManager.Stub
|
||||
// Return both read only and write only volumes. When includeSharedProfile is
|
||||
// true, all the volumes of userIdSharingMedia should be returned when queried
|
||||
// from the user it shares media with
|
||||
// Public Volumes will be also be returned if visible to the
|
||||
// userIdSharingMedia with.
|
||||
match = vol.isVisibleForUser(userId)
|
||||
|| (!vol.isVisible() && includeInvisible && vol.getPath() != null)
|
||||
|| (vol.getType() == VolumeInfo.TYPE_PUBLIC
|
||||
&& vol.isVisibleForUser(userIdSharingMedia))
|
||||
|| (includeSharedProfile && vol.isVisibleForUser(userIdSharingMedia));
|
||||
}
|
||||
if (!match) continue;
|
||||
|
||||
Reference in New Issue
Block a user