Use aapt2 flag --rename-resources-package in soong

This change uses aapt2 flag to change the package name encoded in the
resources table for override apps. Runtime resource overlays will need
to be handled separately.

Test: app_test.go
Bug: 147434671
Change-Id: I70a43c2163709afc90262d74f975ce14a556cf55
This commit is contained in:
Liz Kammer
2020-05-04 15:40:52 -07:00
parent d89338653f
commit 760c335791
2 changed files with 18 additions and 9 deletions

View File

@@ -494,6 +494,14 @@ 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)
// Required to rename the package name in the resources table.
aaptFlags = append(aaptFlags, "--rename-resources-package "+packageName)
return aaptFlags
}
func (a *AndroidApp) OverriddenManifestPackageName() string {
return a.overriddenManifestPackageName
}
@@ -530,7 +538,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
}