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 402d5e0919)
This commit is contained in:
Colin Cross
2018-04-25 14:54:06 -07:00
parent 2cc7d9fc78
commit e6c053388b

View File

@@ -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)
}