diff --git a/apex/builder.go b/apex/builder.go index 290c1ea90..912218864 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -376,17 +376,15 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) { } targetSdkVersion := ctx.Config().DefaultAppTargetSdk() - minSdkVersion := ctx.Config().DefaultAppTargetSdk() - if java.UseApiFingerprint(ctx, targetSdkVersion) { - targetSdkVersion += fmt.Sprintf(".$$(cat %s)", java.ApiFingerprintPath(ctx).String()) - implicitInputs = append(implicitInputs, java.ApiFingerprintPath(ctx)) - } - if java.UseApiFingerprint(ctx, minSdkVersion) { - minSdkVersion += fmt.Sprintf(".$$(cat %s)", java.ApiFingerprintPath(ctx).String()) - implicitInputs = append(implicitInputs, java.ApiFingerprintPath(ctx)) + if targetSdkVersion == ctx.Config().PlatformSdkCodename() && + ctx.Config().UnbundledBuild() && + !ctx.Config().UnbundledBuildUsePrebuiltSdks() && + ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") { + apiFingerprint := java.ApiFingerprintPath(ctx) + targetSdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String()) + implicitInputs = append(implicitInputs, apiFingerprint) } optFlags = append(optFlags, "--target_sdk_version "+targetSdkVersion) - optFlags = append(optFlags, "--min_sdk_version "+minSdkVersion) noticeFile := a.buildNoticeFile(ctx, a.Name()+suffix) if noticeFile.Valid() { diff --git a/java/android_manifest.go b/java/android_manifest.go index dc7a3fc7e..021883e60 100644 --- a/java/android_manifest.go +++ b/java/android_manifest.go @@ -93,11 +93,13 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext var deps android.Paths targetSdkVersion := sdkVersionOrDefault(ctx, sdkContext.targetSdkVersion()) - minSdkVersion := sdkVersionOrDefault(ctx, sdkContext.minSdkVersion()) - if (UseApiFingerprint(ctx, sdkContext.targetSdkVersion()) || - UseApiFingerprint(ctx, sdkContext.minSdkVersion())) { - apiFingerprint := ApiFingerprintPath(ctx) - deps = append(deps, apiFingerprint) + 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) } fixedManifest := android.PathForModuleOut(ctx, "manifest_fixer", "AndroidManifest.xml") @@ -108,7 +110,7 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext Implicits: deps, Output: fixedManifest, Args: map[string]string{ - "minSdkVersion": minSdkVersion, + "minSdkVersion": sdkVersionOrDefault(ctx, sdkContext.minSdkVersion()), "targetSdkVersion": targetSdkVersion, "args": strings.Join(args, " "), }, diff --git a/java/sdk.go b/java/sdk.go index 73b7dcf78..66eb284ba 100644 --- a/java/sdk.go +++ b/java/sdk.go @@ -47,29 +47,13 @@ type sdkContext interface { targetSdkVersion() string } -func UseApiFingerprint(ctx android.BaseModuleContext, v string) bool { - if v == ctx.Config().PlatformSdkCodename() && - ctx.Config().UnbundledBuild() && - !ctx.Config().UnbundledBuildUsePrebuiltSdks() && - ctx.Config().IsEnvTrue("UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT") { - return true - } - return false -} - func sdkVersionOrDefault(ctx android.BaseModuleContext, v string) string { - var sdkVersion string switch v { case "", "none", "current", "test_current", "system_current", "core_current", "core_platform": - sdkVersion = ctx.Config().DefaultAppTargetSdk() + return ctx.Config().DefaultAppTargetSdk() default: - sdkVersion = v + return v } - if UseApiFingerprint(ctx, sdkVersion) { - apiFingerprint := ApiFingerprintPath(ctx) - sdkVersion += fmt.Sprintf(".$$(cat %s)", apiFingerprint.String()) - } - return sdkVersion } // Returns a sdk version as a number. For modules targeting an unreleased SDK (meaning it does not yet have a number)