diff options
Diffstat (limited to 'filesystem/android_device.go')
-rw-r--r-- | filesystem/android_device.go | 19 |
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 |