summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jooyung Han <jooyung@google.com> 2019-12-16 17:45:32 +0900
committer Jooyung Han <jooyung@google.com> 2019-12-17 15:22:21 +0000
commit27151d93b6425ba2e9260e41193458e2d3ec22d9 (patch)
tree05a8b89a146b504ad3f81bf2786f33a19177fc32
parent7cf4b5de6b2d754e48aadeeeec0dc01b26264ee0 (diff)
Override package name for VNDK APEX
com.android.vndk.v<VER> is overridden with com.google.android.vndk.v<VERE>. Test: m com.android.vndk.current && aapt2 dump badging ../system/apex/com.android.vndk.current.apex Change-Id: I623d7a144418d7198f0bbf09c5dc983ed1a631c6 Merged-In: I623d7a144418d7198f0bbf09c5dc983ed1a631c6 (cherry picked from commit 0ed1b1b1695b0f8ad75bd2493aef9f2801407f1c)
-rw-r--r--apex/apex.go8
-rw-r--r--apex/builder.go22
-rw-r--r--apex/vndk.go3
3 files changed, 29 insertions, 4 deletions
diff --git a/apex/apex.go b/apex/apex.go
index 488d3d32f..bf3f66f49 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -724,7 +724,13 @@ func (a *apexBundle) DepIsInSameApex(ctx android.BaseModuleContext, dep android.
}
func (a *apexBundle) getCertString(ctx android.BaseModuleContext) string {
- certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(ctx.ModuleName())
+ moduleName := ctx.ModuleName()
+ // VNDK APEXes share the same certificate. To avoid adding a new VNDK version to the OVERRIDE_* list,
+ // we check with the pseudo module name to see if its certificate is overridden.
+ if a.vndkApex {
+ moduleName = vndkApexName
+ }
+ certificate, overridden := ctx.DeviceConfig().OverrideCertificateFor(moduleName)
if overridden {
return ":" + certificate
}
diff --git a/apex/builder.go b/apex/builder.go
index a90918d18..5322d85ca 100644
--- a/apex/builder.go
+++ b/apex/builder.go
@@ -350,8 +350,8 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
implicitInputs = append(implicitInputs, cannedFsConfig, a.fileContexts, a.private_key_file, a.public_key_file)
optFlags = append(optFlags, "--pubkey "+a.public_key_file.String())
- manifestPackageName, overridden := ctx.DeviceConfig().OverrideManifestPackageNameFor(a.Name())
- if overridden {
+ manifestPackageName := a.getOverrideManifestPackageName(ctx)
+ if manifestPackageName != "" {
optFlags = append(optFlags, "--override_apk_package_name "+manifestPackageName)
}
@@ -534,3 +534,21 @@ func (a *apexBundle) buildFilesInfo(ctx android.ModuleContext) {
}
}
}
+
+func (a *apexBundle) getOverrideManifestPackageName(ctx android.ModuleContext) string {
+ // For VNDK APEXes, check "com.android.vndk" in PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES
+ // to see if it should be overridden because their <apex name> is dynamically generated
+ // according to its VNDK version.
+ if a.vndkApex {
+ overrideName, overridden := ctx.DeviceConfig().OverrideManifestPackageNameFor(vndkApexName)
+ if overridden {
+ return strings.Replace(*a.properties.Apex_name, vndkApexName, overrideName, 1)
+ }
+ return ""
+ }
+ manifestPackageName, overridden := ctx.DeviceConfig().OverrideManifestPackageNameFor(a.Name())
+ if overridden {
+ return manifestPackageName
+ }
+ return ""
+}
diff --git a/apex/vndk.go b/apex/vndk.go
index 15f7f87fe..43fcfcde0 100644
--- a/apex/vndk.go
+++ b/apex/vndk.go
@@ -26,7 +26,8 @@ import (
)
const (
- vndkApexNamePrefix = "com.android.vndk.v"
+ vndkApexName = "com.android.vndk"
+ vndkApexNamePrefix = vndkApexName + ".v"
)
// apex_vndk creates a special variant of apex modules which contains only VNDK libraries.