From 9109d7278531801fdd47db1cb6c1b32a24466484 Mon Sep 17 00:00:00 2001 From: Jaewoong Jung Date: Wed, 30 Jan 2019 13:13:52 -0800 Subject: [PATCH] Add Android.mk lines for package name overriding. This ensures the overriding/overridden packages are processed as intended when producing the final system image. Bug: 122957760 Test: Manual tests with Browser2, BrowserGoogle, and Chrome Change-Id: Ica05e53601b27c73de7f5c3bfcb9000103a11db6 --- java/androidmk.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/java/androidmk.go b/java/androidmk.go index 089ed4fc0..d86e71f91 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -203,6 +203,11 @@ func (app *AndroidApp) AndroidMk() android.AndroidMkData { Include: "$(BUILD_SYSTEM)/soong_app_prebuilt.mk", Extra: []android.AndroidMkExtraFunc{ func(w io.Writer, outputFile android.Path) { + // TODO(jungjw): This, outputting two LOCAL_MODULE lines, works, but is not ideal. Find a better solution. + if app.Name() != app.installApkName { + fmt.Fprintln(w, "# Overridden by PRODUCT_PACKAGE_NAME_OVERRIDES") + fmt.Fprintln(w, "LOCAL_MODULE :=", app.installApkName) + } fmt.Fprintln(w, "LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE :=", app.exportPackage.String()) if app.dexJarFile != nil { fmt.Fprintln(w, "LOCAL_SOONG_DEX_JAR :=", app.dexJarFile.String()) @@ -247,8 +252,8 @@ func (app *AndroidApp) AndroidMk() android.AndroidMkData { } fmt.Fprintln(w, "LOCAL_CERTIFICATE :=", app.certificate.Pem.String()) - if len(app.appProperties.Overrides) > 0 { - fmt.Fprintln(w, "LOCAL_OVERRIDES_PACKAGES := "+strings.Join(app.appProperties.Overrides, " ")) + if overriddenPkgs := app.getOverriddenPackages(); len(overriddenPkgs) > 0 { + fmt.Fprintln(w, "LOCAL_OVERRIDES_PACKAGES :=", strings.Join(overriddenPkgs, " ")) } for _, jniLib := range app.installJniLibs { @@ -262,6 +267,17 @@ func (app *AndroidApp) AndroidMk() android.AndroidMkData { } } +func (a *AndroidApp) getOverriddenPackages() []string { + var overridden []string + if len(a.appProperties.Overrides) > 0 { + overridden = append(overridden, a.appProperties.Overrides...) + } + if a.Name() != a.installApkName { + overridden = append(overridden, a.Name()) + } + return overridden +} + func (a *AndroidTest) AndroidMk() android.AndroidMkData { data := a.AndroidApp.AndroidMk() data.Extra = append(data.Extra, func(w io.Writer, outputFile android.Path) {