diff options
Diffstat (limited to 'packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java')
-rw-r--r-- | packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java | 8 |
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) { |