Loading filesystem/filesystem.go +14 −3 Original line number Diff line number Diff line Loading @@ -198,6 +198,10 @@ const ( unknown ) func (fs fsType) IsUnknown() bool { return fs == unknown } type FilesystemInfo struct { // A text file containing the list of paths installed on the partition. FileListFile android.Path Loading @@ -205,8 +209,7 @@ type FilesystemInfo struct { var FilesystemProvider = blueprint.NewProvider[FilesystemInfo]() func (f *filesystem) fsType(ctx android.ModuleContext) fsType { typeStr := proptools.StringDefault(f.properties.Type, "ext4") func GetFsTypeFromString(ctx android.EarlyModuleContext, typeStr string) fsType { switch typeStr { case "ext4": return ext4Type Loading @@ -217,11 +220,19 @@ func (f *filesystem) fsType(ctx android.ModuleContext) fsType { case "cpio": return cpioType default: ctx.PropertyErrorf("type", "%q not supported", typeStr) return unknown } } func (f *filesystem) fsType(ctx android.ModuleContext) fsType { typeStr := proptools.StringDefault(f.properties.Type, "ext4") fsType := GetFsTypeFromString(ctx, typeStr) if fsType == unknown { ctx.PropertyErrorf("type", "%q not supported", typeStr) } return fsType } func (f *filesystem) installFileName() string { return f.BaseModuleName() + ".img" } Loading fsgen/filesystem_creator.go +16 −7 Original line number Diff line number Diff line Loading @@ -114,7 +114,11 @@ func filesystemCreatorFactory() android.Module { } func (f *filesystemCreator) createInternalModules(ctx android.LoadHookContext) { for _, partitionType := range []string{"system"} { partitionTypes := []string{"system"} if ctx.DeviceConfig().SystemExtPath() == "system_ext" { // system_ext exists partitionTypes = append(partitionTypes, "system_ext") } for _, partitionType := range partitionTypes { if f.createPartition(ctx, partitionType) { f.properties.Generated_partition_types = append(f.properties.Generated_partition_types, partitionType) } else { Loading Loading @@ -143,11 +147,14 @@ func (f *filesystemCreator) createDeviceModule(ctx android.LoadHookContext) { Name: proptools.StringPtr(f.generatedModuleName(ctx.Config(), "device")), } // Currently, only the system partition module is created. // Currently, only the system and system_ext partition module is created. partitionProps := &filesystem.PartitionNameProperties{} if android.InList("system", f.properties.Generated_partition_types) { partitionProps.System_partition_name = proptools.StringPtr(f.generatedModuleNameForPartition(ctx.Config(), "system")) } if android.InList("system_ext", f.properties.Generated_partition_types) { partitionProps.System_ext_partition_name = proptools.StringPtr(f.generatedModuleNameForPartition(ctx.Config(), "system_ext")) } ctx.CreateModule(filesystem.AndroidDeviceFactory, baseProps, partitionProps) } Loading Loading @@ -183,11 +190,13 @@ func (f *filesystemCreator) createPartition(ctx android.LoadHookContext, partiti fsProps.Partition_name = proptools.StringPtr(partitionType) // BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE fsProps.Type = proptools.StringPtr(specificPartitionVars.BoardFileSystemType) if *fsProps.Type != "ext4" { // TODO(b/372522486): Support other FS types. // Currently the android_filesystem module type only supports ext4: // https://cs.android.com/android/platform/superproject/main/+/main:build/soong/filesystem/filesystem.go;l=416;drc=98047cfd07944b297a12d173453bc984806760d2 fsType := specificPartitionVars.BoardFileSystemType if fsType == "" { fsType = "ext4" //default } fsProps.Type = proptools.StringPtr(fsType) if filesystem.GetFsTypeFromString(ctx, *fsProps.Type).IsUnknown() { // Currently the android_filesystem module type only supports a handful of FS types like ext4, erofs return false } Loading Loading
filesystem/filesystem.go +14 −3 Original line number Diff line number Diff line Loading @@ -198,6 +198,10 @@ const ( unknown ) func (fs fsType) IsUnknown() bool { return fs == unknown } type FilesystemInfo struct { // A text file containing the list of paths installed on the partition. FileListFile android.Path Loading @@ -205,8 +209,7 @@ type FilesystemInfo struct { var FilesystemProvider = blueprint.NewProvider[FilesystemInfo]() func (f *filesystem) fsType(ctx android.ModuleContext) fsType { typeStr := proptools.StringDefault(f.properties.Type, "ext4") func GetFsTypeFromString(ctx android.EarlyModuleContext, typeStr string) fsType { switch typeStr { case "ext4": return ext4Type Loading @@ -217,11 +220,19 @@ func (f *filesystem) fsType(ctx android.ModuleContext) fsType { case "cpio": return cpioType default: ctx.PropertyErrorf("type", "%q not supported", typeStr) return unknown } } func (f *filesystem) fsType(ctx android.ModuleContext) fsType { typeStr := proptools.StringDefault(f.properties.Type, "ext4") fsType := GetFsTypeFromString(ctx, typeStr) if fsType == unknown { ctx.PropertyErrorf("type", "%q not supported", typeStr) } return fsType } func (f *filesystem) installFileName() string { return f.BaseModuleName() + ".img" } Loading
fsgen/filesystem_creator.go +16 −7 Original line number Diff line number Diff line Loading @@ -114,7 +114,11 @@ func filesystemCreatorFactory() android.Module { } func (f *filesystemCreator) createInternalModules(ctx android.LoadHookContext) { for _, partitionType := range []string{"system"} { partitionTypes := []string{"system"} if ctx.DeviceConfig().SystemExtPath() == "system_ext" { // system_ext exists partitionTypes = append(partitionTypes, "system_ext") } for _, partitionType := range partitionTypes { if f.createPartition(ctx, partitionType) { f.properties.Generated_partition_types = append(f.properties.Generated_partition_types, partitionType) } else { Loading Loading @@ -143,11 +147,14 @@ func (f *filesystemCreator) createDeviceModule(ctx android.LoadHookContext) { Name: proptools.StringPtr(f.generatedModuleName(ctx.Config(), "device")), } // Currently, only the system partition module is created. // Currently, only the system and system_ext partition module is created. partitionProps := &filesystem.PartitionNameProperties{} if android.InList("system", f.properties.Generated_partition_types) { partitionProps.System_partition_name = proptools.StringPtr(f.generatedModuleNameForPartition(ctx.Config(), "system")) } if android.InList("system_ext", f.properties.Generated_partition_types) { partitionProps.System_ext_partition_name = proptools.StringPtr(f.generatedModuleNameForPartition(ctx.Config(), "system_ext")) } ctx.CreateModule(filesystem.AndroidDeviceFactory, baseProps, partitionProps) } Loading Loading @@ -183,11 +190,13 @@ func (f *filesystemCreator) createPartition(ctx android.LoadHookContext, partiti fsProps.Partition_name = proptools.StringPtr(partitionType) // BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE fsProps.Type = proptools.StringPtr(specificPartitionVars.BoardFileSystemType) if *fsProps.Type != "ext4" { // TODO(b/372522486): Support other FS types. // Currently the android_filesystem module type only supports ext4: // https://cs.android.com/android/platform/superproject/main/+/main:build/soong/filesystem/filesystem.go;l=416;drc=98047cfd07944b297a12d173453bc984806760d2 fsType := specificPartitionVars.BoardFileSystemType if fsType == "" { fsType = "ext4" //default } fsProps.Type = proptools.StringPtr(fsType) if filesystem.GetFsTypeFromString(ctx, *fsProps.Type).IsUnknown() { // Currently the android_filesystem module type only supports a handful of FS types like ext4, erofs return false } Loading