History log of /system/vold/VolumeManager.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
60dec16c5026d29a52791ad790860d247f47f8f2 02-Sep-2014 Paul Lawrence <paullawrence@google.com> Correctly remove asecs for full disk encryption

Previously this would fail if the framework wasn't stopped. The failure
would then stop full disk encryption. The fact that the unmount worked,
however, would then stop the second attempt from achieving anything.

Fix in line with current retry philosophy

We still need to figure out why Devmapper::destroy() fails at first.

Bug: 17301843
Change-Id: I405a36c832ccdebf2d904bef77f15eea174a6bfb
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
e9196fecbb08ead0b5dcdf1b38b81a0419c24bf4 11-Jun-2014 Daniel Rosenberg <drosen@google.com> Increase asec image size for reflecting ext4 reserved clusters

From Shawn Heo's patch:

Ext4 introduced reserved clusters to prevent costly zeroout, or
unexpected ENOSPC. The size is 2% or 4096 clusters, whichever
is smaller (http://lwn.net/Articles/546473/).

So, we need to allocate additionally this amount of free space
to asecs when vold create asec images. This is required when
Android runs on Linux kernel 3.10 or later.

see: https://android-review.git.corp.google.com/#/c/96160

Change-Id: Iacff16b8cf0314493c355fa741bcfa519f744d6c
Signed-off-by: Daniel Rosenberg <drosen@google.com>
/system/vold/VolumeManager.cpp
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.cpp
6a74dcaa6e646fea8e00b7c04332fc60fe7e017c 23-May-2014 Daniel Rosenberg <drosen@google.com> Fixed bugs with ASEC filesystem.

Changed ext4 to be 4kb aligned, and fat to be 32kb aligned.
Fixed issue that could potentially cause unencrypted ext4
ASECS to overwrite the ASEC super block when filled.

Change-Id: I890426c82ac9cbc65add85a8e3f5063504193c31
Signed-off-by: Daniel Rosenberg <drosen@google.com>
/system/vold/VolumeManager.cpp
27cfee3fa4e44d3a542312938df12cadfad3425e 02-May-2014 Cylen Yao <cylen.yao@mediatek.com> avoid fs_mkdirs when SD card removed

Must limit vold calls to fs_mkdirs() only when the volume is mounted.
If NOT, it will trigger selinux warning as follows.
audit(1398835637.785:8): avc: denied { write } for pid=137 comm="vold" name="sdcard0" dev="rootfs" ino=3191 scontext=u:r:vold:s0 tcontext=u:object_r:rootfs:s0 tclass=dir

Change-Id: I1113fc961cbdd8bbd2fcbf740c2f504628c8399d
Signed-off-by: Cylen Yao <cylen.yao@mediatek.com>
/system/vold/VolumeManager.cpp
3214d1f5a4dbece12e00f1c122e4c2e291715706 13-Feb-2014 Nick Kralevich <nnk@google.com> am 3c0d02aa: Merge "Convert all selinux_android_restorecon and _setfilecon calls to new API."

* commit '3c0d02aa03118713e6e770b54d1c530ff866f156':
Convert all selinux_android_restorecon and _setfilecon calls to new API.
5093e6187da9c237c88383540f544c8dbaf37754 12-Feb-2014 Stephen Smalley <sds@tycho.nsa.gov> Convert all selinux_android_restorecon and _setfilecon calls to new API.

libselinux selinux_android_restorecon API is changing to the more
general interface with flags and dropping the older variants.

Also get rid of the old, no longer used selinux_android_setfilecon API
and rename selinux_android_setfilecon2 to it as it is the only API in use.

Change-Id: I1e71ec398ccdc24cac4ec76f1b858d0f680f4925
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
/system/vold/VolumeManager.cpp
ca3593df3d48cb4b51acf89e6df4872b922fd51d 11-Feb-2014 Nick Kralevich <nnk@google.com> am 311edc8c: Merge "Add SELinux restorecon calls on ASEC containers."

* commit '311edc8cb2dd5c86bad49f9696333874b400f9c4':
Add SELinux restorecon calls on ASEC containers.
311edc8cb2dd5c86bad49f9696333874b400f9c4 11-Feb-2014 Nick Kralevich <nnk@google.com> Merge "Add SELinux restorecon calls on ASEC containers."
e985c9ab10fed452b97138170b4d69288d076b06 07-Feb-2014 Colin Cross <ccross@android.com> am 1d8e3ce8: Merge "vold: fix errors inside ALOGV"

* commit '1d8e3ce8da962e5ff98d36e75f6b02873fdddb70':
vold: fix errors inside ALOGV
59846b654e8b4a22a1be11cd21d6c5b81375abd2 07-Feb-2014 Colin Cross <ccross@android.com> vold: fix errors inside ALOGV

Fix errors exposed by adding compile-time checking to disabled ALOGVs.

Change-Id: I29bd6e9a7648ccca02e0e9a96b79ee0ea7b5cfc6
/system/vold/VolumeManager.cpp
b9e3ba56cb4075f894a73b02ee70571456494ac1 04-Feb-2014 Robert Craig <rpcraig@tycho.ncsc.mil> Add SELinux restorecon calls on ASEC containers.

This will allow fine-grained labeling of the
contents of ASEC containers. Some of the contents
need to be world readable and thus should be
distinguishable in policy.

Change-Id: Iefee74214d664acd262edecbb4f981d633ff96ce
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
/system/vold/VolumeManager.cpp
e8e1d80c64db85526a003e88c3dba36ff33dac74 28-Jan-2014 Nick Kralevich <nnk@google.com> am 4d5d99ce: am 7cf05b15: am 2f0a1d66: am 7f6932df: am 35ab6119: am 3e03bf8a: am fd2dcf90: am f4770dcf: am 0de7c611: Validate asec names.

* commit '4d5d99ce39b5edd0b78c47a93563aed6b3d56356':
Validate asec names.
4d5d99ce39b5edd0b78c47a93563aed6b3d56356 28-Jan-2014 Nick Kralevich <nnk@google.com> am 7cf05b15: am 2f0a1d66: am 7f6932df: am 35ab6119: am 3e03bf8a: am fd2dcf90: am f4770dcf: am 0de7c611: Validate asec names.

* commit '7cf05b15b76b91aa07182e86a730d7552b23130c':
Validate asec names.
7f6932df89756f796c3a1f04f748db39a0564561 28-Jan-2014 Nick Kralevich <nnk@google.com> am 35ab6119: am 3e03bf8a: am fd2dcf90: am f4770dcf: am 0de7c611: Validate asec names.

* commit '35ab611925aea29fc4088b5c3de7c8c77d956b8b':
Validate asec names.
fd2dcf905abd3dc76738fd864e3979bd6e5ce183 28-Jan-2014 Nick Kralevich <nnk@google.com> am f4770dcf: am 0de7c611: Validate asec names.

* commit 'f4770dcf6ffe2baba16cbb290aba16f735c51962':
Validate asec names.
0de7c61102611ccd5df1ca48cb733bf037512c6b 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

(cherry picked from commit 669626096513cf741646cf18a9e8ba246d359596)

Change-Id: Ia9d04f373aa95878b2e81584c4167dc2d4aa0c78
/system/vold/VolumeManager.cpp
346c5b20cbbced7edacf240015c4a89e5b2ca44f 23-Jan-2014 Colin Cross <ccross@android.com> vold: fix warnings for 64-bit

Replace MINOR(dev_t) and MAJOR(dev_t) with minor and major,
which cast to int.
Cast int to uintptr_t before casting to pointer

Change-Id: I59375518f15d27f400fcd4f8a8dfe5ebdd8350e6
/system/vold/VolumeManager.cpp
8c2c15b1c611708c85b3f1ba86b6db79c5c004d5 18-Oct-2013 Jeff Sharkey <jsharkey@android.com> Clean up ASEC unmounting on physical storage.

When physical devices are unsafely removed, unmountAllAsecsInDir()
fails to find any ASECs, and leaves them all mounted, preventing the
rest of volume from going down.

Now we examine all ASEC containers, and remove when on external
storage, or when the storage media is no longer found.

Bug: 11175082
Change-Id: Iffa38ea43f7e5ad78b598374ebeb60a8727d99fd
/system/vold/VolumeManager.cpp
5ab02e787a05eda1d3382654d5496d6c763c2474 16-Oct-2013 Marco Nelissen <marcone@google.com> DO NOT MERGE. Fix crash in vold

b/11239345

Change-Id: I46a8d6b38e3c093e20e1e5c4f01efc13d1960ad4
/system/vold/VolumeManager.cpp
ba6ae8db137d012c9b8e11f9f8321c7771698e92 16-Jul-2013 Jeff Sharkey <jsharkey@android.com> Add support for more expressive SD card permissions

We now run an sdcard fuse daemon on top of a physical SD card.
Add support for that.

Bug: 10330128

Change-Id: I6a291f861ccb0f2911c07cc8f659e2cec4e6d76c
/system/vold/VolumeManager.cpp
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.cpp
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.cpp
29e55ef83def8eaf6aa01201c6344a8037b2f780 30-Oct-2012 Elliott Hughes <enh@google.com> am edf4e179: Merge "Fix vold\'s use of readdir_r(3)."

* commit 'edf4e17940c6d3887e9009b23ffca5be8116fbe9':
Fix vold's use of readdir_r(3).
8c480f73eed963eeca9b7df3e4c4543c6e43b0d7 27-Oct-2012 Elliott Hughes <enh@google.com> Fix vold's use of readdir_r(3).

Change-Id: I805a1799755429dd1f6f3bdc2e6a02f483587b35
/system/vold/VolumeManager.cpp
2e0d70f98d10089f0cc3b88848d203cb4694fb98 19-Oct-2012 Nick Kralevich <nnk@google.com> am 678d556f: Merge "Add snprintf truncation and output error checks."

* commit '678d556f439cae504c343c15d77e9ec020a9385c':
Add snprintf truncation and output error checks.
d1c226fce359e6de2b7334bf202c8f97af9fb9e0 09-Oct-2012 rpcraig <rpcraig@tycho.ncsc.mil> Add snprintf truncation and output error checks.

Change-Id: If7fc9bba4b6cd4b01d2c19e967105ffc57169e97
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
/system/vold/VolumeManager.cpp
bb67b67cc760e4eab8a144d1ce1df9ad2dcdc8c2 17-Oct-2012 Kenny Root <kroot@android.com> am fd5b29be: Merge "Extend vold support for creating ext4 images."

* commit 'fd5b29be8c572058ed9ab0198f5603e96c585d3c':
Extend vold support for creating ext4 images.
fd5b29be8c572058ed9ab0198f5603e96c585d3c 17-Oct-2012 Kenny Root <kroot@android.com> Merge "Extend vold support for creating ext4 images."
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
a54e13a3dca8ad15141a9f1084b6e121caeddce5 21-Sep-2012 rpcraig <rpcraig@tycho.ncsc.mil> Extend vold support for creating ext4 images.

Augment the Ext4::format function to take
a mountpoint parameter. This will then
be passed to make_ext4fs through the
-a option to allow proper security labeling.

Change-Id: Ic26703406a2c463c12e32c8103a0c75c727b7d29
/system/vold/VolumeManager.cpp
eacf7e03d60a2b33ac6cdaa0e01bd6a6fdd9455a 09-Aug-2012 Kenny Root <kroot@google.com> Only cleanup ASECs in external storage DO NOT MERGE

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.

(Cherry-pick of 93ecb38daded7583a4a61f4f22519bb7a8a8c154)

Bug: 6948035
Change-Id: Ib60727bd360caa32173797ff5b4e1e21fcf20054
/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