summaryrefslogtreecommitdiff
path: root/java/app.go
diff options
context:
space:
mode:
Diffstat (limited to 'java/app.go')
-rw-r--r--java/app.go17
1 files changed, 14 insertions, 3 deletions
diff --git a/java/app.go b/java/app.go
index 96975828d..05d1927db 100644
--- a/java/app.go
+++ b/java/app.go
@@ -171,9 +171,18 @@ func (a *AndroidApp) shouldUncompressDex(ctx android.ModuleContext) bool {
}
// Uncompress dex in APKs of privileged apps, and modules used by privileged apps.
- return ctx.Config().UncompressPrivAppDex() &&
+ if ctx.Config().UncompressPrivAppDex() &&
(Bool(a.appProperties.Privileged) ||
- inList(ctx.ModuleName(), ctx.Config().ModulesLoadedByPrivilegedModules()))
+ inList(ctx.ModuleName(), ctx.Config().ModulesLoadedByPrivilegedModules())) {
+ return true
+ }
+
+ // Uncompress if the dex files is preopted on /system.
+ if !a.dexpreopter.dexpreoptDisabled(ctx) && (ctx.Host() || !odexOnSystemOther(ctx, a.dexpreopter.installPath)) {
+ return true
+ }
+
+ return false
}
func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) {
@@ -232,7 +241,6 @@ func (a *AndroidApp) proguardBuildActions(ctx android.ModuleContext) {
}
func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path {
- a.deviceProperties.UncompressDex = a.shouldUncompressDex(ctx)
var installDir string
if ctx.ModuleName() == "framework-res" {
@@ -244,6 +252,9 @@ func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path {
installDir = filepath.Join("app", a.installApkName)
}
a.dexpreopter.installPath = android.PathForModuleInstall(ctx, installDir, a.installApkName+".apk")
+ a.dexpreopter.isInstallable = Bool(a.properties.Installable)
+ a.dexpreopter.uncompressedDex = a.shouldUncompressDex(ctx)
+ a.deviceProperties.UncompressDex = a.dexpreopter.uncompressedDex
if ctx.ModuleName() != "framework-res" {
a.Module.compile(ctx, a.aaptSrcJar)