Revert "cc: use platform sdk version for vendor/product variants"

Revert submission 3334193-no-llndk-versioning

Reason for revert: Droidmonitor created revert  due to b/378038995. Will be verifying through ABTD before submission.

Reverted changes: /q/submissionid:3334193-no-llndk-versioning

Change-Id: I76eb9118407dfb2353384c312e17c40f4e590028
diff --git a/cc/cc.go b/cc/cc.go
index 0ed6238..5dee32e 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1567,11 +1567,12 @@
 	}
 
 	if ctx.ctx.Device() {
-		// When building for vendor/product, use the latest _stable_ API as "current".
-		// This is passed to clang/aidl compilers so that compiled/generated code works
-		// with the system.
-		if (ctx.inVendor() || ctx.inProduct()) && (ver == "" || ver == "current") {
-			ver = ctx.ctx.Config().PlatformSdkVersion().String()
+		config := ctx.ctx.Config()
+		if ctx.inVendor() {
+			// If building for vendor with final API, then use the latest _stable_ API as "current".
+			if config.VendorApiLevelFrozen() && (ver == "" || ver == "current") {
+				ver = config.PlatformSdkVersion().String()
+			}
 		}
 	}
 
diff --git a/cc/cc_test.go b/cc/cc_test.go
index f170d0a..e906706 100644
--- a/cc/cc_test.go
+++ b/cc/cc_test.go
@@ -3258,7 +3258,7 @@
 	testDepWithVariant("product")
 }
 
-func TestVendorOrProductVariantUsesPlatformSdkVersionAsDefault(t *testing.T) {
+func TestVendorSdkVersion(t *testing.T) {
 	t.Parallel()
 
 	bp := `
@@ -3266,29 +3266,31 @@
 			name: "libfoo",
 			srcs: ["libfoo.cc"],
 			vendor_available: true,
-			product_available: true,
 		}
 
 		cc_library {
 			name: "libbar",
 			srcs: ["libbar.cc"],
 			vendor_available: true,
-			product_available: true,
 			min_sdk_version: "29",
 		}
 	`
 
 	ctx := prepareForCcTest.RunTestWithBp(t, bp)
-	testSdkVersionFlag := func(module, variant, version string) {
-		flags := ctx.ModuleForTests(module, "android_"+variant+"_arm64_armv8-a_static").Rule("cc").Args["cFlags"]
-		android.AssertStringDoesContain(t, "target SDK version", flags, "-target aarch64-linux-android"+version)
+	testSdkVersionFlag := func(module, version string) {
+		flags := ctx.ModuleForTests(module, "android_vendor_arm64_armv8-a_static").Rule("cc").Args["cFlags"]
+		android.AssertStringDoesContain(t, "min sdk version", flags, "-target aarch64-linux-android"+version)
 	}
 
-	testSdkVersionFlag("libfoo", "vendor", "30")
-	testSdkVersionFlag("libfoo", "product", "30")
-	// target SDK version can be set explicitly with min_sdk_version
-	testSdkVersionFlag("libbar", "vendor", "29")
-	testSdkVersionFlag("libbar", "product", "29")
+	testSdkVersionFlag("libfoo", "10000")
+	testSdkVersionFlag("libbar", "29")
+
+	ctx = android.GroupFixturePreparers(
+		prepareForCcTest,
+		android.PrepareForTestWithBuildFlag("RELEASE_BOARD_API_LEVEL_FROZEN", "true"),
+	).RunTestWithBp(t, bp)
+	testSdkVersionFlag("libfoo", "30")
+	testSdkVersionFlag("libbar", "29")
 }
 
 func TestClangVerify(t *testing.T) {