Loading android/module.go +2 −0 Original line number Diff line number Diff line Loading @@ -1382,6 +1382,8 @@ func (m *ModuleBase) PartitionTag(config DeviceConfig) string { if config.SystemExtPath() == "system_ext" { partition = "system_ext" } } else if m.InstallInRamdisk() { partition = "ramdisk" } return partition } Loading android/variable.go +11 −1 Original line number Diff line number Diff line Loading @@ -606,10 +606,20 @@ type PartitionVariables struct { BoardExt4ShareDupBlocks string `json:",omitempty"` BoardFlashLogicalBlockSize string `json:",omitempty"` BoardFlashEraseBlockSize string `json:",omitempty"` BoardUsesRecoveryAsBoot bool `json:",omitempty"` ProductUseDynamicPartitionSize bool `json:",omitempty"` CopyImagesForTargetFilesZip bool `json:",omitempty"` // Boot image stuff ProductBuildBootImage bool `json:",omitempty"` ProductBuildInitBootImage bool `json:",omitempty"` BoardUsesRecoveryAsBoot bool `json:",omitempty"` BoardPrebuiltBootimage string `json:",omitempty"` BoardPrebuiltInitBootimage string `json:",omitempty"` BoardBootimagePartitionSize string `json:",omitempty"` BoardInitBootimagePartitionSize string `json:",omitempty"` BoardBootHeaderVersion string `json:",omitempty"` // Avb (android verified boot) stuff BoardAvbEnable bool `json:",omitempty"` BoardAvbAlgorithm string `json:",omitempty"` BoardAvbKeyPath string `json:",omitempty"` Loading filesystem/filesystem.go +7 −2 Original line number Diff line number Diff line Loading @@ -292,10 +292,14 @@ func (f *filesystem) partitionName() string { func (f *filesystem) FilterPackagingSpec(ps android.PackagingSpec) bool { // Filesystem module respects the installation semantic. A PackagingSpec from a module with // IsSkipInstall() is skipped. if ps.SkipInstall() { return false } if proptools.Bool(f.properties.Is_auto_generated) { // TODO (spandandas): Remove this. return !ps.SkipInstall() && (ps.Partition() == f.PartitionType()) pt := f.PartitionType() return pt == "ramdisk" || ps.Partition() == pt } return !ps.SkipInstall() return true } var pctx = android.NewPackageContext("android/soong/filesystem") Loading Loading @@ -664,6 +668,7 @@ var validPartitions = []string{ "vendor_dlkm", "odm_dlkm", "system_dlkm", "ramdisk", } func (f *filesystem) addMakeBuiltFiles(ctx android.ModuleContext, builder *android.RuleBuilder, rootDir android.Path) { Loading fsgen/filesystem_creator.go +12 −5 Original line number Diff line number Diff line Loading @@ -421,13 +421,20 @@ func generateFsProps(ctx android.EarlyModuleContext, partitionType string) (*fil fsProps := &filesystem.FilesystemProperties{} partitionVars := ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse specificPartitionVars := partitionVars.PartitionQualifiedVariables[partitionType] // BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE fsType := specificPartitionVars.BoardFileSystemType var specificPartitionVars android.PartitionQualifiedVariablesType var boardAvbEnable bool var fsType string if strings.Contains(partitionType, "ramdisk") { fsType = "compressed_cpio" } else { specificPartitionVars = partitionVars.PartitionQualifiedVariables[partitionType] boardAvbEnable = partitionVars.BoardAvbEnable 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 Loading @@ -439,7 +446,7 @@ func generateFsProps(ctx android.EarlyModuleContext, partitionType string) (*fil fsProps.Unchecked_module = proptools.BoolPtr(true) // BOARD_AVB_ENABLE fsProps.Use_avb = proptools.BoolPtr(partitionVars.BoardAvbEnable) fsProps.Use_avb = proptools.BoolPtr(boardAvbEnable) // BOARD_AVB_KEY_PATH fsProps.Avb_private_key = proptools.StringPtr(specificPartitionVars.BoardAvbKeyPath) // BOARD_AVB_ALGORITHM Loading fsgen/fsgen_mutators.go +11 −8 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ func defaultDepCandidateProps(config android.Config) *depCandidateProps { } func generatedPartitions(ctx android.LoadHookContext) []string { generatedPartitions := []string{"system"} generatedPartitions := []string{"system", "ramdisk"} if ctx.DeviceConfig().SystemExtPath() == "system_ext" { generatedPartitions = append(generatedPartitions, "system_ext") } Loading Loading @@ -171,6 +171,7 @@ func createFsGenState(ctx android.LoadHookContext, generatedPrebuiltEtcModuleNam "fs_config_files_odm_dlkm": defaultDepCandidateProps(ctx.Config()), "odm_dlkm-build.prop": defaultDepCandidateProps(ctx.Config()), }, "ramdisk": {}, }, fsDepsMutex: sync.Mutex{}, moduleToInstallationProps: map[string]installationProperties{}, Loading Loading @@ -205,29 +206,31 @@ func appendDepIfAppropriate(mctx android.BottomUpMutatorContext, deps *multilibD } func collectDepsMutator(mctx android.BottomUpMutatorContext) { m := mctx.Module() if m.Target().Os.Class != android.Device { return } fsGenState := mctx.Config().Get(fsGenStateOnceKey).(*FsGenState) m := mctx.Module() if m.Target().Os.Class == android.Device && slices.Contains(fsGenState.depCandidates, mctx.ModuleName()) { installPartition := m.PartitionTag(mctx.DeviceConfig()) fsGenState.fsDepsMutex.Lock() defer fsGenState.fsDepsMutex.Unlock() if slices.Contains(fsGenState.depCandidates, mctx.ModuleName()) { installPartition := m.PartitionTag(mctx.DeviceConfig()) // Only add the module as dependency when: // - its enabled // - its namespace is included in PRODUCT_SOONG_NAMESPACES if m.Enabled(mctx) && m.ExportedToMake() { appendDepIfAppropriate(mctx, fsGenState.fsDeps[installPartition], installPartition) } fsGenState.fsDepsMutex.Unlock() } // store the map of module to (required,overrides) even if the module is not in PRODUCT_PACKAGES. // the module might be installed transitively. if m.Target().Os.Class == android.Device && m.Enabled(mctx) && m.ExportedToMake() { fsGenState.fsDepsMutex.Lock() if m.Enabled(mctx) && m.ExportedToMake() { fsGenState.moduleToInstallationProps[m.Name()] = installationProperties{ Required: m.RequiredModuleNames(mctx), Overrides: m.Overrides(), } fsGenState.fsDepsMutex.Unlock() } } Loading Loading
android/module.go +2 −0 Original line number Diff line number Diff line Loading @@ -1382,6 +1382,8 @@ func (m *ModuleBase) PartitionTag(config DeviceConfig) string { if config.SystemExtPath() == "system_ext" { partition = "system_ext" } } else if m.InstallInRamdisk() { partition = "ramdisk" } return partition } Loading
android/variable.go +11 −1 Original line number Diff line number Diff line Loading @@ -606,10 +606,20 @@ type PartitionVariables struct { BoardExt4ShareDupBlocks string `json:",omitempty"` BoardFlashLogicalBlockSize string `json:",omitempty"` BoardFlashEraseBlockSize string `json:",omitempty"` BoardUsesRecoveryAsBoot bool `json:",omitempty"` ProductUseDynamicPartitionSize bool `json:",omitempty"` CopyImagesForTargetFilesZip bool `json:",omitempty"` // Boot image stuff ProductBuildBootImage bool `json:",omitempty"` ProductBuildInitBootImage bool `json:",omitempty"` BoardUsesRecoveryAsBoot bool `json:",omitempty"` BoardPrebuiltBootimage string `json:",omitempty"` BoardPrebuiltInitBootimage string `json:",omitempty"` BoardBootimagePartitionSize string `json:",omitempty"` BoardInitBootimagePartitionSize string `json:",omitempty"` BoardBootHeaderVersion string `json:",omitempty"` // Avb (android verified boot) stuff BoardAvbEnable bool `json:",omitempty"` BoardAvbAlgorithm string `json:",omitempty"` BoardAvbKeyPath string `json:",omitempty"` Loading
filesystem/filesystem.go +7 −2 Original line number Diff line number Diff line Loading @@ -292,10 +292,14 @@ func (f *filesystem) partitionName() string { func (f *filesystem) FilterPackagingSpec(ps android.PackagingSpec) bool { // Filesystem module respects the installation semantic. A PackagingSpec from a module with // IsSkipInstall() is skipped. if ps.SkipInstall() { return false } if proptools.Bool(f.properties.Is_auto_generated) { // TODO (spandandas): Remove this. return !ps.SkipInstall() && (ps.Partition() == f.PartitionType()) pt := f.PartitionType() return pt == "ramdisk" || ps.Partition() == pt } return !ps.SkipInstall() return true } var pctx = android.NewPackageContext("android/soong/filesystem") Loading Loading @@ -664,6 +668,7 @@ var validPartitions = []string{ "vendor_dlkm", "odm_dlkm", "system_dlkm", "ramdisk", } func (f *filesystem) addMakeBuiltFiles(ctx android.ModuleContext, builder *android.RuleBuilder, rootDir android.Path) { Loading
fsgen/filesystem_creator.go +12 −5 Original line number Diff line number Diff line Loading @@ -421,13 +421,20 @@ func generateFsProps(ctx android.EarlyModuleContext, partitionType string) (*fil fsProps := &filesystem.FilesystemProperties{} partitionVars := ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse specificPartitionVars := partitionVars.PartitionQualifiedVariables[partitionType] // BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE fsType := specificPartitionVars.BoardFileSystemType var specificPartitionVars android.PartitionQualifiedVariablesType var boardAvbEnable bool var fsType string if strings.Contains(partitionType, "ramdisk") { fsType = "compressed_cpio" } else { specificPartitionVars = partitionVars.PartitionQualifiedVariables[partitionType] boardAvbEnable = partitionVars.BoardAvbEnable 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 Loading @@ -439,7 +446,7 @@ func generateFsProps(ctx android.EarlyModuleContext, partitionType string) (*fil fsProps.Unchecked_module = proptools.BoolPtr(true) // BOARD_AVB_ENABLE fsProps.Use_avb = proptools.BoolPtr(partitionVars.BoardAvbEnable) fsProps.Use_avb = proptools.BoolPtr(boardAvbEnable) // BOARD_AVB_KEY_PATH fsProps.Avb_private_key = proptools.StringPtr(specificPartitionVars.BoardAvbKeyPath) // BOARD_AVB_ALGORITHM Loading
fsgen/fsgen_mutators.go +11 −8 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ func defaultDepCandidateProps(config android.Config) *depCandidateProps { } func generatedPartitions(ctx android.LoadHookContext) []string { generatedPartitions := []string{"system"} generatedPartitions := []string{"system", "ramdisk"} if ctx.DeviceConfig().SystemExtPath() == "system_ext" { generatedPartitions = append(generatedPartitions, "system_ext") } Loading Loading @@ -171,6 +171,7 @@ func createFsGenState(ctx android.LoadHookContext, generatedPrebuiltEtcModuleNam "fs_config_files_odm_dlkm": defaultDepCandidateProps(ctx.Config()), "odm_dlkm-build.prop": defaultDepCandidateProps(ctx.Config()), }, "ramdisk": {}, }, fsDepsMutex: sync.Mutex{}, moduleToInstallationProps: map[string]installationProperties{}, Loading Loading @@ -205,29 +206,31 @@ func appendDepIfAppropriate(mctx android.BottomUpMutatorContext, deps *multilibD } func collectDepsMutator(mctx android.BottomUpMutatorContext) { m := mctx.Module() if m.Target().Os.Class != android.Device { return } fsGenState := mctx.Config().Get(fsGenStateOnceKey).(*FsGenState) m := mctx.Module() if m.Target().Os.Class == android.Device && slices.Contains(fsGenState.depCandidates, mctx.ModuleName()) { installPartition := m.PartitionTag(mctx.DeviceConfig()) fsGenState.fsDepsMutex.Lock() defer fsGenState.fsDepsMutex.Unlock() if slices.Contains(fsGenState.depCandidates, mctx.ModuleName()) { installPartition := m.PartitionTag(mctx.DeviceConfig()) // Only add the module as dependency when: // - its enabled // - its namespace is included in PRODUCT_SOONG_NAMESPACES if m.Enabled(mctx) && m.ExportedToMake() { appendDepIfAppropriate(mctx, fsGenState.fsDeps[installPartition], installPartition) } fsGenState.fsDepsMutex.Unlock() } // store the map of module to (required,overrides) even if the module is not in PRODUCT_PACKAGES. // the module might be installed transitively. if m.Target().Os.Class == android.Device && m.Enabled(mctx) && m.ExportedToMake() { fsGenState.fsDepsMutex.Lock() if m.Enabled(mctx) && m.ExportedToMake() { fsGenState.moduleToInstallationProps[m.Name()] = installationProperties{ Required: m.RequiredModuleNames(mctx), Overrides: m.Overrides(), } fsGenState.fsDepsMutex.Unlock() } } Loading