Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23ba8761 authored by mrziwang's avatar mrziwang
Browse files

Auto generate userdata.img

Test: CI and unit tests
Bug: 377563861
Change-Id: I42582db31377600412d2acf0dceab5ee9e15bc58
parent e130f47f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1599,6 +1599,17 @@ func (c *deviceConfig) OemPath() string {
	return "oem"
}

func (c *deviceConfig) UserdataPath() string {
	if c.config.productVariables.UserdataPath != nil {
		return *c.config.productVariables.UserdataPath
	}
	return "data"
}

func (c *deviceConfig) BuildingUserdataImage() bool {
	return proptools.Bool(c.config.productVariables.BuildingUserdataImage)
}

func (c *deviceConfig) BtConfigIncludeDir() string {
	return String(c.config.productVariables.BtConfigIncludeDir)
}
+13 −11
Original line number Diff line number Diff line
@@ -349,6 +349,8 @@ type ProductVariables struct {
	SystemExtPath         *string `json:",omitempty"`
	SystemDlkmPath        *string `json:",omitempty"`
	OemPath               *string `json:",omitempty"`
	UserdataPath          *string `json:",omitempty"`
	BuildingUserdataImage *bool   `json:",omitempty"`

	ClangTidy  *bool   `json:",omitempty"`
	TidyChecks *string `json:",omitempty"`
+3 −0
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ type PartitionNameProperties struct {
	Odm_partition_name *string
	// The vbmeta partition and its "chained" partitions
	Vbmeta_partitions []string
	// Name of the Userdata partition filesystem module
	Userdata_partition_name *string
}

type androidDevice struct {
@@ -70,6 +72,7 @@ func (a *androidDevice) DepsMutator(ctx android.BottomUpMutatorContext) {
	addDependencyIfDefined(a.partitionProps.Product_partition_name)
	addDependencyIfDefined(a.partitionProps.Vendor_partition_name)
	addDependencyIfDefined(a.partitionProps.Odm_partition_name)
	addDependencyIfDefined(a.partitionProps.Userdata_partition_name)
	for _, vbmetaPartition := range a.partitionProps.Vbmeta_partitions {
		ctx.AddDependency(ctx.Module(), filesystemDepTag, vbmetaPartition)
	}
+5 −0
Original line number Diff line number Diff line
@@ -130,6 +130,9 @@ func (f *filesystemCreator) createDeviceModule(
	if android.InList("odm", generatedPartitionTypes) {
		partitionProps.Odm_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "odm"))
	}
	if android.InList("userdata", f.properties.Generated_partition_types) {
		partitionProps.Userdata_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "userdata"))
	}
	partitionProps.Vbmeta_partitions = vbmetaPartitions

	ctx.CreateModule(filesystem.AndroidDeviceFactory, baseProps, partitionProps)
@@ -202,6 +205,8 @@ func partitionSpecificFsProps(fsProps *filesystem.FilesystemProperties, partitio
			},
		}
		fsProps.Base_dir = proptools.StringPtr("odm")
	case "userdata":
		fsProps.Base_dir = proptools.StringPtr("data")

	}
}
+4 −0
Original line number Diff line number Diff line
@@ -93,6 +93,9 @@ func generatedPartitions(ctx android.LoadHookContext) []string {
	if ctx.DeviceConfig().BuildingOdmImage() && ctx.DeviceConfig().OdmPath() == "odm" {
		generatedPartitions = append(generatedPartitions, "odm")
	}
	if ctx.DeviceConfig().BuildingUserdataImage() && ctx.DeviceConfig().UserdataPath() == "data" {
		generatedPartitions = append(generatedPartitions, "userdata")
	}
	if ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.BuildingSystemDlkmImage {
		generatedPartitions = append(generatedPartitions, "system_dlkm")
	}
@@ -144,6 +147,7 @@ func createFsGenState(ctx android.LoadHookContext, generatedPrebuiltEtcModuleNam
					"com.android.vndk.v34": defaultDepCandidateProps(ctx.Config()),
				},
				"system_dlkm": {},
				"userdata":    {},
			},
			fsDepsMutex:               sync.Mutex{},
			moduleToInstallationProps: map[string]installationProperties{},