Support recovery and recovery_available

`recovery: true` installs a module to the recovery partition.
`recovery_available: true` makes a module to be available to other
`recovery:true` or `recovery_available: true` modules.

These to are very similar to vendor, vendor_available properties, except
for the target partition.

Bug: 67916654
Bug: 64960723
Test: m -j, toybox_recovery is installed to the recovery/root/sbin
Change-Id: Iaebe0593de16c69fa70de251a61f4d018a251509
This commit is contained in:
Jiyong Park
2018-02-01 00:54:12 +09:00
parent ff9d8911f6
commit f9332f1c86
11 changed files with 157 additions and 24 deletions

View File

@@ -47,6 +47,7 @@ type ModuleInstallPathContext interface {
InstallInData() bool
InstallInSanitizerDir() bool
InstallInRecovery() bool
}
var _ ModuleInstallPathContext = ModuleContext(nil)
@@ -948,6 +949,8 @@ func PathForModuleInstall(ctx ModuleInstallPathContext, pathComponents ...string
var partition string
if ctx.InstallInData() {
partition = "data"
} else if ctx.InstallInRecovery() {
partition = "recovery/root"
} else if ctx.SocSpecific() {
partition = ctx.DeviceConfig().VendorPath()
} else if ctx.DeviceSpecific() {