c86ab6f538bec63638c168d6c843fe7cf73add3b |
|
26-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
Trim both internal and adopted private storage. Refactor fstrim code to be encapsulated in unique task object, and give it option of benchmarking when finished. Trimming now includes both storage from fstab and adopted private volumes. Cleaner timing stats are logged for each unique volume. Add wakelock during ongoing async move tasks. Push disk sysfs path to framework so it can parse any SD card registers as desired. Bug: 21831325 Change-Id: I76577685f5cae4929c251ad314ffdaeb5eb1c8bf
/system/vold/VolumeManager.h
|
66270a21df1058434e4d63691221f11ff5387a0f |
|
24-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
Let's reinvent storage, yet again! Now that we're treating storage as a runtime permission, we need to grant read/write access without killing the app. This is really tricky, since we had been using GIDs for access control, and they're set in stone once Zygote drops privileges. The only thing left that can change dynamically is the filesystem itself, so let's do that. This means changing the FUSE daemon to present itself as three different views: /mnt/runtime_default/foo - view for apps with no access /mnt/runtime_read/foo - view for apps with read access /mnt/runtime_write/foo - view for apps with write access There is still a single location for all the backing files, and filesystem permissions are derived the same way for each view, but the file modes are masked off differently for each mountpoint. During Zygote fork, it wires up the appropriate storage access into an isolated mount namespace based on the current app permissions. When the app is granted permissions dynamically at runtime, the system asks vold to jump into the existing mount namespace and bind mount the newly granted access model into place. Bug: 21858077 Change-Id: Iade538e4bc7af979fe20095f74416e8a0f165a4a
/system/vold/VolumeManager.h
|
bc40cc8f07f69e0e26fc41516e2a83f0a8becbe0 |
|
18-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
Add method to forget private partition keys. Report both the disk and the partition GUID for private volumes to userspace, and offer to forget the encryption key for a given partition GUID. Bug: 21782268 Change-Id: Ie77a3a58e47bf3563cdb3e4b0edfab1de4d0e6b4
/system/vold/VolumeManager.h
|
bd3038df74ace540d46c530a11e3145f922e1b42 |
|
10-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
Start tracking added users with serial numbers. vold will eventually use the serial numbers to clean up stale user directories when mounting private storage devices. Bug: 20275572 Change-Id: Ia29cb5da23e969f3087bb5caa5dc8f4e88f07613
/system/vold/VolumeManager.h
|
5a6bfca1638760b87cf64c5ffb48ff3557cc0563 |
|
15-May-2015 |
Jeff Sharkey <jsharkey@android.com> |
Initial pass at storage benchmarks. Now that we're offering to store private app data on adopted storage devices, the performance of those devices is much more important to overall user experience. To help set user expectations, this change offers to execute a real-world benchmark on a storage device, returning a metric that can be used to compare internal and external storage. The benchmark is generated from the strace-instrumented storage access patterns of typical apps. A typical device completes the benchmark in under two seconds on internal storage, a UHS-3 SD card is even faster (!), but a very slow Class 4 SD card takes about 30 seconds to complete, giving us a clear signal. The measured benchmark numbers are logged along with information about the storage device, such as manufacturer, model, etc. Card serial numbers are scrubbed from output. Bug: 21172095 Change-Id: I9b2713dafdfdfcf5d97bf1bc21841f39409a7e54
/system/vold/VolumeManager.h
|
c8e04c5a8285de07d2c84bfbda8eda2c14a9457d |
|
21-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Wider volume mutation lock, move force adoptable. We eventually should move back to per-disk locks, but use a giant lock to keep development rolling forward. Also move force adoptable flag to framework since, since encrypted devices don't have persisted properties loaded early during boot. Bug: 19993667 Change-Id: Ifa3016ef41b038f8f71fc30bc81596cfd21dcd2a
/system/vold/VolumeManager.h
|
f1b996df6f8283aac6953b22bd9e2496d8c30c86 |
|
18-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Volumes know parent disks; unsupported disks. This is cleaner and more direct than the reverse of having the disk publish child volume membership. Rename state constants to match public API. Add state representing bad removal. Make it clear that volume flags are related to mounting. Send new unsupported disk event when we finish scanning an entire disk and have no meaningful volumes. Bug: 19993667 Change-Id: I08a91452ff561171a484d1da5745293ec893aec0
/system/vold/VolumeManager.h
|
9f18fe7807a4e4089778243dbbd08d154ec15540 |
|
02-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Remove unused code. Bug: 19993667 Change-Id: I1f6519655c5a366eca25e2329e1bf95d81b3bf8c
/system/vold/VolumeManager.h
|
9c48498f4529f623650c56d03e63324c8d813032 |
|
31-Mar-2015 |
Jeff Sharkey <jsharkey@android.com> |
Support for private (adopted) volumes. This adds support for private volumes which is just a filesystem wrapped in a dm-crypt layer. For now we're using the exact same configuration as internal encryption (aes-cbc-essiv:sha256), but we don't store any key material on the removable media. Instead, we store the key on internal storage, and use the GPT partition GUID to identify which key should be used. This means that private external storage is effectively as secure as the internal storage of the device. That is, if the internal storage is encrypted, then our external storage key is also encrypted. When partitioning disks, we now support a "private" mode which has a PrivateVolume partition, and a currently unused 16MB metadata partition reserved for future use. It also supports a "mixed" mode which creates both a PublicVolume and PrivateVolume on the same disk. Mixed mode is currently experimental. For now, just add ext4 support to PrivateVolume; we'll look at f2fs in a future change. Add VolumeBase lifecycle for setting up crypto mappings, and extract blkid logic into shared method. Sprinkle some more "static" around the cryptfs code to improve invariants. Bug: 19993667 Change-Id: Ibd1df6250735b706959a1eb9d9f7219ea85912a0
/system/vold/VolumeManager.h
|
36801cccf27152c9eca5aab6ba3527221525110f |
|
14-Mar-2015 |
Jeff Sharkey <jsharkey@android.com> |
Progress towards dynamic storage support. Wire up new Disk and VolumeBase objects and events to start replacing older DirectVolume code. Use filesystem UUID as visible PublicVolume name to be more deterministic. When starting, create DiskSource instances based on fstab, and watch for kernel devices to appear. Turn matching devices into Disk objects, scan for partitions, and create any relevant VolumeBase objects. Broadcast all of these events towards userspace so the framework can decide what to mount. Keep track of the primary VolumeBase, and update the new per-user /storage/self/primary symlink for all started users. Provide a reset command that framework uses to start from a known state when runtime is restarted. When vold is unexpectedly killed, try recovering by unmounting everything under /mnt and /storage before moving forward. 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. Switch killProcessesWithOpenFiles() to directly take signal. Fix one SOCK_CLOEXEC bug, but SELinux says there are more lurking. Bug: 19993667 Change-Id: I2dad1303aa4667ec14c52f774e2a28b3c1c1ff6d
/system/vold/VolumeManager.h
|
43ed123d3fc1a3edf3660cd0e2528e971abc399e |
|
22-Aug-2014 |
Jeff Sharkey <jsharkey@android.com> |
ASEC resize tweaking, allow read-write mounting. Resize is no-op when sector count is unchanged; the caller can't anticipate how vold does its sector calculations. After resizing, we need to mount the container read-write, so allow the caller to request "ro" or "rw" mode. Handle ENOTSUP when trying to fallocate() on some filesystems Bug: 16514385 Change-Id: I0d3a378280d4c36d14f8108ff428102283d583fa
/system/vold/VolumeManager.h
|
40b64a684124809132e04e3c499aa1e101fe808f |
|
25-Jul-2014 |
JP Abgrall <jpa@google.com> |
vold: support "volume list [broadcast]" command Sometimes when an sdcard is already mounted, some info like uuid and label are not re-broadcast to new listeners. The extra argument to list allows late listeners to catch up by asking volume list to broadcast that info again. Bug: 16253597 Bug: 16306775 Change-Id: Ie7d0c1132c22d307a5b2a0e50075a3716138d00b Signed-off-by: Benson Huang <benson.huang@mediatek.com> (cherry picked from commit 85f4700f44170b772697e627b3075dcb9137e1b7)
/system/vold/VolumeManager.h
|
fcd34a0ddd45db83b7bc71ff47cba9b789089fdd |
|
22-May-2014 |
Daniel Rosenberg <drosen@google.com> |
Added support for ext4 ASEC resizing. ASECs formatted as ext4 can now be resized using vdc asec resize. Refactored some common code. Requires resize2fs. Change-Id: Ie78bb6015114a7bc4af42b16d1f299322ffc1e2a Signed-off-by: Daniel Rosenberg <drosen@google.com>
/system/vold/VolumeManager.h
|
669626096513cf741646cf18a9e8ba246d359596 |
|
27-Jan-2014 |
Nick Kralevich <nnk@google.com> |
Validate asec names. Make sure asec names only contain alphanumeric, underscores, dots, or dashes. Don't allow double dots. Bug: 12504045 Change-Id: I3dd0350c79327dc91a5a10d5724d85d99814e769
/system/vold/VolumeManager.h
|
71ebe154a5fbbb4b394a439ff0b6b9c84fbd04f5 |
|
18-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Add mkdirs() command. Apps without sdcard_r or sdcard_rw need to have someone create package-specific directories on their behalf. If apps have trouble creating on their own, they now delegate through system to have vold create the paths. Requires that the requested path is actually managed by vold. Bug: 10577808 Change-Id: I6835fc8f52240f9de07f89742a426a153e3ca32a
/system/vold/VolumeManager.h
|
9caab76c6b5aefdeeb1715a3695491ca793b8c18 |
|
12-Jun-2013 |
Ken Sumrall <ksumrall@android.com> |
vold: Add an optional wipe paramter to the volume format command The new wipe option to the vold format command will invoke BLKDISCARD on the partition before invoking newfs_msdos. This will be used whenever a full wipe of the device is wanted, as this is more secure than just doing newfs_msdos. Bug: 9392982 Change-Id: Ie106f1b9cc70abc61206006d1821641c27c7ccae
/system/vold/VolumeManager.h
|
93ecb38daded7583a4a61f4f22519bb7a8a8c154 |
|
09-Aug-2012 |
Kenny Root <kroot@google.com> |
Only cleanup ASECs in external storage Any ASEC or OBB files were unmounted when USB storage was set to UMS mode. This changes it so only ASEC files on external storage and OBB files mounted from external storage are unmounted. Bug: 6948035 Change-Id: I91bc09ee5b792970b0eef895f6886f3ffad00e8f
/system/vold/VolumeManager.h
|
425524dba1552ab3d2ad39e205e65d0a2af997f2 |
|
15-Jun-2012 |
Ken Sumrall <ksumrall@android.com> |
Unmount all asec apps before encrypting Now that forward locked apps are stored on /data as asec image files that are mounted, they need to be unmounted before /data can be unmounted so it can be encrypted. Change-Id: I7c87deb52aaed21c8ad8ce8aceb7c15c2338620a
/system/vold/VolumeManager.h
|
344ca10856f3d3087a3288ce8f91ad83665d93fb |
|
04-Apr-2012 |
Kenny Root <kroot@google.com> |
Add in ext4 support for ASEC containers Now forward locked applications will be in ASEC containers both internal to the system and externally. This change adds support for putting applications in ext4-based ASECs. Change-Id: I8d6765b72dd2606e429c067b47a2dbcaa8bef37d
/system/vold/VolumeManager.h
|
0b8b59719357fb80c330442787f7d5b1e332263b |
|
01-Sep-2011 |
Ken Sumrall <ksumrall@android.com> |
Add the ability to revert a crypto mapping when unmounting a volume Add the force_and_revert option to the unmount command which will force the unmount, and revert a crypto mapping. This is used during factory reset so that when the internal sdcard volume is formatted, it formats the raw device, not the encrypted mapping. Change-Id: I36b6ff9bb54863b121de635472a303bf4a2334a9
/system/vold/VolumeManager.h
|
3b17005083be230509480ea65ae67c237142fada |
|
12-Jul-2011 |
Ken Sumrall <ksumrall@android.com> |
Prevent sharing or formatting of a vold managed volumes during encryption. Mounting was already not allowed, but also unshare before starting encryption, and don't allow sharing or formatting to be initiated during encrytion. Change-Id: Ida188d81f025739ba4dd90492b3e66088735991e
/system/vold/VolumeManager.h
|
736910ca99a40b9add4353bf619e778c40938948 |
|
27-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Add new vold call to get the path to an asec fs. Change-Id: Ife15628ed6e2493c9e85a2ade6d59a194fdddde5
/system/vold/VolumeManager.h
|
6b715592ec94f9d75ca8119ace824ff729c104c2 |
|
18-Jun-2011 |
Mike Lockwood <lockwood@android.com> |
Merge "Remove obsolete code for monitoring USB status"
|
319b1043bbbd410aa2d572d88b5936f26072d026 |
|
14-Jun-2011 |
Ken Sumrall <ksumrall@android.com> |
Don't abort the encryption process if an internal volume is present but unmounted. It is not a failure if the SD card is not mounted. Change-Id: If954f77c55ac124b9b7b39c89ffbafb4e5ea9e98
/system/vold/VolumeManager.h
|
a976656ff90291b9437a4d37b48e82abcd48195e |
|
07-Jun-2011 |
Mike Lockwood <lockwood@android.com> |
Remove obsolete code for monitoring USB status Change-Id: I8ac8900b3135f03b7717540b825ff6df76f31c0b Signed-off-by: Mike Lockwood <lockwood@android.com>
/system/vold/VolumeManager.h
|
29d8da8cefa99e436c13295d4c9bad060ca18a6d |
|
19-May-2011 |
Ken Sumrall <ksumrall@android.com> |
vold: allow to store key in a file on another partition Add support for keeping the keys in a separate file on another partition, for devices with no space reserved for a footer after the userdata filesystem. Add support for encrypting the volumes managed by vold, if they meet certain criteria, namely being marked as nonremovable and encryptable in vold.fstab. A bit of trickiness is required to keep vold happy. Change-Id: Idf0611f74b56c1026c45742ca82e0c26e58828fe
/system/vold/VolumeManager.h
|
a28056b38275003895ff5d9576681aca01544822 |
|
28-Oct-2010 |
Mike Lockwood <lockwood@google.com> |
Set VM dirty ratio to zero when UMS is active Improves UI responsiveness when copying large amount of data to the device. BUG: 3131847 Change-Id: I4aa5ade7e2cd7e5110c8f0f7ee43bdc57577e11d Signed-off-by: Mike Lockwood <lockwood@google.com>
/system/vold/VolumeManager.h
|
cbacf78eff70bd43bb899e164ec2ab409bc0904c |
|
25-Sep-2010 |
Kenny Root <kroot@google.com> |
Track type of container mounted OBB and ASEC are tracked in the same active container list, but when it comes time to unmount everything, it was trying to unmount the OBBs according to ASEC rules. This led to the OBB not being unmounted and the volume unmount failing. Change-Id: I12c1d4d387b8022185d552b63edd61a50b9c0fc3
/system/vold/VolumeManager.h
|
508c0e1605b795bbb51cb47d955b89f3df26ca94 |
|
12-Jul-2010 |
Kenny Root <kroot@google.com> |
Additional Obb functionality * Rename all functions dealing with OBB files to mention Obb * Add 'path' and 'list' functionality to OBB commands * Store hashed filename in loop's lo_crypt_name and keep lo_file_name for the real source filename. That way we can recover it later with an ioctl call. Change-Id: I29e468265988bfb931d981532d86d7be7b3adfc8
/system/vold/VolumeManager.h
|
fb7c4d5a8a1031cf0e493ff182dcf458e5fe8c77 |
|
01-Jul-2010 |
Kenny Root <kroot@google.com> |
Add image mounting commands for OBB files Allow the mounting of OBB filesystem images if they're encrypted with twofish and in FAT filesystem format. Change-Id: I54804e598f46b1f3a784ffe517ebd9d7626de7aa
/system/vold/VolumeManager.h
|
99635f6c289fe2528c226403ea215c917ce86037 |
|
26-Jun-2010 |
Mike Lockwood <lockwood@android.com> |
Use new kernel notifications to determine if USB mass storage is available. The usb_mass_storage switch no longer exists in our 2.6.35 kernel. Instead we will consider mass storage to be available if both USB is connected and the USB mass storage function is enable. Change-Id: I730d1b3cb3cac664fc2abcdc36cd39856a08404a Signed-off-by: Mike Lockwood <lockwood@android.com>
/system/vold/VolumeManager.h
|
acc9e7dcca8978fc809fa5b4d9b819c515a980ff |
|
19-Jun-2010 |
Kenny Root <kroot@google.com> |
Change ASCII conversion for hash and add tests Hash was printed using snprintf(), but we can just write yet another hex conversion utility! Change-Id: I04f1992deaf5bf1b3e2751c8f07072f8ed6660e9
/system/vold/VolumeManager.h
|
1a06edaf4db4e9c520624bcc06e0e13ee470d90e |
|
15-Apr-2010 |
San Mehat <san@google.com> |
vold: Ensure we cleanup secure containers on card removal. Fixes bug: http://b/issue?id=2567572 Note: The framework will still likely restart since the system_server is holding references to assets on the card which are mmaped, but at least now storage will be available when a new card is re-inserted. Change-Id: I4e195c0c666426b93da47198fa826a6f58d855a9 Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
befd59c152835b815665ec3c5e453b55e70d5f0b |
|
15-Mar-2010 |
San Mehat <san@google.com> |
vold: remove some dead code Change-Id: Iaeb5d3334ec22ed31da9734bb8d7cd17e6a40eaf Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
d9a4e358614a0c5f60cc76c0636ee4bb02004a32 |
|
12-Mar-2010 |
San Mehat <san@google.com> |
vold: Bugfixes & cleanups - Fix issue where container-names > 64 bytes were getting truncated in the kernel. lo_name is only 64 bytes in length, so we now hash the container id via md5 - Add 'dump' command to dump loop and devicemapper status - Add 'debug' command to enable more detailed logging at runtime - Log vold IPC arguments (minus encryption keys) - Fix premature return from Loop::lookupActive() and friends Change-Id: I0e833261a445ce9dc1a8187e5501d27daba1ca76 Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
4ba8948dc16463053e21cda5744f519a555080d0 |
|
18-Feb-2010 |
San Mehat <san@google.com> |
vold: Add 'force' option to anything that can cause an unmount Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
eba65e9d438a05f1c5dfd0f8d31bc463a5d08eee |
|
29-Jan-2010 |
San Mehat <san@google.com> |
vold: Bloat reduction Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
048b0801fcd6fcfbb8fa812284c751181e4821b8 |
|
23-Jan-2010 |
San Mehat <san@google.com> |
vold: Add support for renaming secure containers Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
88705166ab82057090a070c6d4200c3d9db76f11 |
|
15-Jan-2010 |
San Mehat <san@google.com> |
vold: Unmount secure containers when the underlying media is removed. Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
8b8f71b1d760411279f3b07a5c97709f052c689e |
|
11-Jan-2010 |
San Mehat <san@google.com> |
vold: Internally use sector counts for asec lengths Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
b78a32c1d5eeb243bdac0eaf18effb1897f1ee67 |
|
10-Jan-2010 |
San Mehat <san@google.com> |
vold: Add encrypted ASEC support via devmapper - Supports up to 4096 containers - Keys are now implemented - specifying a key of 'none' means no encryption. Otherwise, the key must be a string of 32 characters Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
a19b250bd273455933ca3502cf2c2e0a803aff77 |
|
06-Jan-2010 |
San Mehat <san@google.com> |
vold2: Initial support for Android Secure External Caches Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
0cde53ce7b44ce189d0bc6fa81c0036e096deb51 |
|
22-Dec-2009 |
San Mehat <san@google.com> |
vold2: Manually bootstrap the ums switch since switch kernel uevents are broken Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
a2677e4ad01f250b0765f04adf0acfa6627efc98 |
|
13-Dec-2009 |
San Mehat <san@google.com> |
vold2: Get mounting/unmounting/formatting/sharing working Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.h
|
49e2bce5b74129c26a35e25d4693cbfe98c4688e |
|
13-Oct-2009 |
San Mehat <san@android.com> |
vold2: Wire up more of the mount function Signed-off-by: San Mehat <san@android.com>
/system/vold/VolumeManager.h
|
fd7f5875129adfe2845f4f3fffb17db3a89eea25 |
|
12-Oct-2009 |
San Mehat <san@android.com> |
vold2: Refactor the netlink event handling and better define how partitions/disks are handled Signed-off-by: San Mehat <san@android.com>
/system/vold/VolumeManager.h
|
f1b736bc5605e92e917ab27f5abf3ba839be2270 |
|
11-Oct-2009 |
San Mehat <san@android.com> |
system: vold2: Initial skeleton for vold2. Let there be light. Signed-off-by: San Mehat <san@android.com>
/system/vold/VolumeManager.h
|