aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorJaewoong Jung <jungjw@google.com>2019-03-27 07:31:03 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-03-27 07:31:03 -0700
commita97234fc3a7a79fa2a2c054846665bc4fdd564bd (patch)
tree3e96719e827321258fd3447d67e051b1f63d0681 /java
parent8fdf81578e695eaf66e60df739a430fc18d1d5b1 (diff)
parentfa1f34f99fd496ea5fd2a3751f7bf644aa5715c3 (diff)
downloadbuild_soong-a97234fc3a7a79fa2a2c054846665bc4fdd564bd.tar.gz
build_soong-a97234fc3a7a79fa2a2c054846665bc4fdd564bd.tar.bz2
build_soong-a97234fc3a7a79fa2a2c054846665bc4fdd564bd.zip
Merge "Add package_name property to android_app." am: c7dd408f89 am: 2afb72b7a0
am: fa1f34f99f Change-Id: I59d3f61a8624a2ad4f356d95c67c4d97cbd4c0a4
Diffstat (limited to 'java')
-rw-r--r--java/app.go12
-rw-r--r--java/app_test.go24
2 files changed, 32 insertions, 4 deletions
diff --git a/java/app.go b/java/app.go
index b31f2323..96594df3 100644
--- a/java/app.go
+++ b/java/app.go
@@ -81,6 +81,9 @@ type overridableAppProperties struct {
// The name of a certificate in the default certificate directory, blank to use the default product certificate,
// or an android_app_certificate module name in the form ":module".
Certificate *string
+
+ // the package name of this app. The package name in the manifest file is used if one was not given.
+ Package_name *string
}
type AndroidApp struct {
@@ -223,11 +226,12 @@ func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) {
}
}
- // TODO: LOCAL_PACKAGE_OVERRIDES
- // $(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \
-
manifestPackageName, overridden := ctx.DeviceConfig().OverrideManifestPackageNameFor(ctx.ModuleName())
- if overridden {
+ if overridden || a.overridableAppProperties.Package_name != nil {
+ // The product override variable has a priority over the package_name property.
+ if !overridden {
+ manifestPackageName = *a.overridableAppProperties.Package_name
+ }
aaptLinkFlags = append(aaptLinkFlags, "--rename-manifest-package "+manifestPackageName)
}
diff --git a/java/app_test.go b/java/app_test.go
index cf57c809..d2662426 100644
--- a/java/app_test.go
+++ b/java/app_test.go
@@ -846,6 +846,12 @@ func TestOverrideAndroidApp(t *testing.T) {
name: "new_certificate",
certificate: "cert/new_cert",
}
+
+ override_android_app {
+ name: "baz",
+ base: "foo",
+ package_name: "org.dandroid.bp",
+ }
`)
expectedVariants := []struct {
@@ -854,18 +860,28 @@ func TestOverrideAndroidApp(t *testing.T) {
apkPath string
signFlag string
overrides []string
+ aaptFlag string
}{
{
variantName: "android_common",
apkPath: "/target/product/test_device/system/app/foo/foo.apk",
signFlag: "build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8",
overrides: []string{"baz"},
+ aaptFlag: "",
},
{
variantName: "bar_android_common",
apkPath: "/target/product/test_device/system/app/bar/bar.apk",
signFlag: "cert/new_cert.x509.pem cert/new_cert.pk8",
overrides: []string{"baz", "foo"},
+ aaptFlag: "",
+ },
+ {
+ variantName: "baz_android_common",
+ apkPath: "/target/product/test_device/system/app/baz/baz.apk",
+ signFlag: "build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8",
+ overrides: []string{"baz", "foo"},
+ aaptFlag: "--rename-manifest-package org.dandroid.bp",
},
}
for _, expected := range expectedVariants {
@@ -892,10 +908,18 @@ func TestOverrideAndroidApp(t *testing.T) {
t.Errorf("Incorrect signing flags, expected: %q, got: %q", expected.signFlag, signFlag)
}
+ // Check if the overrides field values are correctly aggregated.
mod := variant.Module().(*AndroidApp)
if !reflect.DeepEqual(expected.overrides, mod.appProperties.Overrides) {
t.Errorf("Incorrect overrides property value, expected: %q, got: %q",
expected.overrides, mod.appProperties.Overrides)
}
+
+ // 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)
+ }
}
}