From b19c9dcd1a6c7db1203c067f838f19bed7f3dc75 Mon Sep 17 00:00:00 2001 From: Youkichi Hosoi Date: Wed, 23 Sep 2020 11:02:32 +0900 Subject: [PATCH] Handle stub volumes in StorageSessionController Currently, StorageSessionController.shouldHandle() returns true only for emulated volumes and public volumes. As a result, even when we call MountUserFuse() in StubVolume::doMount(), stub volumes for external storage (MyFiles and removable media) are not covered with the Android FUSE layer which is required for features like EXIF redaction. This CL modifies StorageSessionController.shouldHandle() so that stub volumes can be properly handled by StorageSessionController. Bug: 123377807 Bug: 123641356 Bug: 132796154 Test: $ ls -lZ /storage | grep CAFEF00D Test: $ atest MediaStore_Images_MediaTest#testLocationRedaction Test: Tested in R Change-Id: I74caa0c16bd0021c561c599616c53076022aa4de Merged-In: I74caa0c16bd0021c561c599616c53076022aa4de --- .../android/server/storage/StorageSessionController.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/storage/StorageSessionController.java b/services/core/java/com/android/server/storage/StorageSessionController.java index 0d059ae389e9c..8345424712dd1 100644 --- a/services/core/java/com/android/server/storage/StorageSessionController.java +++ b/services/core/java/com/android/server/storage/StorageSessionController.java @@ -361,7 +361,11 @@ public final class StorageSessionController { } } + private static boolean isSupportedVolume(VolumeInfo vol) { + return isEmulatedOrPublic(vol) || vol.type == VolumeInfo.TYPE_STUB; + } + private boolean shouldHandle(@Nullable VolumeInfo vol) { - return mIsFuseEnabled && !mIsResetting && (vol == null || isEmulatedOrPublic(vol)); + return mIsFuseEnabled && !mIsResetting && (vol == null || isSupportedVolume(vol)); } }