972b2c236ef005eb24cc01719ec4469dba517f74 |
|
05-May-2017 |
Nicolas Geoffray <ngeoffray@google.com> |
Remove obsolete DEXOPT_SAFEMODE. PackageManager side of the change. bug:37929796 Test: build Change-Id: Iae830bb4060b448b4b4e54d3e0fe03ebee39d3fa (cherry picked from commit 56123bacff220e6ac77a1179197578d3a62ecdd2)
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
9b5a06037f80dff46218b1611862c1fd2b3df8b2 |
|
03-May-2017 |
Nicolas Geoffray <ngeoffray@google.com> |
Handle safe mode in PackageManager. PackageManager side of the change. bug:37929796 Test: manual OTA with a safemode app. (cherry picked from commit d093b203f557685de33179bff0eb35ea205294a2) Change-Id: Icee7f7174d28bed79fc2cde4c174ee002d182832
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
989618a48e049405333a0a36bdbb26b77fdba1c2 |
|
05-May-2017 |
Nicolas Geoffray <ngeoffray@google.com> |
Merge "Adjust forced dexopt in case of stripped APKs." into oc-dev
|
8a5845e69b4a5fa0a37149b8ea28251e84db31f7 |
|
03-May-2017 |
Nicolas Geoffray <ngeoffray@google.com> |
Adjust forced dexopt in case of stripped APKs. We cannot compile from scratch for strip APK. So if getDexOptNeeded returns NotNeeded, pretend there was a compiler filter change, in order to pick up the vdex file. bug: 37558732 Test: "adb shell cmd package compile" of a stripped /system apk (cherry picked from commit 96d12a93aeffb8f6db80a7b415cb7d4eb2c4198c) Change-Id: I3b699a18799ea035ff78c60578c08f8803a17e36
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
bca6bd2b8c45020ec19e81b19b14370e72c03df4 |
|
04-May-2017 |
Fyodor Kupolov <fkupolov@google.com> |
Merge "Use timeout for *dexopt* wake lock" into oc-dev
|
28f2855c3dbf0c7658d7f458fabb7c01d68e6f37 |
|
02-May-2017 |
Fyodor Kupolov <fkupolov@google.com> |
Use timeout for *dexopt* wake lock There are reports of *dexopt* lock being held for 10+ minutes, which shouldn't normally happen on threads that are monitored by the Watchdog. Added logging to help detecting that. The lock is now held with a timeout of WAKELOCK_TIMEOUT_MS. It is set to a higher value than PM's watchdog timeout for easier reading from a timing histogram. Test: Manual, device boots without errors Bug: 37756892 Change-Id: Iac569474d1c95447e08fe5e9870e4518b8d22c65
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
d1326526104648e7b329c02af32e432b89adfc71 |
|
25-Apr-2017 |
Nicolas Geoffray <ngeoffray@google.com> |
Update frameworks/base to new compiler filters. Also fix a merge issue with duplicated code. bug:34715556 Test: build and boot aosp bullhead (cherry picked from commit be7b0d18a7d68aa79dc8256ee904f0a94767d5d9) Change-Id: I2c716427ac10090a694ce933421e4924748b0c71
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
5def5e5560a9f6fec1f323fdf85a8d5cb01ecec5 |
|
19-Apr-2017 |
Jeff Hao <jeffhao@google.com> |
Gather shared libs for split apks based on dependencies. Traverses split dependency hierarchy to determine what the split paths should be to add to the shared libs to pass down to dex2oat. Bug: 34169257 Bug: 37480811 Test: cts-tradefed run singleCommand cts -d --module CtsAppSecurityHostTestCases -t android.appsecurity.cts.SplitTests Checked not only that CTS tests pass, but that shared libraries match and collision checks are not being performed. E.g. testInstallAllFeatureSplits has dependencies where: APK_BASE <- APK_FEATURE_A <- APK_FEATURE_B and APK_BASE <- APK_FEATURE_C. Shared libraries passed to dex2oat: for base.apk: /system/framework/android.test.runner.jar for feature_a: /system/framework/android.test.runner.jar:base.apk for feature_b: /system/framework/android.test.runner.jar:base.apk:split_feature_a.apk for feature_c: /system/framework/android.test.runner.jar:base.apk Change-Id: I77098452887e3a498c121be59ce1eda98b80f3e9
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
c6687daa3b64c8fd4d3a6f330122bd7042df8631 |
|
06-Apr-2017 |
Jeff Hao <jeffhao@google.com> |
Handle shared libraries for split apks. As we dexopt all the code paths of a package, we now append the code paths to the list of shared libraries. These paths are passed as relative paths since the apks are staged during installation, and are not where they will be at runtime. Part of a multi-project change. Bug: 34169257 Test: cts-tradefed run singleCommand cts -d --module CtsAppSecurityHostTestCases -t android.appsecurity.cts.SplitTests (cherry-picked from commit 832641bb7205126829d425401a5262ab2e26fa80) Change-Id: I28b1f8db6035ec62a5947679ed09013b1f9523a2
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
31762dd9a0d02c291d7b4282a8c398177a89ae6d |
|
07-Apr-2017 |
Calin Juravle <calin@google.com> |
Merge "Pass SElinux info to installd dexopt" into oc-dev
|
539128f6d652d0a38cede9cb4dbb9888f89ffbcf |
|
06-Apr-2017 |
Calin Juravle <calin@google.com> |
Merge "Keep track of protected data dirs in DexManager" into oc-dev
|
811a75a0c0dbe211ccabdfbfba60c8f76d5738eb |
|
06-Apr-2017 |
Calin Juravle <calin@google.com> |
Pass SElinux info to installd dexopt For secondary dex files, the oat directory is created on the fly. We need to make sure we restore the SElinux context after the oat files are generated. To do that we need to pass the app SElinux info to installd dexopt. Bug: 36896515 Test: adb shell cmd package compile -r bg-dexopt --secondary-dex com.google.android.gms adb shell ls /data/user_de/0/com.google.android.gms/app_chimera/m/0000000c/oat/arm64/ -Z youtube loads gms modules without extracting from apk Change-Id: I5be34b42a509701f6222ca52bec4761c161ec6eb
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
adbadd5577d2b1291d10146b6ffb5577cf236528 |
|
29-Mar-2017 |
Calin Juravle <calin@google.com> |
Keep track of protected data dirs in DexManager Apps may store data in any of their protected dirs (deviceProtectedDataDir or credentialProtectedDataDir). DexManager used to keep track of only the default data directory, which could be any of them. The CL adds support for all protected dirs. Test: runtest -x services/tests/servicestests/src/com/android/server/pm/dex/DexManagerTests.java check that all of gmscore modules get recorded and compiled with adb shell cmd package compile --secondary com.android.google.gms Bug: 32871170 Change-Id: Id98904ce9e9fc8bb060b01c6fbb9ccce8f7f5328
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
efb1c943598f4969855b4a8e181921b9b11718b8 |
|
05-Apr-2017 |
Calin Juravle <calin@google.com> |
Fix dex flags for secondary dex files getDexFlags should always be called after getRealCompilerFilter. Otherwise public dex files might be considered private and their oat file will not be readable by others. Bug: 36896515 Test: adb shell cmd package compile -r bg-dexopt --secondary-dex com.google.android.gms check that the oat directory and files have the right permissions Change-Id: Ic91957f155c2008ed59a7e2ba14732e5af88d12a
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
07b6eabe79261267ecd7114790e96e1f6828672a |
|
02-Mar-2017 |
Calin Juravle <calin@google.com> |
Use DexManager logic to decide if a package is used by other apps Stop relying on the file marker recorded by the runtime. We have the same data available from the DexManager. The clean up CL to remove the handling of the file markers will follow. Test: verify that "shared packages" (e.g. gmscore) are not compiled with speed-profile. Bug: 32871170 Change-Id: I6cc5834ac88489e69896cd5fba9ed9968aa7f5a2
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
aae35767b6bca6f872c906a0fd38d7adb61217bd |
|
15-Feb-2017 |
Calin Juravle <calin@google.com> |
Skip class path checking for secondary dex files Pass '&' marker to dex2oat classpath when compiling secondary dex files. This will skip class path checking when loading the oat files. Test: adb shell cmd package compile -m speed -f --secondary-dex com.google.android.gms oatdump --header-only --oat- file=/data/user/0/com.google.android.gms/app_chimera/m/00000006/oat/arm64/DynamiteModulesC_GmsCore_prodmnc_alldpi_release check that the class path contains the special '&' marker Bug: 32871170 Change-Id: If0628aeb4e3f5717604bfc4a87a4b1d438e5fa65
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
c22c30ed1c05c5c24185dc4d380d1c5026923d46 |
|
17-Jan-2017 |
Calin Juravle <calin@google.com> |
Compile secondary dex files in DexManager Add logic for secondary dex compilation in DexManager. Also, extend the `cmd package compile` command with '--secondary-dex' option which will compile all used secondary dex files for the given package. Test: flash & boot, cmd package compile --secondary-dex -f -m speed com.google.android.gms Bug: 32871170 Change-Id: Ia2b95cb70d26c4ead5cb650047641b0881ca84ae
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
2d4b6ad7f38a3308d4f7be95219f0f9a6dde2d4d |
|
04-Jan-2017 |
Calin Juravle <calin@google.com> |
Refactor PackageDexOptimizer Split performDexoptLI in multiple smaller helpers. This will help in adding the logic to process secondary dex files. The goal is to move towards simple logic which can be reused between compiling the package's code and its secondary dex files. Test: device boots, packages get compiled in the background job, adb shell cmd package compile -m speed|speed-profile packageName Bug: 32871170 Change-Id: I2d55edf42baa768f990939a82b3d52edf5f68a2c
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
832af67c1d543858ca4817139e4c1a62fd715b9e |
|
11-Jan-2017 |
Richard Uhler <ruhler@google.com> |
Merge "Cleanup code given PATCHOAT_FOR_RELOCATION has been removed." am: 8582826f8d am: 5c5637e1bd am: 4911e517ab am: c662c1541b Change-Id: I2ac812bdbd3a8fb8619d5c8d1694fb67a8a69632
|
d670d5866754beca43a217ef5013b5acd1976e78 |
|
08-Dec-2016 |
Richard Uhler <ruhler@google.com> |
Cleanup code given PATCHOAT_FOR_RELOCATION has been removed. Test: make, device boots, installed an app Test: adb shell cmd package compile -m speed|speed-profile <app> Bug: 33192586 Change-Id: I8ef7d4926773586251fedf8a7737a8005f119859
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
c5b56942024a3211234cf35fed44e3e732143947 |
|
11-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Merge commit '7797e545239e81a9216994527badcc98178ebfcc' into dec10 Change-Id: I430a39241bd2d278eaf1e01b89be3ad368789f6d
|
740f523b2571d1c4eb4a954e1faedea45dd7fa53 |
|
09-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Final push of installd to Binder; goodbye socket! Move last two straggling installd commands to Binder and destroy the socket-based communication channel forever. Test: builds, boots, apps install fine, pre-OTA dexopt works Bug: 13758960, 30944031 Change-Id: I9afb9f71858febde34a94f53839b2986493b68a0
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
0f6250823612b2a43784bef12f833ac850bf2e2f |
|
09-Dec-2016 |
Jorge Lucangeli Obes <jorgelo@google.com> |
PackageDexOptimizer: fix typo in log message. 'oatDir' is the only token that has a space around the '='. None of the other tokens in the log message do. Make the log message consistent so that grepping is easier -- and the log message looks better. Before: PackageManager.DexOptimizer: Running dexopt (dex2oat) on: /system/priv-app/Telecom/Telecom.apk pkg=com.android.server.telecom isa=arm64 vmSafeMode=false debuggable=false target-filter=interpret-only oatDir = null sharedLibraries=null After: PackageManager.DexOptimizer: Running dexopt (dex2oat) on: /system/priv-app/Telecom/Telecom.apk pkg=com.android.server.telecom isa=arm64 vmSafeMode=false debuggable=false target-filter=interpret-only oatDir=null sharedLibraries=null Bug: None Test: Build, flash, grep for log message. Change-Id: I84162ec3535e3f83a60a62d40cbaf8e74d2051c6
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
79c9e063204185b508c32e18e49a5baaa98df4be |
|
25-Nov-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Use the new refined DexOptNeeded codes. bug: 30937355 Test: device boots, messages are printed correctly Change-Id: Ia5274e3659471c2a52244d5838d207d407e79023
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
a817838e8be4902c2906d3d4abada8fd22461af4 |
|
07-Sep-2016 |
Mathieu Chartier <mathieuc@google.com> |
Merge "Avoid profile guided compilation for vmSafeMode"
|
7e619a912cf6a53ede7d7eea67f8bc8ed1158e24 |
|
13-Jul-2016 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Add compiler stats to Package Manager Add a simple class for storing compiler statistics. Capture compile times for code paths from a package. Bug: 29223204 Change-Id: I1b066de6a83a739470a42480eee0bfef88423eea (cherry picked from commit 37e5fdc6b4963f3533caecdd92b129f79da69dd8)
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
41e4a376f1fa700ba5ad18ce0f9efb45478c5454 |
|
03-Sep-2016 |
Mathieu Chartier <mathieuc@google.com> |
Avoid profile guided compilation for vmSafeMode Bug: 30688277 Bug: 30733908 Test: adb shell cmd package compile -m speed-profile comb.BBClient Change-Id: I6783c80566b6b3b67025a3d258ebbdede0c7ca2d
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
6d99f796711882ba60977c211d0f92252fe7ad4a |
|
16-May-2016 |
Narayan Kamath <narayan@google.com> |
PackageManager: Fix reference profile canonicalization. Foreign dex markers are named in the runtime by calling realpath(3) on the input dexfile path and replacing "/" with "@". On the Java side, we're using File.getCanonicalPath, which is similar but isn't quite the same. It tries to call realpath() directly, but if that fails, it resorts to a series of increasingly desperate measures to calculate a "canonical path". We just use realpath instead. Also, don't attempt to delete a profile if canonicalization fails. bug: 28740848 Change-Id: Ie5d5af590187e793db633342a42b923865e5c005
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
88eea9e580a6b2ee804a092f851b5325355fcdce |
|
02-May-2016 |
Narayan Kamath <narayan@google.com> |
Add a command to print package dexopt status. Can be invoked like so : $adb shell dumpsys package dexopt $adb shell dumpsys package dexopt <packageName> bug: 27494108 Change-Id: Ie91f744aeac772e0e22abc9c805df9290a4e2418
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
c7b9482b0c4bb2d378e63541b96be45c50094e05 |
|
16-Mar-2016 |
Jeff Hao <jeffhao@google.com> |
Support to pass <uses-library> option through to dex2oat. This change takes an app's shared libraries specified by <uses-library> and passes it through to dex2oat to be used during compilation. Part of a multi-project change. Bug: 26880306 (cherry-picked from 7b331b6a8ae8d9f10482b292439457de98abd32a) Change-Id: I523b1b74775e7ed27072498509e743f1f10b1164
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
90e269917e1d8f9fadb12c3528b8c360b2271e82 |
|
18-Apr-2016 |
David Brazdil <dbrazdil@google.com> |
Change app selection policy for post-OTA verification Changes the policy for selecting packages which will be pre-verified during post-OTA boot animation. For Nx to Ny, an app is pre-verified if used in the foreground in the last 7 days, or if its APK was loaded by other apps. For M to N (or early N builds without detailed stats), an app is pre-verified if it has any recorded use in the last 7 days. Bug: 27902702 Bug: 27350503 Change-Id: I2b38daf017ecd0e5aa5ed596ed9351cffa03dbcb
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
6a3b2d2bc63254a412eb546ed371fce8f4337434 |
|
08-Apr-2016 |
David Brazdil <dbrazdil@google.com> |
Refactor return values of performDexOpt PackageDexOptimizer.performDexOpt would return DEX_OPT_PERFORMED if dexopt succeeded on the package and DEX_OPT_SKIPPED otherwise, even if dexopt failed. This patch fixes that and cleans up the code. PackageManagerService.performDexOpt* would return true only if PackageDexOptimizer.performDexOpt returned DEX_OPT_PERFORMED. Consequently, it would return false when dexopt was not needed. This patch refactors the code to return true unless PackageDexOptimizer returns DEX_OPT_FAILED and documents the behaviour. Bug: 28082762 Change-Id: Ica73e67ab02025ef5619746bb8c465c96b72846b
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
47c170a7460e8455ffc07981916c400fa980433a |
|
31-Mar-2016 |
Andreas Gampe <agampe@google.com> |
Package Manager: Use new DexFile function to upgrade filter In case an app is shared, do not simply use "full" for compilation. Instead, upgrade the asked-for filter to the non-guided version. Bug: 27921071 Change-Id: I54735b61732e6a5c9dc62425d04bc740dd365083
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
9fa025491da8c6493d9286a7d4980105b649406e |
|
25-Mar-2016 |
Calin Juravle <calin@google.com> |
Don't check if forward locked apps are used by others Forward locked apps don't share their code so there is no point moving from profile guided to full compilation. Bug: 27334750 Bug: 26080105 Change-Id: I195d48504435bc66e890470f04056c4279d0bb2f
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
bdd30d86ef98456161069d11481b2ccd25a11b4e |
|
20-Mar-2016 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Refactor package manager Introduce a mapping between dexopt reasons and compiler filters. Use reasons in package manager and other classes, where possible. Change PackageDexOptimizer to accept a compilation filter. Adapt for the split-out profile merging. Pass compilation filter to installd. Bug: 27689078 Change-Id: I8c0ea6f10fbfdbd096adecc52abfd2466d048fdc
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
990fb6b5c91be62078a698ee1c01e24d33364c85 |
|
01-Mar-2016 |
David Brazdil <dbrazdil@google.com> |
Add option to compile all packages with 'cmd package compile' To help investigate performance regressions, an option is added to 'adb shell cmd package compile' to compile all packages with the given mode. Bug: 27391290 Change-Id: I70a3a518e08b54535bb34f13f0cedda3a1f7085f
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
693f997cc8b8c2ba8d3ed29627b2641dd86392a5 |
|
25-Feb-2016 |
Calin Juravle <calin@google.com> |
Better handling of various types of compilation in DexOptimizer From the runtime perspective extract-only/profile-guide-compiled/fully- compiled oat files are up-to-date and don't need dex2oat. However, wihout knowing the exact "class" of the aot file we are not able to do a full compilation of something previously only-extracted, or limit profile-guide compilation to only previously profile-guide or extract- only oat files. GetDexOptNeeded now accepts a mask of desired types of compilation that the runtime takes into account when advising what's needed. This CL adds the necessary handling in DexOptimizer. Also: - removes the contraint to use extract-only oat files only when profiles are enabled. - removes mDexOptPerformed which interfere with the different types of compilation and only saved a call to GetDexOptNeeded. Bug: 27189430 Change-Id: Iced2bdcc3aa7866ff888a3bace43f4b71fffb353
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
d479b52d12fc782f18df6b5ae15c19e022f0ec14 |
|
24-Feb-2016 |
Calin Juravle <calin@google.com> |
Restrict the cases when we profile guided compile an apk Do not use profile guided compilation if the apk is loaded by another app. The decision if an apk was used or not by another app is done by looking into the foreign profile directory. Apks which where loaded in others apps will have a file marker in the profile directory. The marker is named after the canonical location of the apk file where '/' is replaced by '@'. Also, refactor the profile paths to the Environment. Bug: 27334750 Bug: 26080105 Change-Id: Ic2ac5a7a231670ecb4462166c34fdd5b4c631178
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
0cf8cc66ecca83c7e24d3e55268283de71272f50 |
|
03-Feb-2016 |
Calin Juravle <calin@google.com> |
Fix useProfiles usage in PackageDexOptimizer When useProfiles is set we should always try to recompile. Change-Id: Ide2aaf1cfbe7ccad28f653e544b5d04457dc14a9
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
a89087542f774c585b6a6ec535fc294721710521 |
|
10-Nov-2015 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Add A/B OTA preopting Add an OTA Dexopt service. Refactor package manager service and package dex optimizer to reuse some code. Add knowledge about OTA flag to installer. Bug: 25612095 Change-Id: I7dd6bb468fea44b9d3acf0ac7d7404fb02d0f30a
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
493411ace40a8b4a90be70576f361c5b7515f29d |
|
01-Feb-2016 |
David Brazdil <dbrazdil@google.com> |
Add 'package compile' shell command Bug: 26707406 Change-Id: I554969c9f3b3153179370d3d23a88fa7e8693885
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
6dfd83dbe88bd461f5aab224ced0830b07db1c03 |
|
29-Jan-2016 |
Calin Juravle <calin@google.com> |
Revert "Revert "Fix optimizable package filter"" The issue was traced to go/aog/854901. This revert was only temporary. Bug: 26863668 This reverts commit d9c31db2e9e4da08ed43c88135fa7e220bc26ebf. Change-Id: I6724059db18263936cc392651c621d27836f1c33
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
d9c31db2e9e4da08ed43c88135fa7e220bc26ebf |
|
29-Jan-2016 |
Calin Juravle <calin@google.com> |
Revert "Fix optimizable package filter" Bug: 26863668 This reverts commit 8aaaf138887355f218b5da3f0efe1c4610a6c31a. Change-Id: I659e2de56afd729f36aa111772fec8c9c2ddf801
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
8aaaf138887355f218b5da3f0efe1c4610a6c31a |
|
27-Jan-2016 |
Calin Juravle <calin@google.com> |
Fix optimizable package filter System apps don't have an oat dir according to Package.canHaveOatDir but installd will put their oat files in dalvik-cache. Bug: 26080105 Bug: 26740458 Change-Id: I3d293e95af42753ebb29f15f341e9ca366fa03cb
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
9dff854be4f7b552c5f6fe05331b9dd85de134d1 |
|
21-Jan-2016 |
Calin Juravle <calin@google.com> |
Clean up passing volumeUuid to DexOptimizer The argument was redundant. Also, we should have taken the uuid for shared library from their package information. Bug: 26080105 Change-Id: If3d86e00ebecfc13cf63482bce4ac32a119de967
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
a0e10434c49c6fe075e853da2046fd281318c4c4 |
|
20-Jan-2016 |
David Brazdil <dbrazdil@google.com> |
Extract APKs on install or OTA ART will unzip APKs in memory during launch if an OAT file is not present. To save the time and memory, this patch will invoke dex2oat with '--compiler-filter=verify-at-runtime' to unzip the APK during install or after an OTA. Change-Id: I16583f9450ad60356123a29f7a6a649b2ab9999f
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
db4a79a5d7d348e9d2286d95d4e5a59dd484456f |
|
23-Dec-2015 |
Calin Juravle <calin@google.com> |
Enable profile guided compilation on the framework side The background compilation service will trigger a profile based compilation instead of a full one. If no profile information is available the compilation is skipped (see installd). Note that the end decision whether or not to compile a package is taken by dext2oat. We can't make the decision here because this service runs under system server which cannot read app's profile data. Bug: 26080105 Change-Id: I457ea8dea0557839c1f7cdc241770055732b0a4a
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
fdeeeea6cfdebdb98dd70a7dd48965743af01750 |
|
12-Jan-2016 |
Jeff Sharkey <jsharkey@android.com> |
Follow installd changes, throw exceptions. Start by passing down flags to work on both CE and DE storage areas; a future change will refine this further. Force consistent argument checking and null handling for all installd callers. Throw explicit exceptions instead of returning int values that can accidentally be ignored. Bug: 26466827 Change-Id: Iddb591f6b3c7786d210d3f132ff7f9886a97b749
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
27c073796978106746e4a51f2100b29068ab37f6 |
|
05-Nov-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Remove performBootDexOpt and am's ensurePackageDexOpt. Except common shared libraries and boot image, all compilations are now done through BackgroundDexOptService. Change-Id: Ib736e253c38b0c8085bc94e45f4e61a048f66e26
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
27c24fb8b85c36298de053699b1967a808c6d308 |
|
18-Sep-2015 |
Todd Kennedy <toddke@google.com> |
Enable "quick install" Quick install skips a lot of the normal install steps in order to dramatically reduce the installation time [eg Twitter normally takes 20s to install. But, installs in under 2.5s with quick install] The specific optimizations [with caveats]: 1. Use the JIT. Although the oat file is technically created, it only contains the exploded contents of the APK and does not contain pre-compiled native binary code. While this improves install time, it impacts app execution. [saves 17s] 2. Bypass Play verification. Play normally verifies all installs to ensure we're not installing malware. But, it can take multiple seconds for Play to collect and send package information to our backend servers. [saves 2.7s] 3. Reduce JAR file verification. Due to the structure of the JAR certs, we cannot completely bypass JAR processing. However we skip the step of verifying every manifest entry. [saves 1.3s] NOTE: #2 and #3 will only occur on eng/user-debug builds. Bug: 22848361 Change-Id: I48e77595ad5c13a9534fdb06da67ba8dae2797fb
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
b4d41021b41b60ce0b053035105d51f453816b1d |
|
28-Sep-2015 |
Todd Kennedy <toddke@google.com> |
am 92b28f37: resolved conflicts for 4ed21bf0 to stage-aosp-master * commit '92b28f37de9956c172f779df4cf540abc5b94deb': Allow using the JIT
|
92b28f37de9956c172f779df4cf540abc5b94deb |
|
28-Sep-2015 |
Todd Kennedy <toddke@google.com> |
resolved conflicts for 4ed21bf0 to stage-aosp-master Change-Id: I9c8ab83589ee3786c884f34066c1f3d709dc5136
|
8c6e5372257b1fa5135811fbafeb234f173091a9 |
|
25-Sep-2015 |
Todd Kennedy <toddke@google.com> |
Allow using the JIT Instead of the JIT only being available for eng builds [or configurable via environment variable], allow the JIT to be enabled programatically. Change-Id: Ifcbc8445fb8bd45ce2bfed3f80fbaf48496f8e3a
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
389bb7f509fc74de3656492a9c474c11bcc96e5b |
|
26-Sep-2015 |
Todd Kennedy <toddke@google.com> |
am 9f860264: resolved conflicts for 7de7e0b0 to stage-aosp-master * commit '9f8602644418ecfb1a5c9555792ceed285fa72bd': Pass dexopt flags as integer
|
9f8602644418ecfb1a5c9555792ceed285fa72bd |
|
26-Sep-2015 |
Todd Kennedy <toddke@google.com> |
resolved conflicts for 7de7e0b0 to stage-aosp-master Change-Id: I4e45e5bbaebb98b0e740167eaf7517f99d917f30
|
fa54ab7950b7ad7605cb842b47826b71a685bc28 |
|
25-Sep-2015 |
Todd Kennedy <toddke@google.com> |
Pass dexopt flags as integer Instead of using a series of booleans, create a single flags integer that contains all of the dexopt options. Change-Id: Ia8fa968f64b164267f43dd29cea9dc0413058125
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
4e321745173de1eb89343238fadfbcc7ba1a88f9 |
|
24-Sep-2015 |
Todd Kennedy <toddke@google.com> |
resolved conflicts for cafacef6 to stage-aosp-master Change-Id: Id02e098a02aede327c5bc1a98aa177d8bf9ec5a9
|
55fe944f987bcbdea8bbec7ea411684f69623da4 |
|
21-Sep-2015 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Propagate boot status to installd Propagate the boot status explicitly to installd so that we do not have to rely on dev.bootcomplete, which isn't meaningfully set when the device needs the decryption screen on boot. Bug: 23898216 (cherry picked from commit 06bb908b78e3c790d3db52fef9f2ab0a129e53cd) Change-Id: I9b34298caf70b1e5d40970cc0d04c469016a80a7
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
06bb908b78e3c790d3db52fef9f2ab0a129e53cd |
|
21-Sep-2015 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Propagate boot status to installd Propagate the boot status explicitly to installd so that we do not have to rely on dev.bootcomplete, which isn't meaningfully set when the device needs the decryption screen on boot. Bug: 23898216 Change-Id: I9b34298caf70b1e5d40970cc0d04c469016a80a7
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
ebcac16cb1405bf7d0b570e11a287df078edfc1c |
|
10-Sep-2015 |
Fyodor Kupolov <fkupolov@google.com> |
Use app directory as apkPath for cluster installs Previously, size of of oat directory was not counted by the getsize command, because base APK location was passed as apkpath argument. Bug: 23896047 Change-Id: Ic7b6b725785ff2e2a0cf3887ba68c162b23b1212
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
589f2b53f2ad4639d5a193bc89e903a8b2400975 |
|
23-Apr-2015 |
Fyodor Kupolov <fkupolov@google.com> |
Do not create oat directory for an app in ASEC container Currently installation fails, if an app is located on SD card (inside ASEC). If an app is located inside ASEC, dexopt output should go to /data/dalvik-cache. dexopt also needs to be performed at a later stage, because the name of the oat file contains the absolute path to the dex file. Bug: 20452651 Bug: 21360107 (cherry picked from commit 94056d1cb8183bde3e942336735b289b9654deb1) Change-Id: Id1ced7159e5af9c05be0b637437b3b260e859c1d
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
a91a6f68f4c2564f763d28a3cfcd9d8b7a3f5db9 |
|
16-May-2015 |
Fyodor Kupolov <fkupolov@google.com> |
Merge "Hold wakelock while dexopting" into mnc-dev
|
a627c094e67f640dfe3b2ac0b633edcf51270cf4 |
|
06-May-2015 |
Fyodor Kupolov <fkupolov@google.com> |
Hold wakelock while dexopting Bug: 19521294 Change-Id: Ieed9b98ecb4a3332ce652d76c2bac8c312917ca1
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
01dcb76fec4ee2ff3a3dc4516a37c144d771f18c |
|
07-May-2015 |
Narayan Kamath <narayan@google.com> |
Be more accepting of dex2oat errors. - Narrow down the scope of caught exceptions. StaleDexCacheError has been removed (nobody was throwing it) and we shouldn't be catching the general "Exception". - Make try {} catch blocks for IOExceptions more fine-grained, only surrounding the code that throws them. And finally, don't return DEX_OPT_FAILED if installd couldn't run dex2oat successfully. We return DEX_OPT_SKIPPED instead. bug: 20888973 Change-Id: I25701e16157f42981ca767e343545cfe1d9cfbb2
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
94056d1cb8183bde3e942336735b289b9654deb1 |
|
23-Apr-2015 |
Fyodor Kupolov <fkupolov@google.com> |
Do not create oat directory for an app in ASEC container Currently installation fails, if an app is located on SD card (inside ASEC). If an app is located inside ASEC, dexopt output should go to /data/dalvik-cache. dexopt also needs to be performed at a later stage, because the name of the oat file contains the absolute path to the dex file. Bug: 20452651 Change-Id: I4432ca7a0b0e88b705705acf42e5cae78cadf729
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
7b08b35bde3df58816b171b88712bcc6d21dcbe8 |
|
26-Mar-2015 |
Richard Uhler <ruhler@google.com> |
Reuse dexopt method for both dex2oat and patchoat. Change-Id: Ib9a6373f98474f1242367b5285086251a9d580e5
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
b94c1657eb0140f7b91f5372a9f76de5a3d87e36 |
|
03-Mar-2015 |
Fyodor Kupolov <fkupolov@google.com> |
Support for storing OAT files in app directory In installPackageLI, dexopt is now performed on a staging directory of the app (dexopt phase 1). For each codepath: - /oat/<isa> directory is created - dexopt output goes to the newly created directory. Optimized files have .odex extension. Bug: 19550105 Change-Id: Iec59790d97837b78af82b079fd1970de3388c91d
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|
7487657ee9f3f91a1fb4e52ce2a03b56496ac1f4 |
|
24-Feb-2015 |
Fyodor Kupolov <fkupolov@google.com> |
Extracted a separate class to run dexopt on packages performDexOptLibsLI and related methods were extracted to PackageDexOptimizer class. Minor refactoring of PackageManagerService. This is a non-functional change. It should simplify further work to allow storing OAT files inside package dir. (cherry picked from commit eeea67b8c3678d882d3774edc41242c63daa60fa) Change-Id: I3494a2da70605362bb6fb4625ffbee1cbe1cd457
/frameworks/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
|