Merge "Add android app property rename_resources_package" into rvc-dev-plus-aosp
This commit is contained in:
commit
464e5f720c
20
java/app.go
20
java/app.go
|
@ -268,6 +268,9 @@ type overridableAppProperties struct {
|
|||
|
||||
// the logging parent of this app.
|
||||
Logging_parent *string
|
||||
|
||||
// Whether to rename the package in resources to the override name rather than the base name. Defaults to true.
|
||||
Rename_resources_package *bool
|
||||
}
|
||||
|
||||
// runtime_resource_overlay properties that can be overridden by override_runtime_resource_overlay
|
||||
|
@ -507,10 +510,23 @@ func (a *AndroidApp) shouldEmbedJnis(ctx android.BaseModuleContext) bool {
|
|||
!a.IsForPlatform() || a.appProperties.AlwaysPackageNativeLibs
|
||||
}
|
||||
|
||||
func generateAaptRenamePackageFlags(packageName string, renameResourcesPackage bool) []string {
|
||||
aaptFlags := []string{"--rename-manifest-package " + packageName}
|
||||
if renameResourcesPackage {
|
||||
// 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
|
||||
}
|
||||
|
||||
func (a *AndroidApp) renameResourcesPackage() bool {
|
||||
return proptools.BoolDefault(a.overridableAppProperties.Rename_resources_package, true)
|
||||
}
|
||||
|
||||
func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) {
|
||||
a.aapt.usesNonSdkApis = Bool(a.Module.deviceProperties.Platform_apis)
|
||||
|
||||
|
@ -543,7 +559,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.renameResourcesPackage())...)
|
||||
a.overriddenManifestPackageName = manifestPackageName
|
||||
}
|
||||
|
||||
|
@ -1806,7 +1822,7 @@ func (r *RuntimeResourceOverlay) GenerateAndroidBuildActions(ctx android.ModuleC
|
|||
if !overridden {
|
||||
manifestPackageName = *r.overridableProperties.Package_name
|
||||
}
|
||||
aaptLinkFlags = append(aaptLinkFlags, "--rename-manifest-package "+manifestPackageName)
|
||||
aaptLinkFlags = append(aaptLinkFlags, generateAaptRenamePackageFlags(manifestPackageName, false)...)
|
||||
}
|
||||
if r.overridableProperties.Target_package_name != nil {
|
||||
aaptLinkFlags = append(aaptLinkFlags,
|
||||
|
|
150
java/app_test.go
150
java/app_test.go
|
@ -1761,52 +1761,125 @@ func TestOverrideAndroidApp(t *testing.T) {
|
|||
base: "foo",
|
||||
package_name: "org.dandroid.bp",
|
||||
}
|
||||
|
||||
override_android_app {
|
||||
name: "baz_no_rename_resources",
|
||||
base: "foo",
|
||||
package_name: "org.dandroid.bp",
|
||||
rename_resources_package: false,
|
||||
}
|
||||
|
||||
android_app {
|
||||
name: "foo_no_rename_resources",
|
||||
srcs: ["a.java"],
|
||||
certificate: "expiredkey",
|
||||
overrides: ["qux"],
|
||||
rename_resources_package: false,
|
||||
sdk_version: "current",
|
||||
}
|
||||
|
||||
override_android_app {
|
||||
name: "baz_base_no_rename_resources",
|
||||
base: "foo_no_rename_resources",
|
||||
package_name: "org.dandroid.bp",
|
||||
}
|
||||
|
||||
override_android_app {
|
||||
name: "baz_override_base_rename_resources",
|
||||
base: "foo_no_rename_resources",
|
||||
package_name: "org.dandroid.bp",
|
||||
rename_resources_package: true,
|
||||
}
|
||||
`)
|
||||
|
||||
expectedVariants := []struct {
|
||||
moduleName string
|
||||
variantName string
|
||||
apkName string
|
||||
apkPath string
|
||||
certFlag string
|
||||
lineageFlag string
|
||||
overrides []string
|
||||
aaptFlag string
|
||||
logging_parent string
|
||||
name string
|
||||
moduleName string
|
||||
variantName string
|
||||
apkName string
|
||||
apkPath string
|
||||
certFlag string
|
||||
lineageFlag string
|
||||
overrides []string
|
||||
packageFlag string
|
||||
renameResources bool
|
||||
logging_parent string
|
||||
}{
|
||||
{
|
||||
moduleName: "foo",
|
||||
variantName: "android_common",
|
||||
apkPath: "/target/product/test_device/system/app/foo/foo.apk",
|
||||
certFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
lineageFlag: "",
|
||||
overrides: []string{"qux"},
|
||||
aaptFlag: "",
|
||||
logging_parent: "",
|
||||
name: "foo",
|
||||
moduleName: "foo",
|
||||
variantName: "android_common",
|
||||
apkPath: "/target/product/test_device/system/app/foo/foo.apk",
|
||||
certFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
lineageFlag: "",
|
||||
overrides: []string{"qux"},
|
||||
packageFlag: "",
|
||||
renameResources: false,
|
||||
logging_parent: "",
|
||||
},
|
||||
{
|
||||
moduleName: "bar",
|
||||
variantName: "android_common_bar",
|
||||
apkPath: "/target/product/test_device/system/app/bar/bar.apk",
|
||||
certFlag: "cert/new_cert.x509.pem cert/new_cert.pk8",
|
||||
lineageFlag: "--lineage lineage.bin",
|
||||
overrides: []string{"qux", "foo"},
|
||||
aaptFlag: "",
|
||||
logging_parent: "bah",
|
||||
name: "foo",
|
||||
moduleName: "bar",
|
||||
variantName: "android_common_bar",
|
||||
apkPath: "/target/product/test_device/system/app/bar/bar.apk",
|
||||
certFlag: "cert/new_cert.x509.pem cert/new_cert.pk8",
|
||||
lineageFlag: "--lineage lineage.bin",
|
||||
overrides: []string{"qux", "foo"},
|
||||
packageFlag: "",
|
||||
renameResources: false,
|
||||
logging_parent: "bah",
|
||||
},
|
||||
{
|
||||
moduleName: "baz",
|
||||
variantName: "android_common_baz",
|
||||
apkPath: "/target/product/test_device/system/app/baz/baz.apk",
|
||||
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",
|
||||
logging_parent: "",
|
||||
name: "foo",
|
||||
moduleName: "baz",
|
||||
variantName: "android_common_baz",
|
||||
apkPath: "/target/product/test_device/system/app/baz/baz.apk",
|
||||
certFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
lineageFlag: "",
|
||||
overrides: []string{"qux", "foo"},
|
||||
packageFlag: "org.dandroid.bp",
|
||||
renameResources: true,
|
||||
logging_parent: "",
|
||||
},
|
||||
{
|
||||
name: "foo",
|
||||
moduleName: "baz_no_rename_resources",
|
||||
variantName: "android_common_baz_no_rename_resources",
|
||||
apkPath: "/target/product/test_device/system/app/baz_no_rename_resources/baz_no_rename_resources.apk",
|
||||
certFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
lineageFlag: "",
|
||||
overrides: []string{"qux", "foo"},
|
||||
packageFlag: "org.dandroid.bp",
|
||||
renameResources: false,
|
||||
logging_parent: "",
|
||||
},
|
||||
{
|
||||
name: "foo_no_rename_resources",
|
||||
moduleName: "baz_base_no_rename_resources",
|
||||
variantName: "android_common_baz_base_no_rename_resources",
|
||||
apkPath: "/target/product/test_device/system/app/baz_base_no_rename_resources/baz_base_no_rename_resources.apk",
|
||||
certFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
lineageFlag: "",
|
||||
overrides: []string{"qux", "foo_no_rename_resources"},
|
||||
packageFlag: "org.dandroid.bp",
|
||||
renameResources: false,
|
||||
logging_parent: "",
|
||||
},
|
||||
{
|
||||
name: "foo_no_rename_resources",
|
||||
moduleName: "baz_override_base_rename_resources",
|
||||
variantName: "android_common_baz_override_base_rename_resources",
|
||||
apkPath: "/target/product/test_device/system/app/baz_override_base_rename_resources/baz_override_base_rename_resources.apk",
|
||||
certFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
lineageFlag: "",
|
||||
overrides: []string{"qux", "foo_no_rename_resources"},
|
||||
packageFlag: "org.dandroid.bp",
|
||||
renameResources: true,
|
||||
logging_parent: "",
|
||||
},
|
||||
}
|
||||
for _, expected := range expectedVariants {
|
||||
variant := ctx.ModuleForTests("foo", expected.variantName)
|
||||
variant := ctx.ModuleForTests(expected.name, expected.variantName)
|
||||
|
||||
// Check the final apk name
|
||||
outputs := variant.AllOutputs()
|
||||
|
@ -1852,9 +1925,12 @@ func TestOverrideAndroidApp(t *testing.T) {
|
|||
// Check the package renaming flag, 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)
|
||||
expectedPackage := expected.packageFlag
|
||||
if !expected.renameResources {
|
||||
expectedPackage = ""
|
||||
}
|
||||
checkAapt2LinkFlag(t, aapt2Flags, "rename-resources-package", expectedPackage)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1991,6 +2067,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)
|
||||
}
|
||||
}
|
||||
|
@ -3208,6 +3285,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 New Issue