summaryrefslogtreecommitdiff
path: root/packages/ExternalStorageProvider
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ExternalStorageProvider')
-rw-r--r--packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
index 1e19786f5d41..3bbf0c09b48e 100644
--- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
+++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
@@ -319,6 +319,16 @@ public class ExternalStorageProvider extends FileSystemProvider {
return false;
}
+ // Allow all directories on USB, including the root.
+ try {
+ RootInfo rootInfo = getRootFromDocId(docId);
+ if ((rootInfo.flags & Root.FLAG_REMOVABLE_USB) == Root.FLAG_REMOVABLE_USB) {
+ return false;
+ }
+ } catch (FileNotFoundException e) {
+ Log.e(TAG, "Failed to determine rootInfo for docId");
+ }
+
final String path = getPathFromDocId(docId);
// Block the root of the storage