7265abe77a76f848a316640b5da106e882bdbc8a |
|
21-Nov-2014 |
Christopher Tate <ctate@google.com> |
Be increasingly aggressive about fstrim if it isn't being run The current heuristics depend on devices being alive at midnight+ in order to run periodic background fstrim operations. This unfortunately means that people who routinely turn their devices off overnight wind up with their devices *never* running fstrim, and this causes major performance and disk-life problems. We now backstop this very-friendly schedule with an increasingly aggressive one. If the device goes a defined time without a background fstrim, we then force the fstrim at the next reboot. Once the device hits the midnight+ idle fstrim request time, then we already aggressively attempt to fstrim at the first available moment thereafter, even if it's days/weeks later without a reboot. 'Available' here means charging + device idle. If the device never becomes idle then we can't do much without rendering an in-use device inoperable for some number of minutes -- but we have no evidence of devices ever failing to run fstrim due to this usage pattern. A new Settings.Global element (type 'long', called "fstrim_mandatory_interval") is the source of the backstop time. If this element is zero or negative, no mandatory boot-time fstrim will ever be performed. If the element is not supplied on a given device, the default backstop is 3 days. Adds a new string to display in the upgrading dialog when doing the fstrim. Note it is too late for this to be localized, but since this operation can take a long time it is probably better to have it show *something* even if not localized, rather than just sit there. Bug 18486922 Change-Id: I5b265ca0a65570fb8931251aa1ac37b530635a2c
/frameworks/base/core/java/android/os/storage/IMountService.java
|
e2c88d39b2c5b33d55c42230db7899202625a96a |
|
29-Aug-2014 |
Paul Lawrence <paullawrence@google.com> |
Add constants so we can distinguish decryption failures Bug: 17213613 Change-Id: I6bc10a1ed0855f6946ea9eb2f8d2db00c1af327c
/frameworks/base/core/java/android/os/storage/IMountService.java
|
941a8ba1a6043cf84a7bf622e44a0b4f7abd0178 |
|
21-Aug-2014 |
Jeff Sharkey <jsharkey@android.com> |
Installing splits into ASECs! Sessions can now zero-copy data directly into pre-allocated ASEC containers. Then at commit time, we compute the total size of the final app, including any inherited APKs and unpacked libraries, and resize the container in one step. This supports both brand new ASEC installs and inheriting from existing ASEC installs. To keep things simple, it currently requires copying any inherited ASEC contents, but this could be optimized in the future. Expose new vold resize command, and allow read-write mounting of ASEC containers. Move native library extraction into the installer flow, since it needs to happen before ASEC is sealed. Move multiArch flag into NativeLibraryHelper, instead of making everyone pass it around. Migrate size calculation to shared location. Separate "other" package name in public API, provide a path to a storage device when relevant, and add more docs. Bug: 16514385 Change-Id: I06c6ce588d312ee7e64cce02733895d640b88456
/frameworks/base/core/java/android/os/storage/IMountService.java
|
9502f990899ef576879048ec5147d403158ad89d |
|
10-Apr-2014 |
Paul Lawrence <paullawrence@google.com> |
Merge "Allow encryption when keyguard is set to pattern or no protection"
|
46791e752ca1eca35e6a882c47d7de7f4f66687c |
|
03-Apr-2014 |
Paul Lawrence <paullawrence@google.com> |
Allow encryption when keyguard is set to pattern or no protection Add type parameter to encryptStorage so we can set type when we encrypt Depends on https://googleplex-android-review.git.corp.google.com/#/c/444056/ Circular dependency on: https://googleplex-android-review.git.corp.google.com/#/c/444201/ Bug: 13749169 Change-Id: I52034ec25de35f12f1bbfdd1b0f8584923a0be2e
/frameworks/base/core/java/android/os/storage/IMountService.java
|
e51dcf98a4ddb1340cffba88059ad89f0b90909a |
|
18-Mar-2014 |
Paul Lawrence <paullawrence@google.com> |
Save OwnerInfo so CryptKeeper can display at boot time Requires vold change from https://googleplex-android-review.git.corp.google.com/#/c/435164/ Bug: 13526708 Change-Id: I33153df9961832f72c3b8103bd5e1d3a17e77df3
/frameworks/base/core/java/android/os/storage/IMountService.java
|
945490c12e32b1c13b9097c00702558260b2011f |
|
27-Mar-2014 |
Paul Lawrence <paullawrence@google.com> |
Don't double prompt on booting encrypted device vold will store password securely until KeyGuard requests it and hands it on to KeyStore. This is a revision of https://googleplex-android-review.git.corp.google.com/#/c/418123/ which was reverted. It had two bugs in LockSettingsService.checkVoldPassword. 1) We were not checking password for null, which caused an exception 2) checkPattern/checkPassword return true if there is no saved pattern or password. This leads to situations where we get true returned even when the password doesn't match. Call the correct one based on what is there, not what vold thinks ought to be there. Bug: 12990752 Change-Id: I05315753387b1e508de5aa79b5a68ad7315791d4
/frameworks/base/core/java/android/os/storage/IMountService.java
|
6ee7d25010d4f23b44a151f3953225ba253de8af |
|
26-Mar-2014 |
Paul Lawrence <paullawrence@google.com> |
Revert "Don't prompt at boot if we already did that when decrypting" This reverts commit 493e3e7e6523fd94cc1acae3e45935a1227d58c3. Should fixes Bug: 13611885 Bug: 13656830 Change-Id: I117c988bb6679f44f8add4fcc18f45cb8238dfb4
/frameworks/base/core/java/android/os/storage/IMountService.java
|
493e3e7e6523fd94cc1acae3e45935a1227d58c3 |
|
06-Feb-2014 |
Paul Lawrence <paullawrence@google.com> |
Don't prompt at boot if we already did that when decrypting vold will store password securely until KeyGuard requests it and hands it on to KeyStore. Needs matching vold changes from https://googleplex-android-review.git.corp.google.com/#/c/432050/ Bug: 12990752 Change-Id: I930ed8180cf0b8feb1e58db043d5fb6dff1bab20
/frameworks/base/core/java/android/os/storage/IMountService.java
|
8e39736f91a08961cf59c87075e61d9026833b50 |
|
28-Jan-2014 |
Paul Lawrence <paullawrence@google.com> |
Support default, pattern, pin and password encryption types Java plumbing to expose methods to get/set encryption type in IMountService, and hooking up of those methods to the Settings app so the type is set correctly. Needs matching vold changes from https://googleplex-android-review.googlesource.com/#/c/412649/ Bug: 8769627 Change-Id: I70c0ed72d11f5ab6f0958a7f9c101b6822b13baa
/frameworks/base/core/java/android/os/storage/IMountService.java
|
2d8b4e801332e02d6aad615b85cc9dd056ef805c |
|
18-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Delegate mkdirs() to vold when lacking perms. Apps without sdcard_r or sdcard_rw are still able to write to their package-specific directory, but someone needs to first make that directory on their behalf. This change will delegate the mkdirs() call through to vold when an app fails to create directly. MountService validates that the path belongs to the calling user, and that it's actually on external storage, before passing to vold. Update Environment to make app-vs-vold paths clearer. Bug: 10577808 Change-Id: I43b4a77fd6d2b9af2a0d899790da8d9d89386776
/frameworks/base/core/java/android/os/storage/IMountService.java
|
4fbbda4cecb078bd3867f416b02cc75f5455284f |
|
25-Sep-2012 |
Jeff Sharkey <jsharkey@android.com> |
Handle multi-user mountObb() requests. Since emulated external storage paths differ based on execution context, carefully fix up paths for various use-cases: 1. When sending paths to DefaultContainerService, always scope OBB paths as belonging to USER_OWNER. 2. When sending paths to vold, always build emulated storage paths visible to root. 3. Always use the original untouched path when talking with apps. Mount OBB containers using shared app GID, so that an app can read the mount point across users. Handle legacy paths like "/sdcard" by resolving the canonical path before sending to MountService. Move tests to servicestests, and add tests for new path generation logic. Bug: 7212801 Change-Id: I078c52879cd08d9c8a52cc8c83ac7ced1e8035e7
/frameworks/base/core/java/android/os/storage/IMountService.java
|
b049e212ab7fe8967893c202efcb30fecfdb82fb |
|
08-Sep-2012 |
Jeff Sharkey <jsharkey@android.com> |
Include user identifier in external storage paths. When building external storage paths, always include user in path to enable cross-user paths and aid debugging. Each Zygote process continues to only have access to the appropriate user-specific emulated storage through bind mounts. A second set of mounts continue supporting legacy /sdcard-style paths. For example, a process running as owner has these mount points: /storage/emulated_legacy /storage/emulated_legacy/Android/obb /storage/emulated/0 /storage/emulated/obb Since Environment is created before Zygote forks, we need to update its internal paths after each process launches. Bug: 7131382 Change-Id: I6f8c6971f2a8edfb415c14cb4ed05ff97e587a21
/frameworks/base/core/java/android/os/storage/IMountService.java
|
51a573c76737733638c475f52e441c814e6645cc |
|
17-May-2012 |
Kenny Root <kroot@google.com> |
Wait for ASECs to be scanned before proceeding Move MountService up the list, then pause waiting for MountService to finish scanning ASECs before the services that require those packages to be ready. Additionally, don't automatically mark all ASEC apps as FLAG_EXTERNAL on reboot. This prevents AppWidgets and other things from being used with ASECs which are on internal storage. Bug: 6445613 Change-Id: I3e0b3e244fec966814d7a5ea93de5d337aea79bd
/frameworks/base/core/java/android/os/storage/IMountService.java
|
6dceb88f1c7c42c6ab43834af2c993d599895d82 |
|
12-Apr-2012 |
Kenny Root <kroot@google.com> |
Allow forward locked apps to be in ASECs We couldn't put forward-locked apps in ASEC containers before since we didn't have any permissioned filesystems. This adds the ability for forward-locked applications to be in ASEC containers. This means that forward locked applications will be able to be on the SD card now. This change also removes the old type of forward-locking that placed parts of apps in /data/app-private. Now all forward-locked applications will be in ASEC containers. Change-Id: I17ae0b0d65a4a965ef33c0ac2c47e990e55707ad
/frameworks/base/core/java/android/os/storage/IMountService.java
|
32418be49e5b61c2e9281528cb8fb67939e301e8 |
|
10-Oct-2011 |
Christopher Tate <ctate@google.com> |
Require device encryption password to perform adb backup/restore This supersedes any backup-password that the user might supply. Per design, the device encryption password is also always used to encrypt the backup archive. The CL introduces two new strings, used for prompting the user for their device encryption password rather than their settings-defined "backup password" when confirming a full backup or restore operation. Bug 5382487 Change-Id: I0b03881b45437c944eaf636b6209278e1bba7a9f
/frameworks/base/core/java/android/os/storage/IMountService.java
|
13c7197da8a16f77f6398708a6314c80cb01e0d1 |
|
08-Sep-2011 |
Ben Komalo <benkomalo@google.com> |
Revert encryption mapping for device wipes. External storage volumes that were emulated+encrypted needed to have their encryption mapping removed so that it doesn't try to encrypt the volume after formatting them. This just wires through an argument through vold, and assumes that vold will do the right thing even if there is no encryption mapping set. Bug: 5017638 Change-Id: I858fae3d12cb415bc34637f520f71220ad9daaad
/frameworks/base/core/java/android/os/storage/IMountService.java
|
444eca232964dbf27d0c4d01447c1493f89186e0 |
|
02-Sep-2011 |
Ben Komalo <benkomalo@google.com> |
Expose getting encryptstate through IMountService - this really just calls cryptfs cryptocomplete - needed so that UI logic can present a factory reset option if encryption screwed up Bug: 3384231 Change-Id: I553de87f0d03a65851030c9c5266e85866d30fa6
/frameworks/base/core/java/android/os/storage/IMountService.java
|
292f8bc9d1b790ab975a87a842c7fabc908b97e0 |
|
28-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Plumb information from the framework about asec container size. Change-Id: Ie0ec3cb6d463aefa341a8cbea80be790451ba5e3
/frameworks/base/core/java/android/os/storage/IMountService.java
|
2f6a3885533a52758c2cd4f81f6123a712be8ae6 |
|
10-May-2011 |
Mike Lockwood <lockwood@android.com> |
StorageManager: Clean up and generalize storage configuration resources Replace config_emulateExternalStorage, config_externalStorageRemovable, config_externalStoragePaths, config_externalStorageDescriptions and config_mtpReserveSpaceMegabytes resources with an XML resource file to describe the external storages that are available. Add android.os.storage.StorageVolume class StorageManager.getVolumeList() now returns an array of StorageVolume Change-Id: I06ce1451ebf08b82f0ee825d56d59ebf72eacd3d Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/os/storage/IMountService.java
|
d967f4664f40f9a4c5262a44b19df9bbdf457d8a |
|
24-Mar-2011 |
Mike Lockwood <lockwood@android.com> |
DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods Change-Id: I43d5c1730b340f1288b58012234b38f801001b71 Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/core/java/android/os/storage/IMountService.java
|
f7b3cd4efd40b7631f36ea014407a850f7dc637e |
|
27-Jan-2011 |
Jason parks <jparks@google.com> |
Update the encryption password when the device password is changed. * Added changeEncryptionPassword() to the MountService. * Update LockPatternUtils to call changeEncryptionPassword() when the password is changed. Note we only require the new password to change the encryption password. Bug: 3382129 Change-Id: I26a7e919e325e75e22fa4290da0a8b1b57b55a80
/frameworks/base/core/java/android/os/storage/IMountService.java
|
56aa5321fe6f00fa3662e6f46a4b2559aa34f63e |
|
07-Jan-2011 |
Jason parks <jparks@google.com> |
Add a method enable encryption. This is for testing and needs to be cleaned up. Change-Id: I29958f2a95c7773744e61bbd23a302b752614f87
/frameworks/base/core/java/android/os/storage/IMountService.java
|
5af0b916f850486cff4797355bf9e7dc3352fe00 |
|
29-Nov-2010 |
Jason parks <jparks@google.com> |
Add decryption support to MountService. * 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
/frameworks/base/core/java/android/os/storage/IMountService.java
|
0a9b54e88b9cbb30748b5f0b331aec3f3ef8d639 |
|
14-Oct-2010 |
Kenny Root <kroot@google.com> |
resolved conflicts for merge of 8bb7a1df to master Change-Id: Ieec036f494a54eab74a27b954d1423bf981dd3f9
|
e1ff214e32ed5c546a7603b07b054908c4d93312 |
|
12-Oct-2010 |
Kenny Root <kroot@google.com> |
Add API to check for emulated external storage 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
/frameworks/base/core/java/android/os/storage/IMountService.java
|
af9d667ccf3e24058214cf4cc0a8aa8bc5100e3c |
|
08-Oct-2010 |
Kenny Root <kroot@google.com> |
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
/frameworks/base/core/java/android/os/storage/IMountService.java
|
be857d42849eaaa554d4772dbba7755f8a0f3547 |
|
19-Aug-2010 |
Kenny Root <kroot@google.com> |
Reorganize MountService IPC Remove auto-generated AIDL files and replace them with manually edited .java and .cpp/.h files so that binder calls can be made from either Java or C++. Update the makefiles to not attempt to generate the AIDL files and also remove the old auto-generated .java files. Put all the storage-related C++ things in libstorage so that we don't pollute other libraries. Change-Id: I82d1631295452709f12ff1270f36c3100e652806
/frameworks/base/core/java/android/os/storage/IMountService.java
|