Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  recovery_build_prop.go   Sprache: unbekannt

 
Spracherkennung für: .go vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// Copyright 2024 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package android

import "github.com/google/blueprint/proptools"

func init() {
 RegisterModuleType("recovery_build_prop", RecoveryBuildPropModuleFactory)
}

type recoveryBuildPropProperties struct {
 // Path to the system build.prop file
 System_build_prop *string `android:"path"`

 // Path to the vendor build.prop file
 Vendor_build_prop *string `android:"path"`

 // Path to the odm build.prop file
 Odm_build_prop *string `android:"path"`

 // Path to the product build.prop file
 Product_build_prop *string `android:"path"`

 // Path to the system_ext build.prop file
 System_ext_build_prop *string `android:"path"`
}

type recoveryBuildPropModule struct {
 ModuleBase
 properties recoveryBuildPropProperties

 outputFilePath ModuleOutPath

 installPath InstallPath
}

func RecoveryBuildPropModuleFactory() Module {
 module := &recoveryBuildPropModule{}
 module.AddProperties(&module.properties)
 InitAndroidArchModule(module, DeviceSupported, MultilibCommon)
 return module
}

// Overrides ctx.Module().InstallInRoot().
// recovery_build_prop module always installs in root so that the prop.default
// file is installed in recovery/root instead of recovery/root/system
func (r *recoveryBuildPropModule) InstallInRoot() bool {
 return true
}

func (r *recoveryBuildPropModule) appendRecoveryUIProperties(ctx ModuleContext, rule *RuleBuilder) {
 rule.Command().Text("echo '#' >>").Output(r.outputFilePath)
 rule.Command().Text("echo '# RECOVERY UI BUILD PROPERTIES' >>").Output(r.outputFilePath)
 rule.Command().Text("echo '#' >>").Output(r.outputFilePath)

 for propName, val := range ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.PrivateRecoveryUiProperties {
  if len(val) > 0 {
   rule.Command().
    Textf("echo ro.recovery.ui.%s=%s >>", propName, val).
    Output(r.outputFilePath)
  }
 }
}

func (r *recoveryBuildPropModule) getBuildProps(ctx ModuleContext) Paths {
 var buildProps Paths
 for _, buildProp := range []*string{
  r.properties.System_build_prop,
  r.properties.Vendor_build_prop,
  r.properties.Odm_build_prop,
  r.properties.Product_build_prop,
  r.properties.System_ext_build_prop,
 } {
  if buildProp != nil {
   if buildPropPath := PathForModuleSrc(ctx, proptools.String(buildProp)); buildPropPath != nil {
    buildProps = append(buildProps, buildPropPath)
   }
  }
 }
 return buildProps
}

func (r *recoveryBuildPropModule) GenerateAndroidBuildActions(ctx ModuleContext) {
 if !r.InstallInRecovery() {
  ctx.ModuleErrorf("recovery_build_prop module must set `recovery` property to true")
 }
 r.outputFilePath = PathForModuleOut(ctx, ctx.ModuleName(), "prop.default")

 // Replicates the logic in https://cs.android.com/android/platform/superproject/main/+/main:build/make/core/Makefile;l=2733;drc=0585bb1bcf4c89065adaf709f48acc8b869fd3ce
 rule := NewRuleBuilder(pctx, ctx).SandboxDisabled()
 rule.Command().Text("rm").FlagWithOutput("-f ", r.outputFilePath)
 rule.Command().Text("cat").
  Inputs(r.getBuildProps(ctx)).
  Text(">>").
  Output(r.outputFilePath)
 r.appendRecoveryUIProperties(ctx, rule)

 rule.Build(ctx.ModuleName(), "generating recovery prop.default")
 r.installPath = PathForModuleInstall(ctx)
 ctx.InstallFile(r.installPath, "prop.default", r.outputFilePath)
}

[Dauer der Verarbeitung: 0.2 Sekunden, vorverarbeitet 2026-06-28]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik