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:
parent
d89338653f
commit
760c335791
2 changed files with 18 additions and 9 deletions
10
java/app.go
10
java/app.go
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -1748,7 +1748,7 @@ func TestOverrideAndroidApp(t *testing.T) {
|
|||
certFlag string
|
||||
lineageFlag string
|
||||
overrides []string
|
||||
aaptFlag string
|
||||
packageFlag string
|
||||
logging_parent string
|
||||
}{
|
||||
{
|
||||
|
@ -1758,7 +1758,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: "",
|
||||
},
|
||||
{
|
||||
|
@ -1768,7 +1768,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",
|
||||
},
|
||||
{
|
||||
|
@ -1778,7 +1778,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: "",
|
||||
},
|
||||
}
|
||||
|
@ -1826,12 +1826,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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1968,6 +1967,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)
|
||||
}
|
||||
}
|
||||
|
@ -3180,6 +3180,7 @@ func TestOverrideRuntimeResourceOverlay(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", "")
|
||||
checkAapt2LinkFlag(t, aapt2Flags, "rename-overlay-target-package", expected.targetPackageFlag)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue