Copy partition image files to PRODUCT_OUT
Implementation details:
- Copy the partition image files to PRODUCT_OUT via rsync
Test: m aosp_cf_x86_64_phone_generated_device
Bug: 376727180
Change-Id: I21c9ddc22def5a48a885176b53b886326d7c9243
diff --git a/filesystem/android_device.go b/filesystem/android_device.go
index 0a7b701..2382846 100644
--- a/filesystem/android_device.go
+++ b/filesystem/android_device.go
@@ -79,6 +79,8 @@
}
addDependencyIfDefined(a.partitionProps.Boot_partition_name)
+ addDependencyIfDefined(a.partitionProps.Vendor_boot_partition_name)
+ addDependencyIfDefined(a.partitionProps.Init_boot_partition_name)
addDependencyIfDefined(a.partitionProps.System_partition_name)
addDependencyIfDefined(a.partitionProps.System_ext_partition_name)
addDependencyIfDefined(a.partitionProps.Product_partition_name)
diff --git a/filesystem/bootimg.go b/filesystem/bootimg.go
index 36b1a18..c6fbccd 100644
--- a/filesystem/bootimg.go
+++ b/filesystem/bootimg.go
@@ -372,6 +372,10 @@
cmd.FlagWithArg("--rollback_index ", strconv.FormatInt(*b.properties.Avb_rollback_index, 10))
}
+ if !ctx.Config().KatiEnabled() {
+ copyImageFileToProductOut(ctx, builder, b.bootImageType.String(), output)
+ }
+
builder.Build("add_avb_footer", fmt.Sprintf("Adding avb footer to %s", b.BaseModuleName()))
return output
}
@@ -387,6 +391,10 @@
Implicits(toolDeps).
Output(output)
+ if !ctx.Config().KatiEnabled() {
+ copyImageFileToProductOut(ctx, builder, b.bootImageType.String(), output)
+ }
+
builder.Build("sign_bootimg", fmt.Sprintf("Signing %s", b.BaseModuleName()))
return output
}
diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go
index 6dfbfd1..4027b9a 100644
--- a/filesystem/filesystem.go
+++ b/filesystem/filesystem.go
@@ -600,6 +600,11 @@
builder.Command().Textf("cp -prf %s/* %s", rebasedDir, installPath)
}
+func copyImageFileToProductOut(ctx android.ModuleContext, builder *android.RuleBuilder, partition string, output android.Path) {
+ copyDir := android.PathForModuleInPartitionInstall(ctx, "").Join(ctx, fmt.Sprintf("%s.img", partition))
+ builder.Command().Textf("rsync -a %s %s", output, copyDir)
+}
+
func (f *filesystem) rootDirString() string {
return f.partitionName()
}
@@ -651,6 +656,10 @@
Output(output).
Text(rootDir.String()) // directory where to find fs_config_files|dirs
+ if !ctx.Config().KatiEnabled() {
+ copyImageFileToProductOut(ctx, builder, f.partitionName(), output)
+ }
+
// rootDir is not deleted. Might be useful for quick inspection.
builder.Build("build_filesystem_image", fmt.Sprintf("Creating filesystem %s", f.BaseModuleName()))
diff --git a/filesystem/vbmeta.go b/filesystem/vbmeta.go
index 6a47859..c8b4675 100644
--- a/filesystem/vbmeta.go
+++ b/filesystem/vbmeta.go
@@ -281,6 +281,10 @@
FlagWithArg("-s ", strconv.Itoa(vbmetaMaxSize)).
Output(output)
+ if !ctx.Config().KatiEnabled() {
+ copyImageFileToProductOut(ctx, builder, v.partitionName(), output)
+ }
+
builder.Build("vbmeta", fmt.Sprintf("vbmeta %s", ctx.ModuleName()))
v.installDir = android.PathForModuleInstall(ctx, "etc")