diff options
-rw-r--r-- | aconfig/init.go | 4 | ||||
-rw-r--r-- | android/config.go | 4 | ||||
-rw-r--r-- | apex/builder.go | 7 | ||||
-rw-r--r-- | filesystem/aconfig_files.go | 10 |
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) } |