Conditionally pass kernel version to build.prop

This is to replicate Makefile's behavior as-is.

Bug: 322090587
Test: build and compare build command
Change-Id: Ib9ebec920701ea561a007bf2a1ae092ae1b4ff28
diff --git a/android/build_prop.go b/android/build_prop.go
index 80bbfc1..14e5e23 100644
--- a/android/build_prop.go
+++ b/android/build_prop.go
@@ -121,7 +121,12 @@
 		postProcessCmd.Flag("--allow-dup")
 	}
 	postProcessCmd.FlagWithArg("--sdk-version ", config.PlatformSdkVersion().String())
-	postProcessCmd.FlagWithInput("--kernel-version-file-for-uffd-gc ", PathForOutput(ctx, "dexpreopt/kernel_version_for_uffd_gc.txt"))
+	if ctx.Config().EnableUffdGc() == "default" {
+		postProcessCmd.FlagWithInput("--kernel-version-file-for-uffd-gc ", PathForOutput(ctx, "dexpreopt/kernel_version_for_uffd_gc.txt"))
+	} else {
+		// still need to pass an empty string to kernel-version-file-for-uffd-gc
+		postProcessCmd.FlagWithArg("--kernel-version-file-for-uffd-gc ", `""`)
+	}
 	postProcessCmd.Text(p.outputFilePath.String())
 	postProcessCmd.Flags(p.properties.Block_list)
 
diff --git a/android/config.go b/android/config.go
index 92aae7e..5f2307c 100644
--- a/android/config.go
+++ b/android/config.go
@@ -2081,3 +2081,7 @@
 func (c *config) SystemPropFiles(ctx PathContext) Paths {
 	return PathsForSource(ctx, c.productVariables.SystemPropFiles)
 }
+
+func (c *config) EnableUffdGc() string {
+	return String(c.productVariables.EnableUffdGc)
+}
diff --git a/android/variable.go b/android/variable.go
index 5356e85..2abe80b 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -508,6 +508,8 @@
 	ArtTargetIncludeDebugBuild *bool `json:",omitempty"`
 
 	SystemPropFiles []string `json:",omitempty"`
+
+	EnableUffdGc *string `json:",omitempty"`
 }
 
 type PartitionQualifiedVariablesType struct {