From 2cc42505d91aca2c9fc75b904eed69d7f4210af6 Mon Sep 17 00:00:00 2001 From: Justin Yun Date: Wed, 11 Sep 2024 14:10:20 +0900 Subject: [PATCH] Soong system image may update the $PRODUCT_OUT A target must define "USE_SOONG_DEFINED_SYSTEM_IMAGE := true" and "PRODUCT_SOONG_DEFINED_SYSTEM_IMAGE := " to use the soong defined system image. The system image must install the files to $PRODUCT_OUT for adb sync and build verification. Instead of using 'update_product_out' property in Android.bp, copy the files only if the name of the image matches with PRODUCT_SOONG_DEFINED_SYSTEM_IMAGE. Bug: 350599535 Bug: 365700376 Test: lunch aosp_x86_64-trunk_staging-userdebug && m && m aosp_cf_system_x86_64 Test: lunch aosp_cf_x86_64_phone_soong_system-trunk_staging-userdebug && m and adb sync on the cf device Change-Id: If8673ba2855a753a5559a588bd83068d950fd7e4 --- android/config.go | 11 +++++++++++ android/variable.go | 3 +++ filesystem/filesystem.go | 5 +---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/android/config.go b/android/config.go index b682c2e93..368e57381 100644 --- a/android/config.go +++ b/android/config.go @@ -1663,6 +1663,17 @@ func (c *config) ApexTrimEnabled() bool { return Bool(c.productVariables.TrimmedApex) } +func (c *config) UseSoongSystemImage() bool { + return Bool(c.productVariables.UseSoongSystemImage) +} + +func (c *config) SoongDefinedSystemImage() string { + if c.UseSoongSystemImage() { + return String(c.productVariables.ProductSoongDefinedSystemImage) + } + return "" +} + func (c *config) EnforceSystemCertificate() bool { return Bool(c.productVariables.EnforceSystemCertificate) } diff --git a/android/variable.go b/android/variable.go index b238c4a5d..e0d512d3a 100644 --- a/android/variable.go +++ b/android/variable.go @@ -423,6 +423,9 @@ type ProductVariables struct { TargetFSConfigGen []string `json:",omitempty"` + UseSoongSystemImage *bool `json:",omitempty"` + ProductSoongDefinedSystemImage *string `json:",omitempty"` + EnforceProductPartitionInterface *bool `json:",omitempty"` EnforceInterPartitionJavaSdkLibrary *bool `json:",omitempty"` diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go index a8f97e3b7..0b390624f 100644 --- a/filesystem/filesystem.go +++ b/filesystem/filesystem.go @@ -136,9 +136,6 @@ type filesystemProperties struct { // Install aconfig_flags.pb file for the modules installed in this partition. Gen_aconfig_flags_pb *bool - // Update the Base_dir of the $PRODUCT_OUT directory with the packaging files. - Update_product_out *bool - Fsverity fsverityProperties } @@ -335,7 +332,7 @@ func (f *filesystem) copyPackagingSpecs(ctx android.ModuleContext, builder *andr } func (f *filesystem) copyFilesToProductOut(ctx android.ModuleContext, builder *android.RuleBuilder, rebasedDir android.OutputPath) { - if !proptools.Bool(f.properties.Update_product_out) { + if f.Name() != ctx.Config().SoongDefinedSystemImage() { return } installPath := android.PathForModuleInPartitionInstall(ctx, f.partitionName())