History log of /system/vold/VolumeManager.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6947904a76b69a1db20a3ddd30c0bcd281922fde 26-Sep-2012 Jeff Sharkey <jsharkey@android.com> Handle multi-user mountObb() requests.

Mount OBB containers using shared app GID, so that an app can read
the mount point across users.

Bug: 7212801
Change-Id: Ia1be52df9854c259b20728111f3a2c9facf4beaa
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
418367112c96f6ce45aa142d613a575046b7f65f 11-May-2012 Kenny Root <kroot@google.com> Merge "Sleep to wait for dm to create node" into jb-dev
cdc2a1c83575a349ee44035de8c3b38b8b401003 03-May-2012 Kenny Root <kroot@google.com> Sleep to wait for dm to create node

There appears to be a race condition from when the device mapper is
asked to create a device and when it actually appears. When we moved
ASECs to use Ext4, mount started winning the race more often.

Just insert a sleep-retry loop here to counter-act this race. We should
ideally look at the uevent replies, but it takes a bit more effort to
separate them out.

Change-Id: Ie8a5b36b1c9a26f2320a178d37312059d03a1281
/system/vold/VolumeManager.cpp
1a673c868c2d2d81fcaeab34b4a7c75d4a978584 11-May-2012 Kenny Root <kroot@google.com> Native library loading needs to read directory

When calling System.loadLibrary(), it needs to be able to read the
directory to load the file. We could probably fix that, but changing
permissions here is faster.

Bug: 6478606
Change-Id: I296b0805839da5a19950157f9a16755a4d258ca8
/system/vold/VolumeManager.cpp
348c8aba0d2df2996e0fe57900ef518c6aeb4b29 11-May-2012 Kenny Root <kroot@google.com> Only set permissions on dirs or files

Traversal would mark directories with the correct permissions, but
they're visited again in post-order which is a different fts_info flag.
Then it would set that to regular file permissions.

Explicitly check to make sure we're looking at a file instead.

Bug: 6478606
Change-Id: I13cab3e69f451da6a994fa974d575ef366f82025
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
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.cpp
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.cpp
97f2fc110b2ace7914671c2f5852379bd78922e4 07-Jun-2011 Mike Lockwood <lockwood@android.com> Update path for seting USB mass storage backing store

Change-Id: I0e5fab1624e5ef5d2f55e2584d8adc1b6bab91b0
Signed-off-by: Mike Lockwood <lockwood@android.com>
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
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.cpp
3c9a73f643f7c782bdd326f628eeea97bec42ae8 11-Dec-2010 Mike Lockwood <lockwood@android.com> Stifle "Ignoring unknown switch" logging

Change-Id: I9770ab880f379e2f7f6a93d3c84990edec60a116
Signed-off-by: Mike Lockwood <lockwood@android.com>
/system/vold/VolumeManager.cpp
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.cpp
918e5f9f10b9c1ff929683743ffbf229027ce240 01-Oct-2010 Kenny Root <kroot@google.com> Better error code for unmounting not-mounted volumes

ENOENT is more descriptive than the generic error that EINVAL gets
turned into. Then we can actually treat it how we want on the other
side.

Change-Id: I9b4f3be6308e13f680eae368d2167ab9ee6aae5f
/system/vold/VolumeManager.cpp
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.cpp
2dfe297ec47559dbe2297a72bea71cf515c03797 18-Sep-2010 Mike Lockwood <lockwood@android.com> Fixes for devices with internal FAT file system:

Only share a single partition via UMS if a specific partition
is specified in vold.fstab (rather than "auto")

Do not fail to reformat if MBR cannot be found.

Change-Id: I544ca2ee325c308af656ab9f4732c788a964c156
Signed-off-by: Mike Lockwood <lockwood@android.com>
/system/vold/VolumeManager.cpp
a3e06084564c86ff618c40f185f3676b8b629b94 27-Aug-2010 Kenny Root <kroot@google.com> Allow execute on mounted ASEC and OBB containers

This allows us to place shared libraries in these containers which may
only be loaded if they are executable.

Change-Id: I78fa9ab6d5c58ec8b98c40004da72aebc0aade2a
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
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.cpp
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.cpp
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.cpp
97ac40e4e6f3ed0bd5d6878d7d8d4a54fcaecb76 24-Mar-2010 San Mehat <san@google.com> vold: Switch from LOG -> SLOG

Change-Id: I48ee8bd90b47f5845f069cdf4d1b8ba6ecdb1b39
Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
88ac2c06539485942bf414efda2d39647fa1a415 23-Mar-2010 San Mehat <san@google.com> vold: asec path cmd now returns OpFailedStorageNotFound if id doesn't exist

Change-Id: Icbe3de7c28505f7496c8f8edea126c7b616de475
Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
96597e8b840ef671fe5279f8bd64fb09a8b38d4c 17-Mar-2010 San Mehat <san@google.com> vold: Add mounted filesystems to dump cmd

Change-Id: If025e7ee10a79ff089920a6d0c1a52358b2d2c22
Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
7b18a7b36f61574c0f0bdde0a7409dc36676fa12 15-Mar-2010 Kenny Root <kroot@google.com> vold: Convert to use OpenSSL MD5 API

Change-Id: I9b84370fa9a98464c211ebe8983be8dbe9dd7ccd
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
fcf24fe62f98c5d44431aa575555569c2c7a29b0 03-Mar-2010 San Mehat <san@google.com> vold: Add a versioned superblock to secure containers.

Add an un-encrypted superblock to the end of a secure container to
help identify the crypto cipher used. This is required in order to
provide some semblence of versioning, in case we have cause to
change the crypto type on an update - say for example switching
from software to hardware encryption, or from 128 -> a zillion
bit keys.

NOTE: This format is incompatible with previous secure containers.
After this change they will no longer be mountable.

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
a1091cb0c448a933068f9120fe6946c09812bfb6 01-Mar-2010 San Mehat <san@google.com> vold: Allow creation of a container with no filesystem

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
55013f7131ffe094e1c7d929cfc32b3b25096a9b 24-Feb-2010 San Mehat <san@google.com> vold: Fix uninitialized mountpoint bug

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
12f4b89046b54de1bdc188b7057ba77d7566e573 24-Feb-2010 San Mehat <san@google.com> vold: Retry rmdir of asec mount point

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
96956ed0e220cb62a4a96136976ded0d8c2d9075 24-Feb-2010 San Mehat <san@google.com> vold: Prohibit container rename when dst container is mounted

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
0e382532f32e97f90056250f2b13c59840d2c6b4 24-Feb-2010 San Mehat <san@google.com> vold: fix infinite loop when failing to unmount a busy container in unmountVolume()

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
3bb6020e461e8872e8df0775cba6eb32e06b93ec 20-Feb-2010 San Mehat <san@google.com> vold: Stage the mounting of media to hide the ASEC imagefile directory

In order to protect the '/android_secure' directory on VFAT removable media
from being mucked with by 3rd party applications on the device, we hide the
directory with a read-only, zero-sized tmpfs mounted on-top. A reference to the
hidden directory is kept by a bind-mount which is mounted at a location which
only root can access.

Staging consists of:
1. Mount checked media at a secure location (/mnt/secure/staging)
2. Ensure /android_secure exists on the media, (creating if it doesnt)
3. Bind-mount /mnt/secure/staging/android_secure -> /mnt/secure/asec
(where only root can access it)
4. Mount an RDONLY zero-sized tmpfs over /mnt/secure/staging/android_secure
5. Atomically move /mnt/secure/staging to the publicly accessable storage
directory (/mnt/sdcard)

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
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.cpp
d31e380bd9689dd9629b510ffe324707e261b439 18-Feb-2010 San Mehat <san@google.com> vold2: Don't allow containers < 1mb, and clean up some logging

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
586536c60b773e3517531ad8a6cb0de6722c67fc 17-Feb-2010 San Mehat <san@google.com> vold: Refactor Processkiller and add command to return users of a mount point

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
8c940ef7dbd423cadc92982b44a65ed1014389e2 13-Feb-2010 San Mehat <san@google.com> vold: Fix devmapper/ptmx fd leak, and give asec unmount more time

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
b9aed74b146beb7499ebc5775e8ae179d16900ef 05-Feb-2010 San Mehat <san@google.com> vold: Fix a few bugs

- share command was taking wrong arguments
- shared command was returning two termination codes
- Force FAT32 cluster size to 4k when formatting
Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
f5c61980969a0b49bda37b5dc94ffe675ebd5a5a 03-Feb-2010 San Mehat <san@google.com> vold: Silly rabbit, don't use unlink() when you mean't rmdir()

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
eba65e9d438a05f1c5dfd0f8d31bc463a5d08eee 29-Jan-2010 San Mehat <san@google.com> vold: Bloat reduction
Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
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.cpp
68f8ebdb24dfe1fe94de2c8fc11084ebfab9fa5d 23-Jan-2010 San Mehat <san@google.com> vold2: update some debugging

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
a4dc3b15b7886f661675ab5243800c80831e549b 22-Jan-2010 San Mehat <san@google.com> vold: Don't fail to return path if volume isn't mounted

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
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.cpp
0586d54053ee00e6d6523d4f125282ccb9a24aab 13-Jan-2010 San Mehat <san@google.com> vold2: Fix issue with destroying / unmounting asec

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
8da6bcb006f4e4257cdd685e35e910a6334f6cea 09-Jan-2010 San Mehat <san@google.com> vold: Increase max supported loop devices to 255

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
23969931fad6e993832208f099f6eea0f6f76eb5 09-Jan-2010 San Mehat <san@google.com> vold: Use process-killer when unmounting asec containers

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
cff5ec3d360b699ad13df05670efe0d0a7386fbe 08-Jan-2010 San Mehat <san@google.com> vold: Temporarily disable asec mountpoint permissions

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
eb13a90bb96b329d8e24a6c3d4720ae88451d301 07-Jan-2010 San Mehat <san@google.com> vold: Don't freak out if an asec mountpoint already exists

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
fff0b47998a722d57eea6a07350bbd7a6032b3cc 07-Jan-2010 San Mehat <san@google.com> vold2: Enable support for custom mount perm masks and wire to asec

Signed-off-by: San Mehat <san@google.com>
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
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.cpp
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.cpp
ae10b91044bf76b40b77d81c169e48e0bbdf6d75 12-Oct-2009 San Mehat <san@android.com> vold2: Rename DeviceVolume -> DirectVolume

Signed-off-by: San Mehat <san@android.com>
/system/vold/VolumeManager.cpp
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.cpp
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.cpp