diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go
index 18cba77..df8101c 100644
--- a/cmd/soong_ui/main.go
+++ b/cmd/soong_ui/main.go
@@ -59,6 +59,9 @@
 
 	// run the command
 	run func(ctx build.Context, config build.Config, args []string)
+
+	// whether to do common setup before calling run.
+	doSetup bool
 }
 
 // list of supported commands (flags) supported by soong ui
@@ -69,6 +72,7 @@
 		config:      build.NewConfig,
 		stdio:       stdio,
 		run:         runMake,
+		doSetup:     true,
 	}, {
 		flag:         "--dumpvar-mode",
 		description:  "print the value of the legacy make variable VAR to stdout",
@@ -77,6 +81,7 @@
 		config:       dumpVarConfig,
 		stdio:        customStdio,
 		run:          dumpVar,
+		doSetup:      true,
 	}, {
 		flag:         "--dumpvars-mode",
 		description:  "dump the values of one or more legacy make variables, in shell syntax",
@@ -85,6 +90,7 @@
 		config:       dumpVarConfig,
 		stdio:        customStdio,
 		run:          dumpVars,
+		doSetup:      true,
 	}, {
 		flag:        "--build-mode",
 		description: "build modules based on the specified build action",
@@ -182,8 +188,12 @@
 		CriticalPath: criticalPath,
 	}}
 
-	config := c.config(buildCtx, args...)
-	config.SetLogsPrefix(c.logsPrefix)
+	freshConfig := func() build.Config {
+		config := c.config(buildCtx, args...)
+		config.SetLogsPrefix(c.logsPrefix)
+		return config
+	}
+	config := freshConfig()
 	logsDir := config.LogsDir()
 	buildStarted = config.BuildStartedTimeOrDefault(buildStarted)
 
@@ -213,6 +223,16 @@
 		log.Verbosef("  [%d] %s", i, arg)
 	}
 
+	if c.doSetup {
+		// We need to call logAndSymlinkSetup before we can do product
+		// config, which is how we get PRODUCT_CONFIG_RELEASE_MAPS set
+		// for the final product config for the build.
+		logAndSymlinkSetup(buildCtx, config)
+		if build.SetProductReleaseConfigMaps(buildCtx, config) {
+			config = freshConfig()
+		}
+
+	}
 	defer func() {
 		stat.Finish()
 		criticalPath.WriteToMetrics(met)
@@ -311,7 +331,6 @@
 }
 
 func dumpVar(ctx build.Context, config build.Config, args []string) {
-	logAndSymlinkSetup(ctx, config)
 	flags := flag.NewFlagSet("dumpvar", flag.ExitOnError)
 	flags.SetOutput(ctx.Writer)
 
@@ -364,7 +383,6 @@
 }
 
 func dumpVars(ctx build.Context, config build.Config, args []string) {
-	logAndSymlinkSetup(ctx, config)
 
 	flags := flag.NewFlagSet("dumpvars", flag.ExitOnError)
 	flags.SetOutput(ctx.Writer)
@@ -544,7 +562,6 @@
 }
 
 func runMake(ctx build.Context, config build.Config, _ []string) {
-	logAndSymlinkSetup(ctx, config)
 	logsDir := config.LogsDir()
 	if config.IsVerbose() {
 		writer := ctx.Writer
