71938e18ca4ad77519da70565710ef37e79443f8 |
|
11-May-2018 |
Jerry Zhang <zhangjerry@google.com> |
Access removable volumes through /mnt/media_rw Due to permissions changes, we now need to access the underlying filesystem of removable devices in order to get write access. Add internalPath to StorageVolume, and have VolumeInfo set the field on creation. Bug: 77849654 Test: Can write to emulated sdcard through MTP Change-Id: I63302ecf2dd2600a1c9f3f6ab106c3695654cbaa
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
12e15cc6ed0ebe29c1822945172c30864feb6c58 |
|
12-Jan-2018 |
Felipe Leme <felipeal@google.com> |
Created hidden constants and metrics for ScopedAccessProvider. Test: echo 'Not yet!' Bug: 63720392 Change-Id: I811cde225fdcf5271fda9b357da742e408de0627
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
f9c5c2574d95b6d233ebae8beae110f4e15c52c5 |
|
17-Aug-2017 |
Jerry Zhang <zhangjerry@google.com> |
Add MtpStorageManager for monitoring filesystem events MtpStorageManager keeps track of file information and send notifications for new files. MtpDatabase now uses this instead of MediaProvider for getting object information, although some operations are still reflected into MP. Since MtpStorageManager handles storage ids, remove that field from StorageVolume and VolumeInfo. Clean up a lot of the jni code for MtpDatabase. Bug: 63143623 Test: Test every MtpOperation in a variety of situations on Linux and Windows. Also use the shell to manipulate files. Verify that the cache is consistent throughout, and the operations behave as expected. Verify files created by the shell appear. Test: adb shell am instrument -w android.mtp /android.support.test.runner.AndroidJUnitRunner Change-Id: Id4ea810047b0c323399cd833047733e5daafb30a
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
104b932b7b84e4d4dda51b187615d79e2559ebca |
|
14-Mar-2017 |
Felipe Leme <felipeal@google.com> |
Fixed obsolete TODOs. Test: not needed Bug: 35395043 Bug: 26742218 Change-Id: I0e5adb574610374055a6546b66529a7aed7cc413
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
92b96ba8fc51fab4f146900089a82415c01103aa |
|
01-Nov-2016 |
Garfield Tan <xutan@google.com> |
Add internal support to convert a file system path to document URI. Test: Manual tested with a new sample app in development/samples. Bug: 30261615 Change-Id: I498a22b248fbc55b33d3efb4aa3183207cfb7bab
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
2ac876945bfb388fed8b796c6d8c8e7f2e97f0d4 |
|
30-Mar-2016 |
Felipe Leme <felipeal@google.com> |
Minor tweaks on Scoped Directory Access: - Only allow entire directory access on non-primary volumes. - Do not display primary storage label on scoped access. BUG: 27743842 BUG: 27676858 Change-Id: I9884fb1e2df3534fceebc5d5bef44adfb758724c
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
c02bfae73e139f2a1c56cc6b051bfc7877b8cf1d |
|
27-Mar-2016 |
Jeff Sharkey <jsharkey@android.com> |
Include "invisible" volumes in new storage API. The purpose of the new StorageVolume API is to grant access to volumes that aren't typically "visible" to a developer, so include them in the returned results. Also return the real mounted state instead of augmenting based on the caller's storage permissions. Clean up API naming slightly and return as List. Bug: 27615770 Change-Id: Ida921a4b91e5af81e418e76f672d9108f45a9781
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
541af9b119b7312aaa4545a9c103e7ed1365345b |
|
24-Mar-2016 |
Felipe Leme <felipeal@google.com> |
Removed obsolete @NonNull. BUG: 27676858 Change-Id: Ic3916769c1fa9d557294bcdbbc94e00c68376a5d
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
db892b84e513f174d29f67d293435407a0ac7c6c |
|
18-Mar-2016 |
Felipe Leme <felipeal@google.com> |
Allow Scoped Directory Access on whole volume. There are some scenarios where an app needs access to the whole SD Card, not subdirectories. For example, user might have a SDCard with directories like vacation_pictures (instead of Pictures/vacation); another example is a file management app. BUG: 27676858 Change-Id: I20ef713de7e4dfa7e2d7d07bab11898af186d673
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
50d1c044b5ce4b6fef532dc6e083cef903f554b2 |
|
01-Mar-2016 |
Jeff Sharkey <jsharkey@android.com> |
Parcelable classes should always be final. Also hide ConnectivityMetricsEvent which isn't being used yet. Bug: 27415331 Change-Id: Iacdccddda504f3f669185f807b4f35b8dc2b0212
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
53fcc756d06ed382e7b02b266631f7848d1b9c4f |
|
17-Feb-2016 |
Felipe Leme <felipeal@google.com> |
Fixed typo on Storage Access Framework. BUG: 26742218 Change-Id: I9b695ebe2176f186fc63b20f624e40dd9e257bc3
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
34a9d5271915fb82c22811e6d17691a34b6c52c1 |
|
17-Feb-2016 |
Felipe Leme <felipeal@google.com> |
Removed Intent.OPEN_EXTERNAL_DIRECTORY. Such intent is now encapsulated by StorageVolume.createAccessIntent(). BUG: 26742218 Change-Id: I2e2bd71126ecd74981f77b0af7d069f51aaece74
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
04a5d40cf35fb2c2fca2c1bfd573e5916d804ef6 |
|
09-Feb-2016 |
Felipe Leme <felipeal@google.com> |
Initial implementation of StorageManager.getVolumesList(). This change makes StorageManager.getVolumesList(), StorageManager.getPrimaryVolume(), and StorageVolume public and adds a buildAccessIntent() in the latter to automatically generate the ACTION_OPEN_EXTERNAL_DIRECTORY intent, but it doesn't change the ACTION_OPEN_EXTERNAL_DIRECTORY implementation yet (i.e., it still takes an URI with the physical path of the directory, instead of a StorageVolume and a directorny name). BUG: 26742218 Change-Id: I36c59c42b6579e125ec7f03c3af141260875a491
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
5af1835d678031d4a6615edc96ba58c82304b31d |
|
08-Jul-2015 |
Jeff Sharkey <jsharkey@android.com> |
Generate stable MTP storage IDs. It ends up that MediaProvider is persisting MTP storage IDs in its database, so we need to make sure we generate stable IDs over time, otherwise we can end up looking into a black hole. Bug: 22256092 Change-Id: I6a75c239aac1b71fd5f6df0df69b24971079a086
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
1b8ef7e3165ff9aa52a4905dafc8d0f83e7403f9 |
|
04-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Parcelable objects for Disk/Volume. Will eventually be used by SystemUI and/or Settings. Also fix SettingsProvider NPE. Bug: 19993667, 19909433 Change-Id: Ie326849ac5f43ee35f728d9cc0e332b72292db70
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
4887789e44cdb16b042a35e8ec03983213e88ac6 |
|
18-Mar-2015 |
Jeff Sharkey <jsharkey@android.com> |
Progress towards dynamic storage support. Storage devices are no longer hard-coded, and instead bubble up from whatever Disk and VolumeBase that vold uncovered, turning into sibling Java objects in MountService. We now treat vold events as the source-of-truth for state, and synchronize our state by asking vold to "reset" whenever we reconnect. We've now moved to a model where all storage devices are mounted in the root mount namespace (user boundaries protected with GIDs), so we no longer need app-to-vold path translation. This also means that zygote only needs to bind mount the user-specific /mnt/user/n/ path onto /storage/self/ to make legacy paths like /sdcard work. This grealy simplifies a lot of system code. Many parts of the platform depend on a primary storage device always being present, so we hack together a stub StorageVolume when vold doesn't have a volume ready yet. StorageVolume isn't really a volume anymore; it's the user-specific view onto a volume, so MountService now filters and builds them based on the calling user. StorageVolume is now immutable, making it easier to reason about. Environment now builds all of its paths dynamically based on active volumes. Adds utility methods to turn int types and flags into user-readable strings for debugging purposes. Remove UMS sharing support for now, since no current devices support it; MTP is the recommended solution going forward because it offers better multi-user support. Simplify unmount logic, since vold will now gladly trigger EJECTING broadcast and kill stubborn processes. Bug: 19993667 Change-Id: I9842280e61974c91bae15d764e386969aedcd338
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
17d5c1b18132e82abb1b828dcc39ca17cff35dd3 |
|
06-Dec-2013 |
Tom Marshall <tdm.code@gmail.com> |
Parse UUID string with Long.parseLong Integer.parseInt throws an NPE for values greater than 0x7fffffff.
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
1f706c6cd1cb841adadc2babc57a34e5728983ec |
|
17-Oct-2013 |
Jeff Sharkey <jsharkey@android.com> |
Include external storage devices in DocumentsUI. Include volume UUID in generated document IDs to uniquely identify volumes over time. Show volume label to users. Watch for mount changes to update available roots. Bug: 11175082 Change-Id: Ia151bde768587468efde0c1d97a740b5353d1582
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
5aca2b8dc4f4ff2d466a64587d06666c7bbd9749 |
|
17-Oct-2013 |
Jeff Sharkey <jsharkey@android.com> |
Plumb through physical device UUID and label. vold now parse out UUID and label for inserted physical devices, and reports them to framework. Add these to hidden StorageVolume class for use by DocumentsUI and MediaProvider. Remove last JNI method in FileUtils! Bug: 11175082 Change-Id: I1cfcd1ade61767b103f693319ea2600008ee2e3c
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
b049e212ab7fe8967893c202efcb30fecfdb82fb |
|
08-Sep-2012 |
Jeff Sharkey <jsharkey@android.com> |
Include user identifier in external storage paths. When building external storage paths, always include user in path to enable cross-user paths and aid debugging. Each Zygote process continues to only have access to the appropriate user-specific emulated storage through bind mounts. A second set of mounts continue supporting legacy /sdcard-style paths. For example, a process running as owner has these mount points: /storage/emulated_legacy /storage/emulated_legacy/Android/obb /storage/emulated/0 /storage/emulated/obb Since Environment is created before Zygote forks, we need to update its internal paths after each process launches. Bug: 7131382 Change-Id: I6f8c6971f2a8edfb415c14cb4ed05ff97e587a21
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
9545dc020ea11649d70dcbe911a8e82a3254a4ea |
|
07-Sep-2012 |
Jeff Sharkey <jsharkey@android.com> |
Include primary flag in StorageVolume. Bug: 7003520 Change-Id: Iaae2ae22253820c954c51e0199c31087bc825f3f
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
13fe2a5330a5df662d7b1b136e7b08fe34c94a42 |
|
19-May-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
Fix bug #6522190 MountService should respond to configuration changes ("INTERNAL STORAGE" string should be translated dynamically) - use an ID instead of a String for StorageVolume description - use this ID for getting the correct localized version of the description string Change-Id: I30f3080fce2c889be38bfdf9f5121dffcf8a99e8
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
4161f9b30329e558868bb2b16c3e83c0b9cd26fd |
|
13-Jul-2011 |
Kenny Root <kroot@google.com> |
Add StorageVolume list to MountService dump Change-Id: If2be6e420d9671032d2e7a66c71a6733e6e48ac8
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
7a59dd2ce33b46cbc73eef964ddb4272ea1da8d1 |
|
11-Jul-2011 |
Mike Lockwood <lockwood@android.com> |
MTP: Return error if user tries to copy a file >= 4GB to a FAT32 file system Bug: 4561836 Change-Id: I2bffb93b032038f6c220c24c752ccd7ca66c23a0 Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
8e8b280bd19fa6cb69bb19e1d90cf03a47ba2d72 |
|
07-Jun-2011 |
Mike Lockwood <lockwood@android.com> |
StorageVolume: Add allowMassStorage flag Change-Id: I9d19e635bb06e50068d7e4e6919322bd5bb2e00f Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
37051cdd8624c4821bb68169be427061c48ad837 |
|
26-May-2011 |
Gilles Debunne <debunne@google.com> |
ExternalStorageFormatter takes an optional StorageVolume target. Change-Id: Ic85689659dbf49a7fcc1b7aaf25e4a94e62848b9
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
a5250c93928e256738125b265e10c96c3575597e |
|
23-May-2011 |
Mike Lockwood <lockwood@android.com> |
MountService: Add StorageVolume as extra in storage related broadcasts. Change-Id: I8e1a21ae233ba9812e58b363b59a66b260a01cbf Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
fbfe55512596fd00c1fb51caa851e17dae60fd43 |
|
17-May-2011 |
Mike Lockwood <lockwood@android.com> |
StorageVolume: Add getStorageId() accessor This ID is used for MTP as well as per volume querying in the media provider. Change-Id: Ic4fc986d972bd477730643f7e9450c390c0b3a4b Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|
2f6a3885533a52758c2cd4f81f6123a712be8ae6 |
|
10-May-2011 |
Mike Lockwood <lockwood@android.com> |
StorageManager: Clean up and generalize storage configuration resources Replace config_emulateExternalStorage, config_externalStorageRemovable, config_externalStoragePaths, config_externalStorageDescriptions and config_mtpReserveSpaceMegabytes resources with an XML resource file to describe the external storages that are available. Add android.os.storage.StorageVolume class StorageManager.getVolumeList() now returns an array of StorageVolume Change-Id: I06ce1451ebf08b82f0ee825d56d59ebf72eacd3d Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/os/storage/StorageVolume.java
|