diff options
author | Jani Lusikka <jani.lusikka@gmail.com> | 2016-03-27 22:39:10 +0300 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-03-29 10:00:15 -0700 |
commit | 015241cc33e40843064307534eef4cc8b6c22f9a (patch) | |
tree | 2f15a67dd03e337eddf3bade3a38d8c67c0ee52f | |
parent | b2c1eb77a1220ec9467440ae4f81ff16f3d651e4 (diff) | |
download | frameworks_base-015241cc33e40843064307534eef4cc8b6c22f9a.zip frameworks_base-015241cc33e40843064307534eef4cc8b6c22f9a.tar.gz frameworks_base-015241cc33e40843064307534eef4cc8b6c22f9a.tar.bz2 |
Fix ownership for files/folders created by ExternalStorageProvider on ext4/f2fs
By forcing ExternalStorageProvider to use the sdcard FUSE layer for access,
ext4/f2fs sdcards will be treated with the correct media_rw:media_rw
permissions instead of the current app permissions.
Change-Id: I2cbb97727ebe5af88a879490732925406a165af5
-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) { |