summaryrefslogtreecommitdiff
path: root/filesystem/android_device.go
diff options
context:
space:
mode:
Diffstat (limited to 'filesystem/android_device.go')
-rw-r--r--filesystem/android_device.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/filesystem/android_device.go b/filesystem/android_device.go
index 6c048287b..b783d0f57 100644
--- a/filesystem/android_device.go
+++ b/filesystem/android_device.go
@@ -79,6 +79,8 @@ type androidDevice struct {
partitionProps PartitionNameProperties
deviceProps DeviceProperties
+
+ allImagesZip android.Path
}
func AndroidDeviceFactory() android.Module {
@@ -202,6 +204,17 @@ func (a *androidDevice) GenerateAndroidBuildActions(ctx android.ModuleContext) {
deps = append(deps, imageOutput.DefaultOutputFiles[0])
})
+ allImagesZip := android.PathForModuleOut(ctx, "all_images.zip")
+ allImagesZipBuilder := android.NewRuleBuilder(pctx, ctx)
+ cmd := allImagesZipBuilder.Command().BuiltTool("soong_zip").Flag("--sort_entries")
+ for _, dep := range deps {
+ cmd.FlagWithArg("-e ", dep.Base())
+ cmd.FlagWithInput("-f ", dep)
+ }
+ cmd.FlagWithOutput("-o ", allImagesZip)
+ allImagesZipBuilder.Build("soong_all_images_zip", "all_images.zip")
+ a.allImagesZip = allImagesZip
+
allImagesStamp := android.PathForModuleOut(ctx, "all_images_stamp")
var validations android.Paths
if !ctx.Config().KatiEnabled() && proptools.Bool(a.deviceProps.Main_device) {
@@ -226,6 +239,12 @@ func (a *androidDevice) GenerateAndroidBuildActions(ctx android.ModuleContext) {
a.setVbmetaPhonyTargets(ctx)
}
+func (a *androidDevice) MakeVars(ctx android.MakeVarsModuleContext) {
+ if proptools.Bool(a.deviceProps.Main_device) {
+ ctx.StrictRaw("SOONG_ONLY_ALL_IMAGES_ZIP", a.allImagesZip.String())
+ }
+}
+
// Helper structs for target_files.zip creation
type targetFilesZipCopy struct {
srcModule *string