c8b29ac6f0340bd0c3c9eb388c4be2d446de9a59 |
06-Jul-2017 |
Jeff Sharkey <jsharkey@android.com> |
Change storage migration to use quota APIs. New quota APIs are much faster than trying to measure manually, and removing this last user of calculateDirectorySize() means we can remove it once and for all. Bug: 36056324 Test: builds, boots Change-Id: Ibdf1ee4e8885680e106df6a9269b6309ddc61af8
efaultContainerService.java
|
9a4a45762219f43903f54d5f29157dc6b3881557 |
15-Apr-2017 |
Jeff Sharkey <jsharkey@android.com> |
Clear identity to handle ALLOCATE_AGGRESSIVE. We're not actually clearing any files, only deciding how much free space is available, so we're fine assuming the remote caller has the permission. Test: builds, boots Bug: 37169076 Change-Id: I6cd42f77c43e9d2de40e2b8b937c7f2145f1b869
efaultContainerService.java
|
dafb17e7eb9a15862ed1314dff2b82d29ad23632 |
03-Apr-2017 |
Jeff Sharkey <jsharkey@android.com> |
We really want f_frsize and f_bavail. It's confusing, but f_bsize is not the value you're looking for; the real block size is f_frsize. Fix all those bugs. Also, the vast majority of clients are interested in the usable disk space, not including reserved space. Test: builds, boots Bug: 36840579 Change-Id: Ib1470389afd49c14cab62282ec1e978ebb2c4791
efaultContainerService.java
|
88d2a3c0e1b4a8c53a489db5d627beb80b1b9957 |
23-Nov-2014 |
Jeff Sharkey <jsharkey@android.com> |
Introduce revision codes for split APKs. Apps delivered as multiple split APKs must have identical package names, version code, and signatures. However, developers may want to iterate quickly on a subset of splits without having to increment the version code, which would require delivery of the entire app. This change introduces "revision codes" which can vary between split APKs belonging to the same app. An install is valid as long as the normal version code is identical across all splits. Splits can be added/removed to an app over time, but if a split is present across an upgrade the revision code must not decrease. Since system apps could have been updated with splits, only revert to the built-in APKs if the version code is strictly greater than the data version. Also fix bug to enable inheriting from system apps when adding splits. Bug: 18481866 Change-Id: I34d8e14c141a8eb95c33ffe24b4e52d6af5c8260
efaultContainerService.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
efaultContainerService.java
|
bb7b7bea19223c1eba74f525c7fe87ca3911813b |
20-Aug-2014 |
Jeff Sharkey <jsharkey@android.com> |
More progress towards split APKs in ASECs. Teach DefaultContainerService to install split APKs, which will be needed when moving to/from ASECs. Also support forward locking for testing purposes, even though its deprecated. Move native library unpacking code to NativeLibraryHelper location where it can be shared by both DCS and PMS. Also update footprint calculation logic to mirror the later unpack codepaths. Immediately persist sealed sessions. When resolving install locations, prefer location of any existing install of that package. Lightweight parse requesting certificates now always verifies that all contents are signed correctly. Bug: 16514385 Change-Id: Ida1c4eb0f95b065104dd971e19126d4085ebf1f0
efaultContainerService.java
|
742e790294b3441b79f715fe447069b63c6065db |
17-Aug-2014 |
Jeff Sharkey <jsharkey@android.com> |
Progress towards staging ASECs. Move location selection logic into shared PackageHelper location, and share it between DCS and PackageInstaller. Fix bugs related to installed footprint calculation; always count unpacked native libs. Have PMS do its own threshold checking, since it's fine to stat devices. PMS only ever deleted staging ASECs, so move that logic into installer and nuke unclaimed staging ASECs. Allocate legacy ASEC names using PackageInstaller to make sure they don't conflict with sessions. Start wiring up session to allocate ASEC and pass through staged container for installation. Fix bug to actually delete invalid cluster-style installs. Bug: 16514385 Change-Id: I325e0c4422fc128398c921ba45fd73ecf05fc2a9
efaultContainerService.java
|
ff110bd61a69f7ed8602ae14b27f7befec76b2e7 |
04-Jul-2014 |
Narayan Kamath <narayan@google.com> |
Multi-arch application installs. Each application now has two ABIs, the primary and the secondary. The app is always launched with the primary, but the secondary might be used by other apps that load the given applications code. This implies we must: - dex2oat the app both ways. - extract shared libraries for both abis. The former is relatively straightforward but the latter requires us to change the layout for shared libs that we unpack from applications. The bulk of this change deals with the latter. This change continues to fill in nativeLibraryPath during scans for backwards compatibility. This will be removed in a future patch. Change-Id: Ia943dd11ef815c5cbfc60f17929eaa2a652a385a
efaultContainerService.java
|
d746057f2414cba2bdc69257cc5be8cb681bb592 |
07-Jul-2014 |
Jeff Sharkey <jsharkey@android.com> |
Change new file installs to be cluster-based! Now that all the other pieces are in place, we're ready to start installing new file-based packages as a cluster (the new unified directory-based layout). This greatly simplifies the renaming process. Also add helper methods to ApplicationInfo to give a much clearer mapping between it and internal field names, since we can't change the public API. Add recursive restorecon(). Bug: 14975160 Change-Id: I72a63c5ddbc594c2fec4a91dd59f73ef253fbfd7
efaultContainerService.java
|
be520fba1e45c77ca20eb66005a0cf19e10939a1 |
05-Jul-2014 |
Jeff Sharkey <jsharkey@android.com> |
Teach DCS about cluster packages. For the time being, DCS is going to still be doing heavy lifting for some install tasks, so it need to know how to handle both monolithic and cluster packages. This change is mostly plumbing work to eventually handle any various splits APKs that we may encounter. Bug: 14975160 Change-Id: I39848d5666f9083cb4eca493e5cdaa868f3f99fb
efaultContainerService.java
|
0c54798aac8a86fed24b14a66f09797d58ad0399 |
06-Jul-2014 |
Jeff Sharkey <jsharkey@android.com> |
Start removing ContainerEncryptionParams. The new PackageInstallerSession APIs will allow installers to deliver bits directly into system protected storage, so we no longer need encrypted containers. Change-Id: I8b598cb149b7dfd1d41e6626c1359610a573edf1
efaultContainerService.java
|
73767b9d607d99b3a027619b5c6b7f1a09b7673d |
05-Jul-2014 |
Jeff Sharkey <jsharkey@android.com> |
Extract native code from split APKs. In the new split APK world, multiple APKs work together to define a single package. This means that native code may be split among those APKs. To handle this, extend NativeLibraryHelper to examine all APKs in a package ordered by splitName. A package has valid native code as long as one matching ABI is found inside. The "best" ABI found across all APKs is picked for the entire package. No attempt is made to ensure that every native library defined is available for the picked ABI; that's the responsibility of the installer. Re-introduce PackageLite to represent a lightweight parsing of an entire package, which may be a single monolithic APK or a cluster of one or more APKs. Remove native code extraction from InstallerSession, since it'll be handled inside PMS for this release. Bug: 14975160 Change-Id: I4f4db0f82e88a46101c7777499ebc0a11fd911f9
efaultContainerService.java
|
57dcf5b177b56195421535938544f32d8b591b42 |
19-Jun-2014 |
Jeff Sharkey <jsharkey@android.com> |
Slow progress towards APK clusters. Differentiate between "split APKs" and "cluster packages". A cluster package is a directory containing zero or more APKs (base+splits), and a monolithic package is a single APK (base). PackageSetting will use the directory name as its codePath, so track the baseCodePath separately. Clarify documentation in several places. Require that all installers provide file:// URIs through existing hidden APIs; PackageInstaller hasn't been able to read content:// URIs for a long time. Bug: 14975160 Change-Id: I1c6fed1b55205c2474b09871161a98a26669d22e
efaultContainerService.java
|
cef0b39b9211882f59b6bfe1148e2cd247056693 |
12-Jun-2014 |
Narayan Kamath <narayan@google.com> |
Fix native crashes when APKs can't be opened. There was lax / incomplete error checking around the construction of Apk handles. This change changes the ApkHandle API and makes it throw IOException if the zipfile couldn't be opened. Additionally : - Fix a resource leak in DefaultContainerService - Report errors correctly during package moves. bug: 15563874 (cherry picked from commit ec4516470d7ce6e47769591d678c838bd3f6f388) Change-Id: Ia35b464355467d0d36faf34fae85acbbab3f2896
efaultContainerService.java
|
275e085d5a42ced54bb79e40ff76c77539e7d82d |
18-Jun-2014 |
Jeff Sharkey <jsharkey@android.com> |
Stronger PackageParser contract, more split work. Require that method callers always provide relevant paths, instead of relying on constructor. Move DisplayMetrics to be an overall parser parameter, and move PARSE_TRUSTED_OVERLAY to flags. Parse split APKs and apply deterministic ordering based on split names. Assert consistent package name and version code across all split APKs in a package, and enforce unique split names and required base APK. Collect certificates for split APKs, enforcing they're all signed consistently. Better flow control and resource cleanup when collecting certs. Refactor validation code so it's easier to reason about. Cleaner maintenance of read buffer when draining stream contents. Change-Id: I8bc8c62095fbb933227b9e76ad8771f4b1246fe8
efaultContainerService.java
|
c4858a2ba972e86436d629c4d3f18eb49116de14 |
16-Jun-2014 |
Jeff Sharkey <jsharkey@android.com> |
Switch PackageParser to reference single path. It previously kept mPath separate from mScanPath for some very odd edge cases around moving apps-on-SD. This changes it to always use a single path, refactors moving to keep separate paths. Refactors method names in PackageParser to be clearer about their APK-versus-package relationship. Beginnings of a split package parser. Instead of requiring that callers check error codes when null, switch to always throwing on parse errors, to require that callers deal with the error. Longer term the entire parser should switch to this style, but its too pervasive for a simple refactoring. Change-Id: If071d8e55e46e56cc201fadfb51cb471713ae973
efaultContainerService.java
|
26c6c03196be0248f3cf3e71383d89268f645bf5 |
03-Jun-2014 |
Narayan Kamath <narayan@google.com> |
Fix build. Bad resolution of a manual rebase. Change-Id: I56d4c7a343c8fd7a715f983b2db15767849f9af7
efaultContainerService.java
|
d47e38b6342fea93b007319431634a4bcfee452c |
16-May-2014 |
Narayan Kamath <narayan@google.com> |
Scan for renderscript files before deciding ABIs. The presence of ".bc" files in an APK implies incompatibility with any of the 64 bit ABIs. bug: 14900093 Change-Id: I66ca339a9a149cb3b7e7b349033d80acdeb4140a
efaultContainerService.java
|
6431d11cd420536aaa9d93ae510a3151ccc4df1d |
29-May-2014 |
Narayan Kamath <narayan@google.com> |
Add an --abi argument to "pm install" This allows callers to force an install to a particular ABI. This is intended only for testing (and CTS) and is not meant for usage by the installer package. Change-Id: Icb1528c0cd35b1aa9323386cb35ff4aaba374fcb
efaultContainerService.java
|
34385d352da19805ae948215e2edbeedd16b7941 |
28-Apr-2014 |
Elliott Hughes <enh@google.com> |
Track libcore.os' move to android.system. (This is partial, but should cover everything in AOSP master except for the zygote.) Change-Id: I1042c99245765746a744c44e714095cb2c6cb75d
efaultContainerService.java
|
1378aba7aeeb7f6dd6cc2503968ba7b0e58d9333 |
28-Feb-2014 |
Ramin Zaghi <ramin.zaghi@arm.com> |
Re-implement native library search and copies. We now use a two step approach : - First we look through the list of shared libraries in an APK, and choose an ABI based on the (priority) list of ABIs a given device supports. - Then we look through the list of shared libraries and copy all shared libraries that match the ABI we've selected. This fixes a long-standing bug where we would sometimes copy a mixture of different ABIs to the device, and also allows us to clearly pick an ABI to run an app with. The code in NativeLibraryHelper has been refactored so that all file name validation & matching logic is done in a single place (NativeLibrariesIterator). This allows us to avoid a lot of redundant logic and straightens out a few corner cases (for eg. where the abi determination & copying logic do not agree on what files to skip). bug: https://code.google.com/p/android/issues/detail?id=65053 bug: 13647418 Change-Id: I34d08353f24115b0f6b800a7eda3ac427fa25fef Co-Authored-By: Zhenghua Wang <zhenghua.wang0923@gmail.com> Co-Authored-By: Ramin Zaghi <ramin.zaghi@arm.com> Co-Authored-By: Narayan Kamath <narayan@google.com>
efaultContainerService.java
|
7f392defccfae54dc8169e5ad82c2616e0713c8e |
12-Aug-2013 |
Jeff Sharkey <jsharkey@android.com> |
Catch a few extra users of UserEnvironment. Change-Id: I3112773b72c329893e4118ef1c4f4087d899139e
efaultContainerService.java
|
a7ac8be1f564ad27c0b1f4796b60f3eaaa8dc611 |
11-Jul-2013 |
Elliott Hughes <enh@google.com> |
am dff4ec87: am e16a21c6: resolved conflicts for merge of 4a59376d to stage-aosp-master * commit 'dff4ec87e7b942b7b4410f639fc74c2cffb386d6': Track libcore API change.
|
e16a21c6b4f108813e5f5e00f30e0ff075de504c |
10-Jul-2013 |
Elliott Hughes <enh@google.com> |
resolved conflicts for merge of 4a59376d to stage-aosp-master Change-Id: I0e40180b46dc58781c218b8d382299dab73d49cc
|
befd0b1bdfb4492425944a1b7fcf6d10eaed9b4c |
09-Jul-2013 |
Elliott Hughes <enh@google.com> |
Track libcore API change. Change-Id: Ib818a7f21325c5f918bf497033a90d76b25ec9e7
efaultContainerService.java
|
5adb34f022bdc856e98483579a299f89a3c28d5c |
25-Apr-2013 |
Jeff Sharkey <jsharkey@android.com> |
Always close incoming PFD to avoid leaking. Change-Id: I9559bb1e83c9bf2f9fd2af9c7b0d8b9e3aadc4ae
efaultContainerService.java
|
63d0a067997cecf9c6e97a17852f9b657bbba48e |
02-Mar-2013 |
Jeff Sharkey <jsharkey@android.com> |
Improve performance of storage measurement. When calculating directory sizes of data living on emulated external storage, translate the path to use the internal backing data, which avoids going through the emulation layer. It carefully retreats to the original path when it runs into trouble. Testing with a hierarchy of 10 directories deep and 2 directories and 10 files wide at each level, this change improves performance from 5900ms before to 250ms after; over 20 times faster (!). Bug: 8172425 Change-Id: Ia7365416f091e102bf7345a49f7d7209a22580a9
efaultContainerService.java
|
40e9f2922cae76ffcbc521481e5be8e80e8744ef |
28-Nov-2012 |
Dianne Hackborn <hackbod@google.com> |
Quiet down a lot of logging. Also fix a little problem where the USER_STARTED broadcasts were not being sent as ordered broadcasts(!). Change-Id: I3aa3e0a9b3900967cdd2d115ee103371b0a50c41
efaultContainerService.java
|
cea3743499f4bb8e5f28a2e57686d7af313169c5 |
18-Oct-2012 |
Kenny Root <kroot@google.com> |
Try to free cache before giving up on install Try to get installd to free up cache before giving up when there is too little space free. Bug: 7232123 Change-Id: Ie3c8ca8dfc190abbb9a29a7baee31f32e9de7d69
efaultContainerService.java
|
625239a05401bbf18b04d9874cea3f82da7c29a1 |
27-Sep-2012 |
Jeff Sharkey <jsharkey@android.com> |
Migrate more Secure settings to Global. Migrate networking, storage, battery, DropBox, and PackageManager related Secure settings to Global table. Bug: 7232014, 7231331, 7231198 Change-Id: I772c2a9586a2f708c9db95622477f235064b8f4d
efaultContainerService.java
|
752cd922f7091dfd5401faf70dc248934a9dbb6d |
24-Sep-2012 |
Jeff Sharkey <jsharkey@android.com> |
Always bind to DefaultContainerService as OWNER. When PackageManagerService deals with external storage, always bind to DefaultContainerService as USER_OWNER. This avoids binding to a stopped user, which would fail. Bug: 7203111 Change-Id: I8e303c7558e8b5cbe4fea0acc9a472b598df0caa
efaultContainerService.java
|
7767eac3232ba2fb9828766813cdb481d6a97584 |
24-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Keep track of whether an app is installed for each user. This add a new per-user state for an app, indicating whether it is installed for that user. All system apps are always installed for all users (we still use disable to "uninstall" them). Now when you call into the package manager to install an app, it will only install the app for that user unless you supply a flag saying to install for all users. Only being installed for the user is just the normal install state, but all other users have marked in their state for that app that it is not installed. When you call the package manager APIs for information about apps, uninstalled apps are treated as really being not visible (somewhat more-so than disabled apps), unless you use the GET_UNINSTALLED_PACKAGES flag. If another user calls to install an app that is already installed, just not for them, then the normal install process takes place but in addition that user's installed state is toggled on. The package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED, PACKAGE_REPLACED etc broadcasts to users who don't have a package installed or not being involved in a change in the install state. There are a few things that are not quite right with this -- for example if you go through a full install (with a new apk) of an app for one user who doesn't have it already installed, you will still get the PACKAGED_REPLACED messages even though this is technically the first install for your user. I'm not sure how much of an issue this is. When you call the existing API to uninstall an app, this toggles the installed state of the app for that user to be off. Only if that is the last user user that has the app uinstalled will it actually be removed from the device. Again there is a new flag you can pass in to force the app to be uninstalled for all users. Also fixed issues with cleaning external storage of apps, which was not dealing with multiple users. We now keep track of cleaning each user for each package. Change-Id: I00e66452b149defc08c5e0183fa673f532465ed5
efaultContainerService.java
|
183ce028f10442dd6ada59de8fa531d690134663 |
30-Jun-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #6761130: Clearing app data in settings does not clear app's USB storage The package manager calls to clear data / clear cache were not also having default container service clear the data on external storage. Now they do. Change-Id: Ib5e5eb6adf2cac5a4cc094cc1a02ac8cfb6a2edf
efaultContainerService.java
|
a69b7eb1fc6ab6f47411493a17463fe7a43b8b3f |
14-May-2012 |
Kenny Root <kroot@google.com> |
Change thread priority for disk measurement to bg Change the thread priority for all disk measurement and statfs calls to background priority. Also move the measurement fully into the measurement task since it makes more sense. Bug: 6332097 Change-Id: Iafc2151313ad9b14117daf67e933dccd32f68d54
efaultContainerService.java
|
103d53005e7a3c2735f4ac76fa9b795a7e7e39d7 |
10-May-2012 |
Kenny Root <kroot@google.com> |
Use long instead of int for file offsets Use long instead of int so we don't run into a 2GB file limit. Fix possible overflows in offset and length. Change-Id: Idb3a34f5600f9c2372b9c89256f21757049fa43b
efaultContainerService.java
|
ceb1b0bfaea56251796b08c07b963de7403d84eb |
24-Apr-2012 |
Anonymous Coward <nobody@android.com> |
Add encryption parameters to package installation Change-Id: Ic9f8ab9f8110f08bb3c00725cfce5b8ee7b766f3
efaultContainerService.java
|
bf023589b3d9994f43823c7cb0450d278b084f9b |
03-May-2012 |
Kenny Root <kroot@google.com> |
Fix some problems with ASECs On devices that had external storage, permissions weren't set correctly on non-forward-locked applications. Also, moving forward locked applications didn't work since DefaultContainerService wasn't able to read it. Fixed some faulty unit tests as well. Bug: 6427212 Change-Id: I5c1f0bf5278549069c78939f0708c4c43a7d4006
efaultContainerService.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
efaultContainerService.java
|
9cbe986a446dffea2e9f59b86800f834b02d766a |
23-Apr-2012 |
Jeff Sharkey <jsharkey@android.com> |
Expose statfs() through IMediaContainerService. Bug: 6346248 Change-Id: I03ae02578f546fc9f19652cbdece56e2e0ab6a1c
efaultContainerService.java
|
05ca4c90644921df9193d92b2abdc81ef77e4a62 |
15-Sep-2011 |
Kenny Root <kroot@google.com> |
Allow non-required package verifiers * Verifiers can be specified in the AndroidManifest.xml * Those verifiers can respond to the new Intent action * PackageManager API for those verifiers: verifyPendingInstall Change-Id: I4892bce2e6984871e6e93c60a1ca0dae145f5df5
efaultContainerService.java
|
61942c579dd8d30f77a9a501b31bd7a485b0d4bc |
15-Aug-2011 |
Kenny Root <kroot@google.com> |
Fix external size calculations Unfortunately fixed internal size calculations for HC, but never the external size calculations. Bug: 5113898 Change-Id: Idfe8af0ba74a20aa767eb9abac431ee1c74dcf8e
efaultContainerService.java
|
f5121a9b802c6ddd3661ed5cae602380dbe67090 |
11-Aug-2011 |
Kenny Root <kroot@google.com> |
Better errors from copyResource Copy resource would fail without a good error code when the file couldn't be found during copy. Also destroy the target container ID during move operations since it might exist. If the copy failed due to it existing, it would get destroyed anyway. This way the user has a chance to have a good outcome the first time. Bug: 3375299 Bug: 5113898 Change-Id: I00559833f0801bc50e7cc031b462495e37a6b4ab
efaultContainerService.java
|
1ebd74acf9977daa42133507e970dab88e08f0ef |
04-Aug-2011 |
Kenny Root <kroot@google.com> |
Better error codes for missing files Make sure that files that don't exist aren't returning bogus 'out of space' error codes. Add some Javadoc so I can remember what each thing does in an IDE. Add copyright header to NativeLibraryHelper Bug: 3375299 Change-Id: Iac46019160921daca65b21d38897e5165063316e
efaultContainerService.java
|
66269ea6f68f2f25888ce1080c94ac782742fafc |
12-Jul-2011 |
Kenny Root <kroot@google.com> |
Move extract native libraries to JNI code The built-in ZipFile class was quite a long time to find an unpack libraries. Move everything to using the libutils ZipFileRO class that goes quite a bit faster. Initial measurements are 6 times faster than the Java code. Also, read files off the disk and compare their CRC against the APK's CRC to see if we need to write the new file to disk. This also cuts down the bootup time by up to a second per APK that has native files. Change-Id: Ic464a7969a17368fb6a6b81d026888c4136c7603
efaultContainerService.java
|
62e1b4e9d41a01db423b5e4684ecf529ed46106d |
15-Mar-2011 |
Kenny Root <kroot@google.com> |
Revise free space checks for package installs Change-Id: Ie72bbab77aa89a50ec096edc1f471eab74829e67
efaultContainerService.java
|
300c13a48132f03d48462b9cd3ec41331a71a411 |
18-Jan-2011 |
Kenny Root <kroot@google.com> |
Erase OBB files when removing packages OBB files on USB storage or SD card should be removed when an application is removed. Bug: 3356804 Change-Id: Ifbbf043368b125fcd47fd74e5cd2e5167a8deb00
efaultContainerService.java
|
366949c2d934435ff9ef8082408ca36ff14a2241 |
15-Jan-2011 |
Kenny Root <kroot@google.com> |
Put externalSize measurements in PackageStats When measuring a package's usage, put the external size in the PackageStats as well. This will allow programs using a lot of space on the external card to be held accountable. Bug: 3308791 Change-Id: If2df07bdbf6ffb31577074fad8f4a87ca4e89086
efaultContainerService.java
|
aa183e2c9a279cb6aef7dc77855facfae795b6f8 |
03-Dec-2010 |
Kenny Root <kroot@google.com> |
Add measurement API to DefaultContainerService System applications that don't have "media_rw" access need some way to measure the size of directories on the SD card and other internal media. Add this API to DefaultContainerService so they can simply bind to the service and make an RPC. Bug: 3203974 Change-Id: I4e1bcd7a1b702b156c011ecc04f6915022cb258a
efaultContainerService.java
easurementUtils.java
|
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
efaultContainerService.java
|
735de3b38abbd6564082a819377673ee593744a6 |
30-Sep-2010 |
Kenny Root <kroot@google.com> |
Hash keys with MD5; track IBinders not IInterface 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
efaultContainerService.java
|
05105f7abe02b2dff91d6260b3628c8b97816bab |
23-Sep-2010 |
Kenny Root <kroot@google.com> |
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
efaultContainerService.java
|
85387d7ba36e56b291cbde87acb5a5b2200fe01c |
26-Aug-2010 |
Kenny Root <kroot@google.com> |
Allow native shared libraries in ASEC containers This change moves the native library handling earlier in the package installation process so that it may be inserted into ASEC containers before they are finalized in the DefaultContainerService. Note that native libraries on SD card requires that vold mount ASEC containers without the "noexec" flag on the mount point. Change-Id: Ib34b1886bf6f94b99bb7b3781db6e9b5a58807ba
efaultContainerService.java
|
a02b8b05dd1e8b8cf169e1f89542ef835b11fc13 |
06-Aug-2010 |
Kenny Root <kroot@google.com> |
Move OBB file reading to DefaultContainerService The system_server shouldn't touch files on the SD card. This change moves the things that touch the SD card out to the DefaultContainerService so that it will get killed if the SD card goes away instead of the system_server. Change-Id: I0aefa085be4b194768527195532ee6dddc801cfc
efaultContainerService.java
|
930d3af75f9e9663222f4c4a1d75b326cf811e35 |
31-Jul-2010 |
Kenny Root <kroot@google.com> |
Do not deference before null check The return of parsePackageLite wasn't checked until after it was deferenced. Move the deference below the null check and remove redundant set. Bug: 2852726 Change-Id: I3eaaea5050948145eed44b64507dc846993d98eb
efaultContainerService.java
|
d345bb6e5b42ff644ce224fe57e4d7b4e546a48d |
22-Apr-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Fix error code when media is filled up. Change-Id: Id8dae2e7c967e3f103aecd2f31abb7e292af8f1d
efaultContainerService.java
|
315a5fb91dbafe6073435a13d937cee9d26877f6 |
13-Apr-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Dont fall back to installing on sdcard when internal storage is filled up when the install location is set to internal only. Similary if install location is set to external only(via adb), dont fall back to installing on internal storage if sdcard is filled up. If nothing is specified ie install location is set to let system decide, we just check on internal storage. Fix tests Change-Id: I7400ccc131782d9c45284bd9ebd0dee43a3b412b
efaultContainerService.java
|
40e472521a544f26cb6956995788f7c36fff1404 |
08-Apr-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Fix 2579461 Move install location values to secure settings. Diable attribute for UI. Set default value to auto. Add command line interface to set install location via pm. Change-Id: I80e97b3d24845adad7102f40dcbe238f00efa406
efaultContainerService.java
|
14b6abda1309631d49d4bebbb0317a7e1dfc0a50 |
17-Mar-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Add new install flag to install on internal flash only Change default install location policy for new flag. New error code for media unavailable. Change-Id: I5a5d0828b067692b2b94a15a2bcc7534f796c1a2
efaultContainerService.java
|
8a9ab24a5c9b595ac0268fcade4b5bbfe7c45c2d |
12-Mar-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Do storage checks before initiating a move. Add new remote method to check for insufficient error conditions. Some fixes in MountService when updating media status on PackageManagerService Fix size calculation condition in installd. Add new error code if media is unavailable. New tests for testing error codes. Some additional debugging statements in MountService. Change-Id: Ibfe90d5ed6c71d57f9c1c67806f38b5ae9ecdfbf
efaultContainerService.java
|
15a4d2ffd04dc6c70f2cd17dae12ac6bc14c69ab |
12-Mar-2010 |
Kenny Root <kroot@google.com> |
Add correct copyright headers to multiple files Format for the list of changes shows the origin commit reference followed by the file name. 33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java 33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java 133776-p9 core/java/android/app/IntentService.java 127013-p9 core/java/android/appwidget/AppWidgetHost.java 27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java 60765-p9 core/java/android/content/SyncResult.java 43920-p9 core/java/android/content/pm/ActivityInfo.java 43920-p9 core/java/android/content/pm/ApplicationInfo.java 43920-p9 core/java/android/content/pm/InstrumentationInfo.java 43920-p9 core/java/android/content/pm/PackageInfo.java 44103-p9 core/java/android/content/pm/PackageItemInfo.java 68960-p9 core/java/android/content/pm/PackageStats.java 43920-p9 core/java/android/content/pm/ResolveInfo.java 43920-p9 core/java/android/content/pm/ServiceInfo.java 60641-p9 core/java/android/content/res/Configuration.java 60734-p9 core/java/android/content/res/TypedArray.java 137672-p9 core/java/android/inputmethodservice/ExtractButton.java 123112-p9 core/java/android/inputmethodservice/ExtractEditText.java 119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java 112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java 115078-p9 core/java/android/os/BatteryStats.java 124790-p9 core/java/android/text/style/UpdateAppearance.java 45083-p9 core/java/android/view/RawInputEvent.java 101491-p9 core/java/android/view/inputmethod/EditorInfo.java 114701-p9 core/java/android/view/inputmethod/ExtractedText.java 123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java 119291-p9 core/java/com/android/internal/os/HandlerCaller.java 129279-p9 core/java/com/android/internal/os/PkgUsageStats.java 114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java 114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java 84364-p9 opengl/java/android/opengl/EGLLogWrapper.java 11355-p9 opengl/tools/glgen/src/CFunc.java 11355-p9 opengl/tools/glgen/src/CType.java 11355-p9 opengl/tools/glgen/src/CodeEmitter.java 11355-p9 opengl/tools/glgen/src/GenerateGL.java 11355-p9 opengl/tools/glgen/src/JFunc.java 11355-p9 opengl/tools/glgen/src/JType.java 11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java 11355-p9 opengl/tools/glgen/src/ParameterChecker.java 57236-p9 services/java/com/android/server/status/AnimatedImageView.java 66754-p9 services/java/com/android/server/status/CloseDragHandle.java 57188-p9 services/java/com/android/server/status/DateView.java 46928-p9 services/java/com/android/server/status/ExpandedView.java 70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java 45968-p9 services/java/com/android/server/status/IconData.java 57470-p9 services/java/com/android/server/status/IconMerger.java 82719-p9 services/java/com/android/server/status/LatestItemView.java 45968-p9 services/java/com/android/server/status/NotificationData.java 66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java 57458-p9 services/java/com/android/server/status/NotificationViewList.java 45968-p9 services/java/com/android/server/status/StatusBarException.java 45968-p9 services/java/com/android/server/status/StatusBarIcon.java 46130-p9 services/java/com/android/server/status/StatusBarNotification.java 45968-p9 services/java/com/android/server/status/StatusBarView.java 46199-p9 services/java/com/android/server/status/Ticker.java 62286-p9 services/java/com/android/server/status/TickerView.java 57188-p9 services/java/com/android/server/status/TrackingView.java 86041-p9 telephony/java/android/telephony/PhoneStateListener.java 87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java 136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java 34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java 55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java 127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java 129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java 129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java 128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java 25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java 46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java 77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java 9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java 53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java 93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java 328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java 307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java 307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java eb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java 49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java a2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java 3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java 5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java c4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java 9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java 21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java 4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java 4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java e540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java 192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java 1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java 27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java 560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java 560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java 560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java 1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java 1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java 1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java 69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java c028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java 7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java 7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java 7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java df8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java Copyright header moved to top in following file: core/tests/coretests/src/android/widget/ListViewTest.java Change-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418
efaultContainerService.java
|
089262dc022d87e31eefc536025be6c015c7ebde |
10-Mar-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Dont include code size for apps on sdcard. Use constants defined in PackageHelper for user preferences to install auto, internal, external. Set default install location to external. Update settings db version number Change-Id: Ib5110c9377990e20a48cee923e55898dfddfd1e6
efaultContainerService.java
|
a2b6c3775ed6b8924232d6a01bae4a19740a15f8 |
06-Mar-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Add conditions to check for updated system applications. Restrict them to internal flash only even before we copy. Return error codes when install flag options mismatch. Some conditions for existings apps - install flags override existing location - explicity manifest option install location overrides previous location - if upgraded package's install location is unspecified or auto, fall back to recommended install policy which considers user setting as well. Check for sdcard status before finding available size on sdcard Add light weight parsing for manifest attributes including package name and install location only Change-Id: I5143dda87c88c595f564b317326c926d0ec3ceb8
efaultContainerService.java
|
3602f76d417b0940a26f28b7ad892abcfe03ef7c |
04-Mar-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Null check for scheme. If scheme is unspecified let package parse continue. We will return errors if parsing fails anyway. If scheme is not null, restrict it to being a file uri.
efaultContainerService.java
|
9b10ef5fe85e9d29721ff0cd15161f960d38a8db |
03-Mar-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Rework the way PackageManager binds to default container service. Clean up stale containers when enabling/disabling packages on sdcard. Check the path of packages which are being enabled. Make sure gc's are done prior to destroying containers when moving applicati as well as enabling/disabling packages for sdcard mount status changes. Some miscellaneous issues Remove hack to avoid renaming containers. Fix test with forward locked apps Remove adding container id to asec list when renaming Some cosmetic changes to DefaultContainerService
efaultContainerService.java
|
cf6eaeaae9e6745dd6e07540812c79821d7043c2 |
24-Feb-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Some framework fixes for apps on sd change hard coded path in installd fix tests Work around for renaming containers. Do forced unmount when destroying containers. Force a gc in default container service to release handle to parsed package and thus avoid getting killed by vold Some cosmetic changes to PackageManager api. Unit tests for renaming container for MountService Remove internal size limit on app to be installed.
efaultContainerService.java
|
8946dd3355fc1dcbad872c0546e356474d4cc5de |
19-Feb-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Move package from internal to external and vice versa.
efaultContainerService.java
|
679bba339ef6948091180c776d6a284cddd812f5 |
16-Feb-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Move mount service wrapper calls to PackageHelper Fix bug related to forward locked apps.
efaultContainerService.java
|
5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2 |
12-Feb-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests DefaultContainerService first parses the file uri(if content uri is specified it returns a default install internal only value) and returns a recommended location. Based on which the temporary id is determined either a file name or a container id and the file is copied there. This is then later renamed during install. Todo's light weight parsing of package when determining location since we just need the install location attribute only when finding out recomended location. This will also enable to move the check for updated system apps(cannot be on sdcard) prior to copying.
efaultContainerService.java
|
e83cefcef07f9ac025642c1ffec76b4c7ab39cf2 |
05-Feb-2010 |
Dianne Hackborn <hackbod@google.com> |
New external storage APIs. This implements the spec for external storage organization, and properly reflects how the media scanner organizes the files it finds. Also includes package manager support for removing app private files from external storage when the application is uninstalled. For the new APIs and paths, the main place to look is Environment and Context.
efaultContainerService.java
|
b104340496e3a531e26c8f428c808eca0e039f50 |
05-Feb-2010 |
San Mehat <san@google.com> |
Framework: Clean up / Refactor Mount APIs - Move android.storage.* -> android.os.storage.* and refactor users - Refactor generic shares back to explicit ums enable/disable/isEnabled - Remove media insert/removed event callbacks (not ready for Froyo) - Remove 'label' from volume state change callbacks - Add public API functions for enabling/disabling USB mass storage (permissions enforced in MountSevice) - Remove some stray un-needed import lines - Move android.os.IMountService / android.os.IMountServiceListener -> android.os.storage - Improve code comments Updated: MountService: Add dup state check and move debugging behind a conditional UsbStorageActivity: Fix review comments + a TODO StorageNotification: Add @Override tags StorageManager: Don't use a static Listener list MountService: Reduce bloat and fix == where I meant .equals() PackageManagerTests: Update for new API Signed-off-by: San Mehat <san@google.com>
efaultContainerService.java
|
08675a3376819a82aa5ab344bc3e7b1635c30b05 |
28-Jan-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
Apps on sdcard: Add new broadcasts Add new broadcasts ACTION_MEDIA_RESOURCES_AVAILABLE and ACTION_MEDIA_RESOURCES_UNAVAILABLE that get broadcast by PackageManagerService when sdcard gets mounted/unmounted by MountService so that packages on sdcard get recognized by various system services as being installed/available or removed/unavailable by the system. The broadcasts are sent before the actual package cleanup which includes mounting/unmounting the packages and we force a gc right after so that any lingering file references to resources on sdcard get released.
efaultContainerService.java
|
63d15ee6ae4ff5079c7551ca4131c6d7f23ad91c |
29-Jan-2010 |
San Mehat <san@google.com> |
DefaultContainerService: Refactor MountService calls (new api) Signed-off-by: San Mehat <san@google.com>
efaultContainerService.java
|
c028be4f3b8c7476b46859f66c3f33d528adf181 |
25-Jan-2010 |
Suchi Amalapurapu <asuchitra@google.com> |
AppsOnSd feature - Add default container Add new remote interface to do temporary copies. The new remote stub handling is done on mHandler thread and doesn't need locking for now. Add new InstallArgs class and subclasses to isolate cases for installation. Move resource deletion for failed installs/upgrades to later on in installation cycle. Fix code path for forward locked apps when using scanPackageLI TODO's Fix installation paths to completely use InstallArgs based design later on. Get rid of using flags in various install/uninstall code paths. Ideally InstallArgs should be created using these flags and used in the rest of the code. Function renames. Revisit mount api's.
efaultContainerService.java
|