* Implement the decryptStorage() method on the Mount Service.
This method makes the calls into vold to decrypt the encrypted
volumes and mount them.
Change-Id: I4f6e07a111cf0b36611d590debf9f6579c5ac5f7
If the memory card is not inserted (or removed) from
the phone the shut down process is very long. It
takes almost 24 seconds. For the phone with memory
card the averige is 5-6 seconds
Make sure to send onShutDownComplete even if an SD
card is not mounted and no unmount is done.
Change-Id: I0e79b82e294a971f5e7144cdd3cc16b7ff414b9c
Merge commit 'bdf8034c657147226b2390eef113ff841e0d6065' into gingerbread-plus-aosp
* commit 'bdf8034c657147226b2390eef113ff841e0d6065':
OBB: use PBKDF2 for key generation.
Switch to using PBKDF2 for the key generation for OBBs. Any previously
generated OBBs will stop being read correctly. A small pbkdf2gen program
is available to allow generation of appropriate keys with the salts.
Bug: 3059950
Change-Id: If4305c989fd692fd1150eb270dbf751e09c37295
When the storage is emulated, we don't want to install ASEC containers
to it. This adds the API to check when the external storage is emulated
and uses it to check whether or not to install packages to the external
storage in an ASEC container.
Bug: 3024387
Change-Id: Ia0318aca9e4938a4897deaada5603a4c7c1d0f48
Merge commit 'b4de3dca96b9ff18562062e181dcd8b83e641e45' into gingerbread-plus-aosp
* commit 'b4de3dca96b9ff18562062e181dcd8b83e641e45':
OBB: rearrange to be entirely asynchronous
Rearrange structure of MountService handling of OBBs to be entirely
asynchronous so we don't rely on locking as much. We still need the
locking to support dumpsys which has been improved to output all the
data structures for OBBs.
Added more tests to cover more of the error return codes.
Oh and fix a logic inversion bug.
Change-Id: I34f541192dbbb1903b24825889b8fa8f43e6e2a9
Merge commit 'c296f22e713257271f95c2115df9e13d05d5687a'
* commit 'c296f22e713257271f95c2115df9e13d05d5687a':
Revert "Only allow 8 OBBs to be mounted by a UID"
Merge commit '36455d03256024981b1bf21557722a010b5e092a'
* commit '36455d03256024981b1bf21557722a010b5e092a':
Add MountService tests and fix a bug it found
Merge commit '0145e36cad1472acafb492b3f009ca6eba9593ea' into gingerbread-plus-aosp
* commit '0145e36cad1472acafb492b3f009ca6eba9593ea':
Revert "Only allow 8 OBBs to be mounted by a UID"
It's basically a duplicate of MCS_UNBIND state, so just get rid of it
which simplifies the state transitions.
Bug: 3067076
Change-Id: I34111be88dd727af8ad59c9f49debd54ede827ea
Merge commit 'a3ee5c0351e51f7a978ddddc37644f46051ca6ed' into gingerbread-plus-aosp
* commit 'a3ee5c0351e51f7a978ddddc37644f46051ca6ed':
Add MountService tests and fix a bug it found
An incorrect assumption about how death observers were tracked lead to
an IllegalArgumentException in some cases. Make sure the linking and
unlinking of the Binder to its ObbState death observer is symmetric to
avoid this problem.
Bug: 3062360
Change-Id: Idd016db12551c80cd74d00f11cf6569bd3b4ce21
Add some MountService tests that are based partially on some stuff done
in PackageManagerTests. This allows us to test the OBB changes in an
easy way.
Also, it found some bugs in the DefaultContainerService connection state
machine, so fix those while we're at it.
Change-Id: I18f38593be754eb32fb6e842f88eec47e2beefce
If vold isn't told "none" for the key, it will try to mount it as an
encrypted container.
Also remove the -c option from mkobb since it can be triggered by
including a key as well.
Change-Id: I40a8ff3f778bfda682312630e6687ecc14b51844
Merge commit '6ce5f60c791401ed0faf5d36baf4fc6612358676'
* commit '6ce5f60c791401ed0faf5d36baf4fc6612358676':
Remove OBBs from state list when volume unmounted
Merge commit '8b28441adab59f2bb0d92c8a717af75331249e08' into gingerbread-plus-aosp
* commit '8b28441adab59f2bb0d92c8a717af75331249e08':
Being already unmounted is not a failure
Merge commit '27358a69b33eaa268ee75ef778ec824c8085adcc' into gingerbread-plus-aosp
* commit '27358a69b33eaa268ee75ef778ec824c8085adcc':
Only allow 8 OBBs to be mounted by a UID
Merge commit '38cf8867a8d3e8d5159abd0bd0e6a3b0b8348b94' into gingerbread-plus-aosp
* commit '38cf8867a8d3e8d5159abd0bd0e6a3b0b8348b94':
Remove OBBs from state list when volume unmounted
Using a plaintext password doesn't work unless it's a certain length, so
just hash the plaintext password with MD5 to make it the right length
for the twofish encryption.
Tracking the IInterface doesn't make much sense since it's different
each time, so track the IBinder instead. That way we can unlinkToDeath
the binder when the last thing it's holding onto goes away.
Change-Id: Id828d25b4d74f27e9d8b4bfb3909c964469cc473
Don't keep tracking OBBs when the volume they're located on goes away.
Remove them from our state tracking maps and then send a notification to
any listener that is still around.
Add a dump handler to MountService so the state of the mount lists
can be inspected.
Change the API to just make a callback directly to the change listener
when mount is called when it's already mounted or unmount called when
it's already unmounted.
Change-Id: Idb4afbb943ca5ca775825f908bff334e3ce1cfcc
Merge commit '8bd545ab4f7e75634c970b50ed15c20858d6ac0c'
* commit '8bd545ab4f7e75634c970b50ed15c20858d6ac0c':
Move all the permissions check up for unmount
Merge commit '212d81a004f50e51ed8f6d803b79f4b71546b351' into gingerbread-plus-aosp
* commit '212d81a004f50e51ed8f6d803b79f4b71546b351':
Move all the permissions check up for unmount
We have already scanned the state of the OBB in mountObb, so check the
caller against the stored state in the unmountObb call. This allows us
to ensure the calling binder is the same one that mounted it since we
tie the lifecycle of the OBB to the lifecycle of the binder.
Change-Id: I45d9cfbab5d3f5b37a6a9b594b10bd8b91cccc45
Merge commit '05105f7abe02b2dff91d6260b3628c8b97816bab' into gingerbread-plus-aosp
* commit '05105f7abe02b2dff91d6260b3628c8b97816bab':
Update OBB API to include callbacks
Add a callback for users of the StorageManager API to be able to receive
notifications when the requested operation completes for mountObb and
unmountObb.
Add NDK API to get to ObbInfo like the Java API has.
Also update the docs for the API and remove the "STOPSHIP" comments.
Change-Id: I23a4409c7f8b74d3169614beba920b4d667990a4