summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aconfig/init.go4
-rw-r--r--android/config.go4
-rw-r--r--apex/builder.go7
-rw-r--r--filesystem/aconfig_files.go10
4 files changed, 22 insertions, 3 deletions
diff --git a/aconfig/init.go b/aconfig/init.go
index 621d619fd..21903e212 100644
--- a/aconfig/init.go
+++ b/aconfig/init.go
@@ -73,11 +73,11 @@ var (
CreateStorageRule = pctx.AndroidStaticRule("aconfig_create_storage",
blueprint.RuleParams{
- Command: `${aconfig} create-storage --container ${container} --file ${file_type} --out ${out} ${cache_files}`,
+ Command: `${aconfig} create-storage --container ${container} --file ${file_type} --out ${out} ${cache_files} --version ${version}`,
CommandDeps: []string{
"${aconfig}",
},
- }, "container", "file_type", "cache_files")
+ }, "container", "file_type", "cache_files", "version")
// For exported_java_aconfig_library: Generate a JAR from all
// java_aconfig_libraries to be consumed by apps built outside the
diff --git a/android/config.go b/android/config.go
index d78bbf774..a660baa47 100644
--- a/android/config.go
+++ b/android/config.go
@@ -289,6 +289,10 @@ func (c Config) ReleaseUseSystemFeatureBuildFlags() bool {
return c.config.productVariables.GetBuildFlagBool("RELEASE_USE_SYSTEM_FEATURE_BUILD_FLAGS")
}
+func (c Config) ReleaseFingerprintAconfigPackages() bool {
+ return c.config.productVariables.GetBuildFlagBool("RELEASE_FINGERPRINT_ACONFIG_PACKAGES")
+}
+
// A DeviceConfig object represents the configuration for a particular device
// being built. For now there will only be one of these, but in the future there
// may be multiple devices being built.
diff --git a/apex/builder.go b/apex/builder.go
index 7e6664437..597c53c36 100644
--- a/apex/builder.go
+++ b/apex/builder.go
@@ -275,6 +275,12 @@ func (a *apexBundle) buildAconfigFiles(ctx android.ModuleContext) []apexFile {
})
files = append(files, newApexFile(ctx, apexAconfigFile, "aconfig_flags", "etc", etc, nil))
+ // To enable fingerprint, we need to have v2 storage files. The default version is 1.
+ storageFilesVersion := 1
+ if ctx.Config().ReleaseFingerprintAconfigPackages() {
+ storageFilesVersion = 2
+ }
+
for _, info := range createStorageInfo {
outputFile := android.PathForModuleOut(ctx, info.Output_file)
ctx.Build(pctx, android.BuildParams{
@@ -286,6 +292,7 @@ func (a *apexBundle) buildAconfigFiles(ctx android.ModuleContext) []apexFile {
"container": ctx.ModuleName(),
"file_type": info.File_type,
"cache_files": android.JoinPathsWithPrefix(aconfigFiles, "--cache "),
+ "version": strconv.Itoa(storageFilesVersion),
},
})
files = append(files, newApexFile(ctx, outputFile, info.File_type, "etc", etc, nil))
diff --git a/filesystem/aconfig_files.go b/filesystem/aconfig_files.go
index c80ae03d7..c1cbecd32 100644
--- a/filesystem/aconfig_files.go
+++ b/filesystem/aconfig_files.go
@@ -16,6 +16,7 @@ package filesystem
import (
"android/soong/android"
+ "strconv"
"github.com/google/blueprint/proptools"
)
@@ -45,6 +46,12 @@ func (f *filesystem) buildAconfigFlagsFiles(ctx android.ModuleContext, builder *
installAconfigStorageDir := dir.Join(ctx, "etc", "aconfig")
builder.Command().Text("mkdir -p").Text(installAconfigStorageDir.String())
+ // To enable fingerprint, we need to have v2 storage files. The default version is 1.
+ storageFilesVersion := 1
+ if ctx.Config().ReleaseFingerprintAconfigPackages() {
+ storageFilesVersion = 2
+ }
+
generatePartitionAconfigStorageFile := func(fileType, fileName string) {
outputPath := installAconfigStorageDir.Join(ctx, fileName)
builder.Command().
@@ -52,7 +59,8 @@ func (f *filesystem) buildAconfigFlagsFiles(ctx android.ModuleContext, builder *
FlagWithArg("create-storage --container ", f.PartitionType()).
FlagWithArg("--file ", fileType).
FlagWithOutput("--out ", outputPath).
- FlagWithArg("--cache ", installAconfigFlagsPath.String())
+ FlagWithArg("--cache ", installAconfigFlagsPath.String()).
+ FlagWithArg("--version ", strconv.Itoa(storageFilesVersion))
f.appendToEntry(ctx, outputPath)
}