diff options
| author | 2019-12-16 17:45:32 +0900 | |
|---|---|---|
| committer | 2019-12-17 15:22:21 +0000 | |
| commit | 27151d93b6425ba2e9260e41193458e2d3ec22d9 (patch) | |
| tree | 05a8b89a146b504ad3f81bf2786f33a19177fc32 | |
| parent | 7cf4b5de6b2d754e48aadeeeec0dc01b26264ee0 (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.go | 8 | ||||
| -rw-r--r-- | apex/builder.go | 22 | ||||
| -rw-r--r-- | apex/vndk.go | 3 |
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. |