Allow codename.fingerprint format for targetSdkVersion
Use codename.fingerprint format for targetSdkVersion if it is unset
in the manifest and UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true.
Test: manual
Bug: 130541924
Change-Id: I4e3b1274cc32038b00b292dc6d67559eb320e9e4
diff --git a/java/android_manifest.go b/java/android_manifest.go
index d72476d..39cf471 100644
--- a/java/android_manifest.go
+++ b/java/android_manifest.go
@@ -68,15 +68,27 @@
args = append(args, "--use-embedded-dex=true")
}
+ var deps android.Paths
+ targetSdkVersion := sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion())
+ if targetSdkVersion == ctx.Config().PlatformSdkCodename() &&
+ ctx.Config().UnbundledBuild() &&
+ !ctx.Config().UnbundledBuildUsePrebuiltSdks() &&
+ ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") {
+ apiFingerprint := apiFingerprintPath(ctx)
+ targetSdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String())
+ deps = append(deps, apiFingerprint)
+ }
+
// Inject minSdkVersion into the manifest
fixedManifest := android.PathForModuleOut(ctx, "manifest_fixer", "AndroidManifest.xml")
ctx.Build(pctx, android.BuildParams{
- Rule: manifestFixerRule,
- Input: manifest,
- Output: fixedManifest,
+ Rule: manifestFixerRule,
+ Input: manifest,
+ Implicits: deps,
+ Output: fixedManifest,
Args: map[string]string{
"minSdkVersion": sdkVersionOrDefault(ctx, sdkContext.minSdkVersion()),
- "targetSdkVersion": sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion()),
+ "targetSdkVersion": targetSdkVersion,
"args": strings.Join(args, " "),
},
})