diff options
Diffstat (limited to 'java/app.go')
-rw-r--r-- | java/app.go | 17 |
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) |