From e6c053388b5d7f84da09557bf6529b839eda0c77 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 25 Apr 2018 14:54:06 -0700 Subject: Don't use AppsDefaultVersionName for framework-res.apk Some builds set AppsDefaultVersionName() to include the build number ("P-123456"). aapt2 copies the version name of framework-res into app manifests as compileSdkVersionCodename, which confuses things if it contains the build number. Use the DefaultAppTargetSdk ("P") instead. Bug: 78324052 Test: m TARGET_BUILD_WITH_APPS_VERSION_NAME=true Dialer aapt dump badging $OUT/system/priv-app/Dialer/Dialer.apk | grep compile shows compileSdkVersionCodename=P Change-Id: If67f40aae1066d4ff3bf97da1b2de2e1e250ad9c Merged-In: If67f40aae1066d4ff3bf97da1b2de2e1e250ad9c (cherry-picked from commit 402d5e091996abe6e69b5055150ab5438fc664ef) --- java/app.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/java/app.go b/java/app.go index 0db48e76..9360cc56 100644 --- a/java/app.go +++ b/java/app.go @@ -310,7 +310,16 @@ func (a *AndroidApp) aapt2Flags(ctx android.ModuleContext) (flags []string, deps } if !hasVersionName { - versionName := proptools.NinjaEscape([]string{ctx.Config().AppsDefaultVersionName()})[0] + var versionName string + if ctx.ModuleName() == "framework-res" { + // Some builds set AppsDefaultVersionName() to include the build number ("O-123456"). aapt2 copies the + // version name of framework-res into app manifests as compileSdkVersionCodename, which confuses things + // if it contains the build number. Use the DefaultAppTargetSdk instead. + versionName = ctx.Config().DefaultAppTargetSdk() + } else { + versionName = ctx.Config().AppsDefaultVersionName() + } + versionName = proptools.NinjaEscape([]string{versionName})[0] linkFlags = append(linkFlags, "--version-name ", versionName) } -- cgit v1.2.3