diff options
author | Jeff Sharkey <jsharkey@android.com> | 2016-10-31 14:33:49 -0600 |
---|---|---|
committer | gitbuildkicker <android-build@google.com> | 2016-11-30 10:49:09 -0800 |
commit | d9f38b167f9364671ec2755d75c911757faf641f (patch) | |
tree | d276c2f99e46e70932d0a4bdab911905c8af12b4 | |
parent | 20626d4909078d17fce6ab0f0bf5ea6150c5e9f5 (diff) | |
download | base-d9f38b167f9364671ec2755d75c911757faf641f.tar.gz |
Public volumes belong to a single user.
When a public (vfat) device is inserted, it's strongly associated
with the current foreground user, and no other users should be able
to access it, since otherwise that would be a cross-user data leak.
To use the device under a different user, switch users and then
eject/remount the device.
Test: verified user isolation of USB drive
Bug: 32523490
Change-Id: I590c791996f1fea8d78f625dc942d149f1f41614
(cherry picked from commit 8b38d083c42e2706e1ff5a1410fa61d1f5dea3f5)
-rw-r--r-- | packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java index 3ef9b8e1b8c4..10e5dcc91678 100644 --- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java +++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java @@ -161,7 +161,8 @@ public class ExternalStorageProvider extends DocumentsProvider { final VolumeInfo privateVol = mStorageManager.findPrivateForEmulated(volume); title = mStorageManager.getBestVolumeDescription(privateVol); } - } else if (volume.getType() == VolumeInfo.TYPE_PUBLIC) { + } else if (volume.getType() == VolumeInfo.TYPE_PUBLIC + && volume.getMountUserId() == userId) { rootId = volume.getFsUuid(); title = mStorageManager.getBestVolumeDescription(volume); } else { |