Add installable property for prebuilt_apex
In case of shim apexes, we prebuilt all of them, but only need to install v1 to a system partition. Bug: 128677967 Test: manually checked that non-installable prebuilts don't end in /system Change-Id: I112432abfd8f03cc7d7379ea3cab3f5491ace49c
This commit is contained in:
@@ -1317,6 +1317,12 @@ type PrebuiltProperties struct {
|
|||||||
Src *string
|
Src *string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Installable *bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Prebuilt) installable() bool {
|
||||||
|
return p.properties.Installable == nil || proptools.Bool(p.properties.Installable)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
@@ -1351,8 +1357,10 @@ func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
// TODO(jungjw): Check the key validity.
|
// TODO(jungjw): Check the key validity.
|
||||||
p.inputApex = p.Prebuilt().SingleSourcePath(ctx)
|
p.inputApex = p.Prebuilt().SingleSourcePath(ctx)
|
||||||
p.installDir = android.PathForModuleInstall(ctx, "apex")
|
p.installDir = android.PathForModuleInstall(ctx, "apex")
|
||||||
|
if p.installable() {
|
||||||
ctx.InstallFile(p.installDir, ctx.ModuleName()+imageApexSuffix, p.inputApex)
|
ctx.InstallFile(p.installDir, ctx.ModuleName()+imageApexSuffix, p.inputApex)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (p *Prebuilt) Prebuilt() *android.Prebuilt {
|
func (p *Prebuilt) Prebuilt() *android.Prebuilt {
|
||||||
return &p.prebuilt
|
return &p.prebuilt
|
||||||
@@ -1371,6 +1379,7 @@ func (p *Prebuilt) AndroidMk() android.AndroidMkData {
|
|||||||
func(w io.Writer, outputFile android.Path) {
|
func(w io.Writer, outputFile android.Path) {
|
||||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", filepath.Join("$(OUT_DIR)", p.installDir.RelPathString()))
|
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", filepath.Join("$(OUT_DIR)", p.installDir.RelPathString()))
|
||||||
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", p.BaseModuleName()+imageApexSuffix)
|
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", p.BaseModuleName()+imageApexSuffix)
|
||||||
|
fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE :=", !p.installable())
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user