Merge "record-finalized-flags: pass in list of finalized flags" into main
diff --git a/aconfig/Android.bp b/aconfig/Android.bp
index 3484b97..43af201 100644
--- a/aconfig/Android.bp
+++ b/aconfig/Android.bp
@@ -34,7 +34,7 @@
 // but other verticals/platforms can override via soong config setting.
 all_aconfig_declarations {
     name: "all_aconfig_declarations",
-    api_files: select(soong_config_variable("android_aconfig", "opt_platform_api_srcs"), {
+    api_signature_files: select(soong_config_variable("android_aconfig", "opt_platform_api_srcs"), {
         default: [
             ":frameworks-base-api-current.txt",
             ":frameworks-base-api-system-current.txt",
@@ -42,4 +42,5 @@
             ":frameworks-base-api-module-lib-current.txt",
         ],
     }),
+    finalized_flags_file: ":finalized-flags",
 }
diff --git a/aconfig/all_aconfig_declarations.go b/aconfig/all_aconfig_declarations.go
index 9086c93..ec20099 100644
--- a/aconfig/all_aconfig_declarations.go
+++ b/aconfig/all_aconfig_declarations.go
@@ -43,7 +43,8 @@
 }
 
 type allAconfigReleaseDeclarationsProperties struct {
-	Api_files proptools.Configurable[[]string] `android:"arch_variant,path"`
+	Api_signature_files  proptools.Configurable[[]string] `android:"arch_variant,path"`
+	Finalized_flags_file string                           `android:"arch_variant,path"`
 }
 
 type allAconfigDeclarationsSingleton struct {
@@ -63,23 +64,25 @@
 }
 
 func (this *allAconfigDeclarationsSingleton) GenerateAndroidBuildActions(ctx android.ModuleContext) {
-	apiFiles := android.Paths{}
-	for _, apiFile := range this.properties.Api_files.GetOrDefault(ctx, nil) {
-		if path := android.PathForModuleSrc(ctx, apiFile); path != nil {
-			apiFiles = append(apiFiles, path)
+	apiSignatureFiles := android.Paths{}
+	for _, apiSignatureFile := range this.properties.Api_signature_files.GetOrDefault(ctx, nil) {
+		if path := android.PathForModuleSrc(ctx, apiSignatureFile); path != nil {
+			apiSignatureFiles = append(apiSignatureFiles, path)
 		}
 	}
-	flagFile := android.PathForIntermediates(ctx, "all_aconfig_declarations.pb")
+	finalizedFlagsFile := android.PathForModuleSrc(ctx, this.properties.Finalized_flags_file)
+	parsedFlagsFile := android.PathForIntermediates(ctx, "all_aconfig_declarations.pb")
 
 	output := android.PathForIntermediates(ctx, "finalized-flags.txt")
 
 	ctx.Build(pctx, android.BuildParams{
 		Rule:   RecordFinalizedFlagsRule,
-		Inputs: append(apiFiles, flagFile),
+		Inputs: append(apiSignatureFiles, finalizedFlagsFile, parsedFlagsFile),
 		Output: output,
 		Args: map[string]string{
-			"api_files": android.JoinPathsWithPrefix(apiFiles, "--api-file "),
-			"flag_file": "--flag-file " + flagFile.String(),
+			"api_signature_files":  android.JoinPathsWithPrefix(apiSignatureFiles, "--api-signature-file "),
+			"finalized_flags_file": "--finalized-flags-file " + finalizedFlagsFile.String(),
+			"parsed_flags_file":    "--parsed-flags-file " + parsedFlagsFile.String(),
 		},
 	})
 	ctx.Phony("all_aconfig_declarations", output)
diff --git a/aconfig/init.go b/aconfig/init.go
index 3d7b20d..3dcec5c 100644
--- a/aconfig/init.go
+++ b/aconfig/init.go
@@ -72,11 +72,11 @@
 		}, "cache_files")
 	RecordFinalizedFlagsRule = pctx.AndroidStaticRule("RecordFinalizedFlagsRule",
 		blueprint.RuleParams{
-			Command: `${record-finalized-flags} ${flag_file} ${api_files} > ${out}`,
+			Command: `${record-finalized-flags} ${parsed_flags_file} ${finalized_flags_file} ${api_signature_files} > ${out}`,
 			CommandDeps: []string{
 				"${record-finalized-flags}",
 			},
-		}, "api_files", "flag_file")
+		}, "api_signature_files", "finalized_flags_file", "parsed_flags_file")
 
 	CreateStorageRule = pctx.AndroidStaticRule("aconfig_create_storage",
 		blueprint.RuleParams{