diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index 62e703bb0836b..7c73ebd365ffd 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -1574,8 +1574,15 @@ public final class ProcessList { gidList.add(userGid); } if (mountExternal == Zygote.MOUNT_EXTERNAL_ANDROID_WRITABLE) { + // For DownloadProviders and MTP: To grant access to /sdcard/Android/ gidList.add(Process.SDCARD_RW_GID); } + if (mountExternal == Zygote.MOUNT_EXTERNAL_PASS_THROUGH) { + // For the FUSE daemon: To grant access to the lower filesystem. + // EmulatedVolumes: /data/media and /mnt/expand//data/media + // PublicVolumes: /mnt/media_rw/ + gidList.add(Process.MEDIA_RW_GID); + } if (packageName.equals("com.android.externalstorage")) { // Allows access to 'unreliable' (USB OTG) volumes via SAF gidList.add(Process.MEDIA_RW_GID);