summaryrefslogtreecommitdiffstats
path: root/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java')
-rw-r--r--packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
index 18335b6..46b73d8 100644
--- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
+++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
@@ -169,6 +169,14 @@ public class ExternalStorageProvider extends DocumentsProvider {
root.visiblePath = null;
}
root.path = volume.getInternalPathForUser(userId);
+
+ // Force all ext4/f2fs sdcard acccess through the sdcard FUSE layer to ensure the
+ // correct permissions for accessing files and directories.
+ if (volume.getType() == VolumeInfo.TYPE_PUBLIC && root.visiblePath != null
+ && ("ext4".equals(volume.fsType) || "f2fs".equals(volume.fsType))) {
+ root.path = root.visiblePath;
+ }
+
root.docId = getDocIdForFile(root.path);
} catch (FileNotFoundException e) {