diff --git a/java/app.go b/java/app.go index 215b07b28..63c5bef90 100755 --- a/java/app.go +++ b/java/app.go @@ -491,6 +491,16 @@ func (a *AndroidApp) shouldEmbedJnis(ctx android.BaseModuleContext) bool { !a.IsForPlatform() || a.appProperties.AlwaysPackageNativeLibs } +func generateAaptRenamePackageFlags(packageName string) []string { + aaptFlags := []string{} + aaptFlags = append(aaptFlags, "--rename-manifest-package "+packageName) + // --rename-resources-package renames the package within the resources table to packageName. + // Note: this will *not* rename the R.java file because the base module .R + // package may be directly referenced in code. + aaptFlags = append(aaptFlags, "--rename-resources-package "+packageName) + return aaptFlags +} + func (a *AndroidApp) OverriddenManifestPackageName() string { return a.overriddenManifestPackageName } @@ -527,7 +537,7 @@ func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) { if !overridden { manifestPackageName = *a.overridableAppProperties.Package_name } - aaptLinkFlags = append(aaptLinkFlags, "--rename-manifest-package "+manifestPackageName) + aaptLinkFlags = append(aaptLinkFlags, generateAaptRenamePackageFlags(manifestPackageName)...) a.overriddenManifestPackageName = manifestPackageName } diff --git a/java/app_test.go b/java/app_test.go index 2195afdb0..e3fa26e04 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -1688,7 +1688,7 @@ func TestOverrideAndroidApp(t *testing.T) { certFlag string lineageFlag string overrides []string - aaptFlag string + packageFlag string logging_parent string }{ { @@ -1698,7 +1698,7 @@ func TestOverrideAndroidApp(t *testing.T) { certFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8", lineageFlag: "", overrides: []string{"qux"}, - aaptFlag: "", + packageFlag: "", logging_parent: "", }, { @@ -1708,7 +1708,7 @@ func TestOverrideAndroidApp(t *testing.T) { certFlag: "cert/new_cert.x509.pem cert/new_cert.pk8", lineageFlag: "--lineage lineage.bin", overrides: []string{"qux", "foo"}, - aaptFlag: "", + packageFlag: "", logging_parent: "bah", }, { @@ -1718,7 +1718,7 @@ func TestOverrideAndroidApp(t *testing.T) { certFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8", lineageFlag: "", overrides: []string{"qux", "foo"}, - aaptFlag: "--rename-manifest-package org.dandroid.bp", + packageFlag: "org.dandroid.bp", logging_parent: "", }, } @@ -1766,12 +1766,11 @@ func TestOverrideAndroidApp(t *testing.T) { expected.logging_parent, logging_parent) } - // Check the package renaming flag, if exists. + // Check the package renaming flags, if exists. res := variant.Output("package-res.apk") aapt2Flags := res.Args["flags"] - if !strings.Contains(aapt2Flags, expected.aaptFlag) { - t.Errorf("package renaming flag, %q is missing in aapt2 link flags, %q", expected.aaptFlag, aapt2Flags) - } + checkAapt2LinkFlag(t, aapt2Flags, "rename-manifest-package", expected.packageFlag) + checkAapt2LinkFlag(t, aapt2Flags, "rename-resources-package", expected.packageFlag) } } @@ -1908,6 +1907,7 @@ func TestOverrideAndroidTest(t *testing.T) { res := variant.Output("package-res.apk") aapt2Flags := res.Args["flags"] checkAapt2LinkFlag(t, aapt2Flags, "rename-manifest-package", expected.packageFlag) + checkAapt2LinkFlag(t, aapt2Flags, "rename-resources-package", expected.packageFlag) checkAapt2LinkFlag(t, aapt2Flags, "rename-instrumentation-target-package", expected.targetPackageFlag) } }