History log of /system/vold/CommandListener.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/CommandListener.cpp
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/CommandListener.cpp
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/CommandListener.cpp
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/CommandListener.cpp
d0640f6358041f7e2657167560b357078db73526 22-May-2015 Jeff Sharkey <jsharkey@android.com> Add f2fs support for private volumes.

When formatting volumes, pass along fsType string which can be "auto"
to let the volume select the best choice. For now, private volumes
assume that MMC devices (like SD cards) are best off using f2fs when
both kernel support and tools are present, otherwise fall back to
ext4. Use blkid when mounting to pick the right set of tools.

Move filesystem utility methods into namespaces and place in separate
directory to be more organized.

Bug: 20275581
Change-Id: Id5f82d8672dda2e9f68c35b075f28232b0b55ed4
/system/vold/CommandListener.cpp
d0b4295ccc07d0cd715ade415c8c0d7d6945880e 03-Jun-2015 Paul Lawrence <paullawrence@google.com> Move crypt commands to a different listener in vold

In order to prevent this bug from happening, we must allow vold cryptfs
commands to complete while a long running mount is underway.

While waiting for vold to be changed to a binder interface, we will simply
create two listeners, one for cryptfs and one for everything else.

Bug: 19197175
Change-Id: If74142aa81abd58f718a9de6c9e387f6ea442754
/system/vold/CommandListener.cpp
731a7a242df6cc3441ac82b4f9521546fac5ac2d 29-Apr-2015 Paul Lawrence <paullawrence@google.com> DO NOT MERGE Securely encrypt the master key

(cherry-picked from commit 707fd6c7cccc31c0ab0ec1a6ac8b6077c632fc35)

Move all key management into vold
Reuse vold's existing key management through the crypto footer
to manage the device wide keys.

Use ro.crypto.type flag to determine crypto type, which prevents
any issues when running in block encrypted mode, as well as speeding
up boot in block or no encryption.

This is one of four changes to enable this functionality:
https://android-review.googlesource.com/#/c/148586/
https://android-review.googlesource.com/#/c/148604/
https://android-review.googlesource.com/#/c/148606/
https://android-review.googlesource.com/#/c/148607/

Bug: 18151196

Change-Id: I3c68691717a61b5e1df76423ca0c02baff0dab98
/system/vold/CommandListener.cpp
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/CommandListener.cpp
1bfb375f77c093a8e16bef4ddeab2681ca126d56 30-Apr-2015 Jeff Sharkey <jsharkey@android.com> Update primary symlinks after mounting.

Since otherwise we might have a stale path.

Bug: 19993667
Change-Id: I099e3dc0c5aa9ab6820cded4f2ae7fd6bf18ea40
/system/vold/CommandListener.cpp
1d6fbcc389ecb9f418076e8ab5f4c93a5d911de9 25-Apr-2015 Jeff Sharkey <jsharkey@android.com> Migrate primary external storage.

When requested, kick off a thread that will migrate storage contents
between two locations. This is performed in several steps that
also interact with the framework:

1. Take old and new volumes offline during migration
2. Wipe new location clean (10% of progress)
3. Copy files from old to new (60% of progress)
4. Inform framework that move was successful so it can persist
5. Wipe old location clean (15% of progress)

Derives a hacky progress estimate by using a rough proxy of free
disk space changes while a cp/rm is taking place.

Add new internal path for direct access to volumes to bypass any
FUSE emulation overhead, and send it to framework. Remove mutex
around various exec calls since setexeccon() is already per-thread.

Bug: 19993667
Change-Id: Ibcb4f6fe0126d05b2365f316f53e71dc3e79a2b8
/system/vold/CommandListener.cpp
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/CommandListener.cpp
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/CommandListener.cpp
9f18fe7807a4e4089778243dbbd08d154ec15540 02-Apr-2015 Jeff Sharkey <jsharkey@android.com> Remove unused code.

Bug: 19993667
Change-Id: I1f6519655c5a366eca25e2329e1bf95d81b3bf8c
/system/vold/CommandListener.cpp
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/CommandListener.cpp
05335c344d73411439774dfa548c633020e158e1 05-Mar-2015 Paul Lawrence <paullawrence@google.com> Adding e4crypt support

Redirect all crypto calls to e4crypt equivalents if file level encryption
detected. Note this change implements only the ones needed for minimal
functionality.

Requires matching change:
https://googleplex-android-review.git.corp.google.com/#/c/642778/

Change-Id: I622d1a91704de4b3ab655486e6d38cd6718e6016
/system/vold/CommandListener.cpp
38394c7d2d6d5bd8c7467155587a78b912e2b7ab 07-Feb-2015 Paul Lawrence <paullawrence@google.com> am 223fd1ca: Revert "Make encryption configurable"

* commit '223fd1cad8d627dc36e11da8cdd342c1a810d226':
Revert "Make encryption configurable"
223fd1cad8d627dc36e11da8cdd342c1a810d226 06-Feb-2015 Paul Lawrence <paullawrence@google.com> Revert "Make encryption configurable"

This reverts commit 6a69cfc411c086f15d59b7dc105763af16620414.

The original fix seems to have led to boot failures in QA. Rather than
risk shipping, revert the change. Bug 18764230 reopened.

Requires change
https://googleplex-android-review.git.corp.google.com/#/c/629950/

Bug: 19278390
Bug: 19199624

Change-Id: Ia858c4db0abb917f9364ec8048f59ca4fb48e233
/system/vold/CommandListener.cpp
4a36ca003873991c99fbd2b41c87c9409c053d71 26-Jan-2015 Paul Lawrence <paullawrence@google.com> am 6a69cfc4: Make encryption configurable

* commit '6a69cfc411c086f15d59b7dc105763af16620414':
Make encryption configurable
6a69cfc411c086f15d59b7dc105763af16620414 21-Jan-2015 Paul Lawrence <paullawrence@google.com> Make encryption configurable

Add maybeenabledefaultencryption function, that encrypts based
on the encryption flag and appropriate environment variable

Bug: 18764230
Change-Id: Id9a1967d09a7ae63a51240c0a5f3c41505af0e9a
/system/vold/CommandListener.cpp
09cf7354a9c07505c8b2af43bfaa86252833b014 06-Jan-2015 Yabin Cui <yabinc@google.com> am f3b2637e: Merge "Use getmntent when accessing /proc/mounts."

* commit 'f3b2637e0611ac7953c18ce39a47b7c408a70160':
Use getmntent when accessing /proc/mounts.
d1104f75a736210a95ba890473d78e8dfc8b8915 02-Jan-2015 Yabin Cui <yabinc@google.com> Use getmntent when accessing /proc/mounts.

Bug: 18887435
Change-Id: Ibcb446fac954d9c42ebdfc4b684e6f3503337ab4
/system/vold/CommandListener.cpp
6c78e7d7724a431dbdb2b0a5bb8cd2b07424cbe5 18-Dec-2014 Tim Murray <timmurray@google.com> resolved conflicts for merge of 4be36106 to lmp-mr1-dev-plus-aosp

Change-Id: If504710a618d8c3adf85297d5fd2909558ed57a3
8439dc9fd569794b1a31f67cf43d9212de33eecc 15-Dec-2014 Tim Murray <timmurray@google.com> Make vold compile with -Werror -Wall.

-Wno-missing-field-initializers is used as well, but that is an
overzealous warning from initializing structs with {0} and not a
real warning.

bug 18736778 and 16868177

Change-Id: Iffde89cd7200d9a11193e1614f1819f9fcace30a
/system/vold/CommandListener.cpp
b25302e1b0232ac2f9d6ffa441f2ab1ff23a2de3 11-Nov-2014 Paul Lawrence <paullawrence@google.com> Do not log passwords returned through vdc

Requires framework change:
https://googleplex-android-review.git.corp.google.com/#/c/585511/

Bug: 18260068
Change-Id: I95d3bb39404ede7128b8f5d61ce2423a5f09a9b8
/system/vold/CommandListener.cpp
85c01f95c7a3c009e79867fe36181cc0793a0440 13-Oct-2014 Rubin Xu <rubinxu@google.com> Make persistent field in cryptofs support longer values.

Store long field values in multiple underlying fixed-length entries
and concatenate them together when reading back.

Bug: 17556485
Change-Id: I2f8033d18c208993fa1b010712be0dad5d8b646b
/system/vold/CommandListener.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/CommandListener.cpp
422bdb7e49b39475328f05d765b00f0ef96820b8 29-Jul-2014 JP Abgrall <jpa@google.com> fstrim: prep for supporting a deep trim ioctl

This adds an "fstrim dodtrim" command which will attempt to use
the FIDTRIM ioctl() if FIDTRIM is defined in the uapi/linux/fs.h.
If not, it will fail with EINVAL.

If no FIDTRIM is defined, it does not affect the "fstrim dotrim".

Change-Id: Icbfd621abb592b170db06f749e5eedfd1175f723
/system/vold/CommandListener.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/CommandListener.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/CommandListener.cpp
45f10533f8cb2e2ec8dc9803739870cbfafffebd 04-Apr-2014 Paul Lawrence <paullawrence@google.com> Revert "Revert "Encrypt phone even if pattern or no keyguard""

Don't block based on keyguard type, and pass type to encryption function.

Requires:
https://googleplex-android-review.git.corp.google.com/#/c/444201/
or encryption will no longer work.

This reverts commit efec3f2927c45979db2b78e7a6228d08aafb5e42.

Change-Id: I431589a56eb11118027e0a5a84f55e973b1084aa
/system/vold/CommandListener.cpp
efec3f2927c45979db2b78e7a6228d08aafb5e42 03-Apr-2014 Paul Lawrence <paullawrence@google.com> Revert "Encrypt phone even if pattern or no keyguard"

This reverts commit 5cc86c57416eccb70dcc949d68587f08726f96fa.

Without two more commits, this will break encryption. I'll re-commit when the other two pass code review.

Change-Id: I71720d065c16cf0f7f534e74ffe883f1e113c477
/system/vold/CommandListener.cpp
5cc86c57416eccb70dcc949d68587f08726f96fa 02-Apr-2014 Paul Lawrence <paullawrence@google.com> Encrypt phone even if pattern or no keyguard

Add option to enablecrypto to take type, allowing us to set type
when encrypting.

Bug: 13749169
Change-Id: If22fcfa93f1ebd1a5bd3b0077bb3bd8ae71fe819
/system/vold/CommandListener.cpp
399317ede45340eebc035ba204b6201b6d62dd66 10-Mar-2014 Paul Lawrence <paullawrence@google.com> Store password in vold

If we are not to double prompt, we need to pass the password from
CryptKeeper to KeyStore. Since the entire framework is taken down
and restarted, we must store the password in a secure system daemon.
There seems no better way than holding it in vold.

Change-Id: Ia60f2f051fc3f87c4b6468465f17b655f43f97de
/system/vold/CommandListener.cpp
f8e9569507a641ece6713cb4be072d1d9cfd2dcd 12-Mar-2014 Mohamad Ayyash <mkayyash@google.com> Merge "vold: Add a new mountall command."
df7382e477ed0e3d27dc7cb1ca029aa52b476c7c 12-Mar-2014 JP Abgrall <jpa@google.com> am a29997ae: am 470f0b3f: Merge "Avoid segv by checking argc in "storage user <mountpoint>""

* commit 'a29997ae260d3d7cf41c40d9c7ba42b761b12d30':
Avoid segv by checking argc in "storage user <mountpoint>"
7929aa73d0c1fa75e8e0fcd4272361ad0ea9b0e6 10-Mar-2014 Mohamad Ayyash <mkayyash@google.com> vold: Add a new mountall command.

This enables running "vdc mountall" in filesystem recovery tests where a partition is first unmounted then corrupted, and then finally verified that it's properly recovered and remounted successfully (i.e. running e2fsck..etc.).

Change-Id: I9385180afaef70f9cc6b2920d2a3c6ff13203b4e
/system/vold/CommandListener.cpp
edf7adf21e1c210e5954b1128efb61b62f6da274 12-Mar-2014 JP Abgrall <jpa@google.com> Avoid segv by checking argc in "storage user <mountpoint>"

Change-Id: Iffd67746e2e273c4c3f87741e5f13aa511ccb557
Signed-off-by: JP Abgrall <jpa@google.com>
/system/vold/CommandListener.cpp
684dbdf316a02cf6a7694018f7c3a4bcd65142cc 07-Feb-2014 Paul Lawrence <paullawrence@google.com> Infrastructure to securely allow only one prompt at boot when encrypted

Add a call to vold that says if we decrypted the data partition. Reset the
flag so that it only returns true the first time.

Bug: 12990752
Change-Id: Ib00be87137c00fb8ad29205c85a3ea187764b702
/system/vold/CommandListener.cpp
13486033575e6e4affccbb3dd201515d79f6f44b 03-Feb-2014 Paul Lawrence <paullawrence@google.com> Enable auto-encrypt drive at startup

Modify enablecrypto command to make the password optional. When it is
not there, default encrypt the device.

Remove a warning by making at least some parts of this file const-correct.

Bug: 11985952
Change-Id: Ie27da4c4072386d9d6519d97ff46c6dc4ed188dc
/system/vold/CommandListener.cpp
f4faa575c9fc20a8a8e133d6098865b5ce3a7ed2 29-Jan-2014 Paul Lawrence <paullawrence@google.com> Support default, pattern, pin and password encryption types

Store encryption type in crypto footer, and provide functions to
manipulate it. Add mount_default_encrypted command to vdc to allow
mounting of default encrypted volumes at boot time.

Bug: 8769627
Change-Id: Ie41848f258e128b48b579e09789abfa24c95e2b2
/system/vold/CommandListener.cpp
5eecc449cc75771cc0c6eb0ad936117d16704b83 12-Feb-2014 Mark Salyzyn <salyzyn@google.com> vold: suppress unused argument warning messages

(cherry picked from commit 3e971277db0d87652af5622c989233e7159ab909)

Change-Id: Ic1ab533f756fbd44b1f2e5ae12e2f5736ace7740
/system/vold/CommandListener.cpp
3e971277db0d87652af5622c989233e7159ab909 21-Jan-2014 Mark Salyzyn <salyzyn@google.com> vold: suppress unused argument warning messages

Change-Id: Ic1ab533f756fbd44b1f2e5ae12e2f5736ace7740
/system/vold/CommandListener.cpp
502dc74153397e56d5410f8a8250b5581643b9ef 01-Nov-2013 JP Abgrall <jpa@google.com> vold: cryptfs: Retry encryption after killing processes using /data

Currently, if a non-framework process or service is using /data,
unmounting will fail as nothing will kill it.
Instead of rebooting on unmount failure, we now kill all processes
using /data, then try one more time.

Bug: 11291208
Change-Id: I6c5276c78aa55965914ace96e1db74dc80fca3c1
/system/vold/CommandListener.cpp
530a6c1787aed2b7e2ad6b2753351643743034f6 21-Sep-2013 Jeff Sharkey <jsharkey@android.com> am 71ebe154: Add mkdirs() command.

* commit '71ebe154a5fbbb4b394a439ff0b6b9c84fbd04f5':
Add mkdirs() command.
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/CommandListener.cpp
20bab9ffdcfd2b22c2d1ba897df98750ef195e7d 17-Sep-2013 Nick Kralevich <nnk@google.com> vold: Remove obsolete xwarp support.

This code appears to be unused. Delete it.

This is essentially a revert of 2350c44ff39b4cb2940893964a05f778fc80a436.

Change-Id: I20a525bb49f6ee8fec8c1ec22e01ad47d0c72960
/system/vold/CommandListener.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/CommandListener.cpp
160b4d68ece15947057e31edde4e5608a010c695 22-Apr-2013 Ken Sumrall <ksumrall@android.com> vold: Add support for unencrypted persistent info

In order to display the correct language, timezone, airplane
mode and other settings on the decrypt screen, a copy of those
settings needs to be stored unencrypted so the framework can
query them. This adds support to vold to store up to 32
property like key/value pairs that are not encrypted.

Change-Id: Id5c936d2c57d46ed5cff9325d92ba1e8d2ec8972
/system/vold/CommandListener.cpp
b87937cdea689594a293979b30b13054e7455dee 20-Mar-2013 Ken Sumrall <ksumrall@android.com> Vold: Add the fstrim subsystem to vold

The fstrim subsystem implements the dotrim command, which goes
through all the writable filesystems on the device, and invokes
the FITRIM ioctl() on them. This marks all the unused blocks on
the underlying flash device as unused, so the device performs better.

Change-Id: I5fc8c2f60e0bc823f162d0f89580fb288ecb2160
/system/vold/CommandListener.cpp
16a32502bf98b4b0fc15a82a36242fada29baf5b 28-Nov-2012 Dianne Hackborn <hackbod@google.com> am 3fd60b42: Fix issue #7503920: Log spew from vold

* commit '3fd60b428202a0f5f324fccc67c0c0402b9131ba':
Fix issue #7503920: Log spew from vold
3fd60b428202a0f5f324fccc67c0c0402b9131ba 28-Nov-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7503920: Log spew from vold

Change-Id: Ibfa5b979014f433085b94aab0d3d81bf9269d4b5
/system/vold/CommandListener.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/CommandListener.cpp
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/CommandListener.cpp
7b0bc8571465666d6cba79bda60b72a97f852c05 28-Apr-2012 Kenny Root <kroot@google.com> Fix truncation of ASEC ids

Change-Id: I1e6bfcc6b0a5be47e6fd19922fc81669f61b5dba
/system/vold/CommandListener.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/CommandListener.cpp
149aa3eb65a8cb878781206b1476aae110e0e1fd 16-Feb-2012 Robert Greenwalt <rgreenwalt@google.com> Use the new command numbering scheme.

Support multiple commands on a single socket via command numbers.
NativeDaemonConnector has been changed, so we need to use it here
too.

bug:5864209
Change-Id: Ie06e966d50057d122a958377731c0385ea367b69
/system/vold/CommandListener.cpp
3ad9072a5d6f6bda32123b367545649364e3c11d 05-Oct-2011 Ken Sumrall <ksumrall@android.com> Add the new verifypw command to vold/cryptfs

This vold command returns 0 if the given password matches the password
used to decrypt the device on boot. It returns 1 if they don't match,
and it returns -1 on an internal error, and -2 if the device is not encrypted.

Also check the uid of the sender of the command and only allow the root and
system users to issue cryptfs commands.

Change-Id: I5e5ae3b72a2d7814ae68c2d49aa9deb90fb1dac5
/system/vold/CommandListener.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/CommandListener.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/CommandListener.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/CommandListener.cpp
7f7dbaa2784c10fd2989fb303e5edfb8136d53dc 02-Feb-2011 Ken Sumrall <ksumrall@android.com> Improve detection of incomplete encryption

Bug 3384231 is punted to MR1, but the code to set the flag is already
in the tree, so this CL does 3 things:

1. Comments out the lines that set the flag
2. Removes the change to the checkpw that was added in the last change.
3. Implements a new command to check the flag (which no one is calling
yet and the flag won't be set anyhow).

When MR1 comes, it will be a simple matter to enable the flag setting
code and start testing it.

The fear is a false positive detection of incomplete encryption could
cause people to be prompted to wipe their data when MR1 comes out and
the flag is checked. Not setting this for first release, and testing
this more before MR1, will give us confidence that the code will not
detect false positives of encryption failure.

Change-Id: I6dfba11646e291fe5867e8375b71a53c815f3968
/system/vold/CommandListener.cpp
70a4b3fd7a84a84bbe6e9d6d4ca3ee2098259fd9 28-Jan-2011 Jason parks <jparks@google.com> Change cryptfs changepw to only require a new password.

The master key is now stored unhashed in memory. This
is needed because certain operation like remote reseting
of passwords the old password is not avaliable.
The changepw interface has been changed to only take
the new password as the only argument. When this is
called we reencrypt the master key with the new password
and old salt.

Bug: 3382129
Change-Id: I9a596b89013194605d6d7790067691aa0dc75e72
/system/vold/CommandListener.cpp
0167cb15935592deea9abbd6a8bbe904e27bd101 21-Jan-2011 Jason parks <jparks@google.com> Always return success if the command was run.

The caller will check the result code for success. This prevents a exception from being thrown when the result code needs to be propagated to the caller.

Change-Id: I471e8d6eb6f339c6f4e40f47adf60d20f6a70974
/system/vold/CommandListener.cpp
57b63e61cb41e377708a4fdf18ecc80eb1b2b521 18-Jan-2011 Ken Sumrall <ksumrall@android.com> Minor tweaks to logging for the cryptfs changepw command.

Change-Id: I87ff9788a56de6d461002407bf6c3cd4c6f900ee
/system/vold/CommandListener.cpp
8ddbe40a8a8708dac7c472fa8c098c8f7b24534c 18-Jan-2011 Ken Sumrall <ksumrall@android.com> Updates to cryptfs framework.

Update the enable inplace API to allow the UI to show a progress bar.
Add new command changepw (whichis currently not working)
Internal restructuring of code to support these two features.
Some minor cleanup of the code as well.

Change-Id: I11461fc9ce66965bea6cd0b6bb2ff48bcf607b97
/system/vold/CommandListener.cpp
6864b7ec94a57b73c300457955d86dc604aeddf5 15-Jan-2011 Ken Sumrall <ksumrall@android.com> Change the cryptfs command to separate out checking the password and restarting

In order to make the animations and the UI look right, we need to change
the cryptfs checkpw command to return a status if the password was
correct or not, and not have it automatically restart if it's correct.

There is a new command restart that will restart the framework with the
encrypted filesystem.

Change-Id: Ia8ae00d7ed8667699aa58d05ad8ba953cca9316e
/system/vold/CommandListener.cpp
8f869aa1bc685b505c58e97b4e11a9c7491a16f9 03-Dec-2010 Ken Sumrall <ksumrall@android.com> Support for encrypting /data on Stingray.

There are still a few hacks and performance issues related
to shutting down the framework in this code, but it is
functional and tested. Without the UI changes, it requires
cryptic adb shell commands to enable, which I shall not
utter here.

Change-Id: I0b8f90afd707e17fbdb0373d156236946633cf8b
/system/vold/CommandListener.cpp
37dcda68d334f70e1f7f69a9817def65fe3ee717 16-Nov-2010 Olivier Bailly <olivier@google.com> Add missing include headers for compilation on Intel target for Google TV.

Change-Id: I9f71b5e871671d1d64ad37f78a8944653409b8e1
/system/vold/CommandListener.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/CommandListener.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/CommandListener.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/CommandListener.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/CommandListener.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/CommandListener.cpp
57df7bf33968d65c23f3d0dc9f30a8ce2625b1d0 14-Mar-2010 San Mehat <san@google.com> vold: Fix argument validation for volume commands

Change-Id: I74aa63ff9f9bc32bd871e6c53ab50b6baf79e650
Signed-off-by: San Mehat <san@google.com>
/system/vold/CommandListener.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/CommandListener.cpp
2350c44ff39b4cb2940893964a05f778fc80a436 02-Mar-2010 San Mehat <san@google.com> vold: Add support for xwarp

Signed-off-by: San Mehat <san@google.com>
/system/vold/CommandListener.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/CommandListener.cpp
8f2875b29780312f4edda3d831cc8a99e1648dd5 18-Feb-2010 San Mehat <san@google.com> vold: Clean up asec command response and add support for 'StorageBusy'

Signed-off-by: San Mehat <san@google.com>
/system/vold/CommandListener.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/CommandListener.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/CommandListener.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/CommandListener.cpp
2b22552f9a3b077f9d0a3624ac6f9b8b332f8a7a 03-Feb-2010 San Mehat <san@google.com> vold: Fix share status argument off by one

Signed-off-by: San Mehat <san@google.com>
/system/vold/CommandListener.cpp
eba65e9d438a05f1c5dfd0f8d31bc463a5d08eee 29-Jan-2010 San Mehat <san@google.com> vold: Bloat reduction
Signed-off-by: San Mehat <san@google.com>
/system/vold/CommandListener.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/CommandListener.cpp
5817821cf10b5f7d13eb693ffbc3f80f13bc681b 18-Jan-2010 San Mehat <san@google.com> vold: Add command to unmount secure containers

Signed-off-by: San Mehat <san@google.com>
/system/vold/CommandListener.cpp
dfe79492a4f5280e9de2db6fa749a7781c59f2a6 11-Jan-2010 San Mehat <san@google.com> vold2: Fix a mb -> sector conversion refactor bug

Signed-off-by: San Mehat <san@google.com>
/system/vold/CommandListener.cpp
c66770f4c0497430a78e982cabe65b31828055c6 11-Jan-2010 San Mehat <san@google.com> vold: Rename the C in ASEC to Container

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