Rename product_services to system_ext
Bug: 134359158 Test: build and check if system_ext.img is created Change-Id: Ice3229baf97a94c24a6eea22e7d4571941d7f843
This commit is contained in:
parent
cfec40c41b
commit
d5f6c8261a
11 changed files with 70 additions and 63 deletions
|
@ -216,7 +216,10 @@ func (a *AndroidMkEntries) fillInEntries(config Config, bpPath string, mod bluep
|
|||
}
|
||||
a.SetBoolIfTrue("LOCAL_ODM_MODULE", Bool(amod.commonProperties.Device_specific))
|
||||
a.SetBoolIfTrue("LOCAL_PRODUCT_MODULE", Bool(amod.commonProperties.Product_specific))
|
||||
a.SetBoolIfTrue("LOCAL_PRODUCT_SERVICES_MODULE", Bool(amod.commonProperties.Product_services_specific))
|
||||
// TODO(b/135957588) product_services_specific is matched to LOCAL_PRODUCT_MODULE
|
||||
// as a workaround. Remove this after clearing all Android.bp
|
||||
a.SetBoolIfTrue("LOCAL_PRODUCT_MODULE", Bool(amod.commonProperties.Product_services_specific))
|
||||
a.SetBoolIfTrue("LOCAL_SYSTEM_EXT_MODULE", Bool(amod.commonProperties.System_ext_specific))
|
||||
if amod.commonProperties.Owner != nil {
|
||||
a.SetString("LOCAL_MODULE_OWNER", *amod.commonProperties.Owner)
|
||||
}
|
||||
|
|
|
@ -901,11 +901,11 @@ func (c *deviceConfig) ProductPath() string {
|
|||
return "product"
|
||||
}
|
||||
|
||||
func (c *deviceConfig) ProductServicesPath() string {
|
||||
if c.config.productVariables.ProductServicesPath != nil {
|
||||
return *c.config.productVariables.ProductServicesPath
|
||||
func (c *deviceConfig) SystemExtPath() string {
|
||||
if c.config.productVariables.SystemExtPath != nil {
|
||||
return *c.config.productVariables.SystemExtPath
|
||||
}
|
||||
return "product_services"
|
||||
return "system_ext"
|
||||
}
|
||||
|
||||
func (c *deviceConfig) BtConfigIncludeDir() string {
|
||||
|
|
|
@ -126,7 +126,7 @@ type BaseModuleContext interface {
|
|||
DeviceSpecific() bool
|
||||
SocSpecific() bool
|
||||
ProductSpecific() bool
|
||||
ProductServicesSpecific() bool
|
||||
SystemExtSpecific() bool
|
||||
AConfig() Config
|
||||
DeviceConfig() DeviceConfig
|
||||
}
|
||||
|
@ -350,11 +350,15 @@ type commonProperties struct {
|
|||
// /system/product if product partition does not exist).
|
||||
Product_specific *bool
|
||||
|
||||
// whether this module provides services owned by the OS provider to the core platform. When set
|
||||
// to true, it is installed into /product_services (or /system/product_services if
|
||||
// product_services partition does not exist).
|
||||
// TODO(b/135957588) Product_services_specific will be removed once we clear all Android.bp
|
||||
// files that have 'product_services_specific: true'. This will be converted to
|
||||
// Product_speicific as a workaround.
|
||||
Product_services_specific *bool
|
||||
|
||||
// whether this module extends system. When set to true, it is installed into /system_ext
|
||||
// (or /system/system_ext if system_ext partition does not exist).
|
||||
System_ext_specific *bool
|
||||
|
||||
// Whether this module is installed to recovery partition
|
||||
Recovery *bool
|
||||
|
||||
|
@ -469,7 +473,7 @@ const (
|
|||
deviceSpecificModule
|
||||
socSpecificModule
|
||||
productSpecificModule
|
||||
productServicesSpecificModule
|
||||
systemExtSpecificModule
|
||||
)
|
||||
|
||||
func (k moduleKind) String() string {
|
||||
|
@ -482,8 +486,8 @@ func (k moduleKind) String() string {
|
|||
return "soc-specific"
|
||||
case productSpecificModule:
|
||||
return "product-specific"
|
||||
case productServicesSpecificModule:
|
||||
return "productservices-specific"
|
||||
case systemExtSpecificModule:
|
||||
return "systemext-specific"
|
||||
default:
|
||||
panic(fmt.Errorf("unknown module kind %d", k))
|
||||
}
|
||||
|
@ -738,7 +742,7 @@ func (m *ModuleBase) DeviceSupported() bool {
|
|||
}
|
||||
|
||||
func (m *ModuleBase) Platform() bool {
|
||||
return !m.DeviceSpecific() && !m.SocSpecific() && !m.ProductSpecific() && !m.ProductServicesSpecific()
|
||||
return !m.DeviceSpecific() && !m.SocSpecific() && !m.ProductSpecific() && !m.SystemExtSpecific()
|
||||
}
|
||||
|
||||
func (m *ModuleBase) DeviceSpecific() bool {
|
||||
|
@ -753,8 +757,8 @@ func (m *ModuleBase) ProductSpecific() bool {
|
|||
return Bool(m.commonProperties.Product_specific)
|
||||
}
|
||||
|
||||
func (m *ModuleBase) ProductServicesSpecific() bool {
|
||||
return Bool(m.commonProperties.Product_services_specific)
|
||||
func (m *ModuleBase) SystemExtSpecific() bool {
|
||||
return Bool(m.commonProperties.System_ext_specific)
|
||||
}
|
||||
|
||||
func (m *ModuleBase) Enabled() bool {
|
||||
|
@ -875,7 +879,7 @@ func determineModuleKind(m *ModuleBase, ctx blueprint.BaseModuleContext) moduleK
|
|||
var socSpecific = Bool(m.commonProperties.Vendor) || Bool(m.commonProperties.Proprietary) || Bool(m.commonProperties.Soc_specific)
|
||||
var deviceSpecific = Bool(m.commonProperties.Device_specific)
|
||||
var productSpecific = Bool(m.commonProperties.Product_specific)
|
||||
var productServicesSpecific = Bool(m.commonProperties.Product_services_specific)
|
||||
var systemExtSpecific = Bool(m.commonProperties.System_ext_specific)
|
||||
|
||||
msg := "conflicting value set here"
|
||||
if socSpecific && deviceSpecific {
|
||||
|
@ -891,16 +895,16 @@ func determineModuleKind(m *ModuleBase, ctx blueprint.BaseModuleContext) moduleK
|
|||
}
|
||||
}
|
||||
|
||||
if productSpecific && productServicesSpecific {
|
||||
ctx.PropertyErrorf("product_specific", "a module cannot be specific to product and product_services at the same time.")
|
||||
ctx.PropertyErrorf("product_services_specific", msg)
|
||||
if productSpecific && systemExtSpecific {
|
||||
ctx.PropertyErrorf("product_specific", "a module cannot be specific to product and system_ext at the same time.")
|
||||
ctx.PropertyErrorf("system_ext_specific", msg)
|
||||
}
|
||||
|
||||
if (socSpecific || deviceSpecific) && (productSpecific || productServicesSpecific) {
|
||||
if (socSpecific || deviceSpecific) && (productSpecific || systemExtSpecific) {
|
||||
if productSpecific {
|
||||
ctx.PropertyErrorf("product_specific", "a module cannot be specific to SoC or device and product at the same time.")
|
||||
} else {
|
||||
ctx.PropertyErrorf("product_services_specific", "a module cannot be specific to SoC or device and product_services at the same time.")
|
||||
ctx.PropertyErrorf("system_ext_specific", "a module cannot be specific to SoC or device and system_ext at the same time.")
|
||||
}
|
||||
if deviceSpecific {
|
||||
ctx.PropertyErrorf("device_specific", msg)
|
||||
|
@ -919,8 +923,8 @@ func determineModuleKind(m *ModuleBase, ctx blueprint.BaseModuleContext) moduleK
|
|||
|
||||
if productSpecific {
|
||||
return productSpecificModule
|
||||
} else if productServicesSpecific {
|
||||
return productServicesSpecificModule
|
||||
} else if systemExtSpecific {
|
||||
return systemExtSpecificModule
|
||||
} else if deviceSpecific {
|
||||
return deviceSpecificModule
|
||||
} else if socSpecific {
|
||||
|
@ -1433,18 +1437,18 @@ func (b *baseModuleContext) ProductSpecific() bool {
|
|||
return b.kind == productSpecificModule
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) ProductServicesSpecific() bool {
|
||||
return b.kind == productServicesSpecificModule
|
||||
func (b *baseModuleContext) SystemExtSpecific() bool {
|
||||
return b.kind == systemExtSpecificModule
|
||||
}
|
||||
|
||||
// Makes this module a platform module, i.e. not specific to soc, device,
|
||||
// product, or product_services.
|
||||
// product, or system_ext.
|
||||
func (m *ModuleBase) MakeAsPlatform() {
|
||||
m.commonProperties.Vendor = boolPtr(false)
|
||||
m.commonProperties.Proprietary = boolPtr(false)
|
||||
m.commonProperties.Soc_specific = boolPtr(false)
|
||||
m.commonProperties.Product_specific = boolPtr(false)
|
||||
m.commonProperties.Product_services_specific = boolPtr(false)
|
||||
m.commonProperties.System_ext_specific = boolPtr(false)
|
||||
}
|
||||
|
||||
func (m *ModuleBase) EnableNativeBridgeSupportByDefault() {
|
||||
|
|
|
@ -1145,8 +1145,8 @@ func modulePartition(ctx ModuleInstallPathContext) string {
|
|||
partition = ctx.DeviceConfig().OdmPath()
|
||||
} else if ctx.ProductSpecific() {
|
||||
partition = ctx.DeviceConfig().ProductPath()
|
||||
} else if ctx.ProductServicesSpecific() {
|
||||
partition = ctx.DeviceConfig().ProductServicesPath()
|
||||
} else if ctx.SystemExtSpecific() {
|
||||
partition = ctx.DeviceConfig().SystemExtPath()
|
||||
} else {
|
||||
partition = "system"
|
||||
}
|
||||
|
|
|
@ -294,15 +294,15 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
out: "target/product/test_device/product/bin/my_test",
|
||||
},
|
||||
{
|
||||
name: "product_services binary",
|
||||
name: "system_ext binary",
|
||||
ctx: &moduleInstallPathContextImpl{
|
||||
baseModuleContext: baseModuleContext{
|
||||
target: deviceTarget,
|
||||
kind: productServicesSpecificModule,
|
||||
kind: systemExtSpecificModule,
|
||||
},
|
||||
},
|
||||
in: []string{"bin", "my_test"},
|
||||
out: "target/product/test_device/product_services/bin/my_test",
|
||||
out: "target/product/test_device/system_ext/bin/my_test",
|
||||
},
|
||||
|
||||
{
|
||||
|
@ -354,11 +354,11 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
},
|
||||
|
||||
{
|
||||
name: "product_services native test binary",
|
||||
name: "system_ext native test binary",
|
||||
ctx: &moduleInstallPathContextImpl{
|
||||
baseModuleContext: baseModuleContext{
|
||||
target: deviceTarget,
|
||||
kind: productServicesSpecificModule,
|
||||
kind: systemExtSpecificModule,
|
||||
},
|
||||
inData: true,
|
||||
},
|
||||
|
@ -415,16 +415,16 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
},
|
||||
|
||||
{
|
||||
name: "sanitized product_services binary",
|
||||
name: "sanitized system_ext binary",
|
||||
ctx: &moduleInstallPathContextImpl{
|
||||
baseModuleContext: baseModuleContext{
|
||||
target: deviceTarget,
|
||||
kind: productServicesSpecificModule,
|
||||
kind: systemExtSpecificModule,
|
||||
},
|
||||
inSanitizerDir: true,
|
||||
},
|
||||
in: []string{"bin", "my_test"},
|
||||
out: "target/product/test_device/data/asan/product_services/bin/my_test",
|
||||
out: "target/product/test_device/data/asan/system_ext/bin/my_test",
|
||||
},
|
||||
|
||||
{
|
||||
|
@ -479,11 +479,11 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
out: "target/product/test_device/data/asan/data/nativetest/my_test",
|
||||
},
|
||||
{
|
||||
name: "sanitized product_services native test binary",
|
||||
name: "sanitized system_ext native test binary",
|
||||
ctx: &moduleInstallPathContextImpl{
|
||||
baseModuleContext: baseModuleContext{
|
||||
target: deviceTarget,
|
||||
kind: productServicesSpecificModule,
|
||||
kind: systemExtSpecificModule,
|
||||
},
|
||||
inData: true,
|
||||
inSanitizerDir: true,
|
||||
|
|
|
@ -232,10 +232,10 @@ type productVariables struct {
|
|||
EnableXOM *bool `json:",omitempty"`
|
||||
XOMExcludePaths []string `json:",omitempty"`
|
||||
|
||||
VendorPath *string `json:",omitempty"`
|
||||
OdmPath *string `json:",omitempty"`
|
||||
ProductPath *string `json:",omitempty"`
|
||||
ProductServicesPath *string `json:",omitempty"`
|
||||
VendorPath *string `json:",omitempty"`
|
||||
OdmPath *string `json:",omitempty"`
|
||||
ProductPath *string `json:",omitempty"`
|
||||
SystemExtPath *string `json:",omitempty"`
|
||||
|
||||
ClangTidy *bool `json:",omitempty"`
|
||||
TidyChecks *string `json:",omitempty"`
|
||||
|
|
|
@ -192,7 +192,7 @@ func init() {
|
|||
"LOCAL_VENDOR_MODULE": "vendor",
|
||||
"LOCAL_ODM_MODULE": "device_specific",
|
||||
"LOCAL_PRODUCT_MODULE": "product_specific",
|
||||
"LOCAL_PRODUCT_SERVICES_MODULE": "product_services_specific",
|
||||
"LOCAL_SYSTEM_EXT_MODULE": "system_ext_specific",
|
||||
"LOCAL_EXPORT_PACKAGE_RESOURCES": "export_package_resources",
|
||||
"LOCAL_PRIVILEGED_MODULE": "privileged",
|
||||
"LOCAL_AAPT_INCLUDE_ALL_RESOURCES": "aapt_include_all_resources",
|
||||
|
@ -602,8 +602,8 @@ func prebuiltModulePath(ctx variableAssignmentContext) error {
|
|||
return fmt.Errorf("Cannot handle appending to LOCAL_MODULE_PATH")
|
||||
}
|
||||
// Analyze value in order to set the correct values for the 'device_specific',
|
||||
// 'product_specific', 'product_services_specific' 'vendor'/'soc_specific',
|
||||
// 'product_services_specific' attribute. Two cases are allowed:
|
||||
// 'product_specific', 'system_ext_specific' 'vendor'/'soc_specific',
|
||||
// 'system_ext_specific' attribute. Two cases are allowed:
|
||||
// $(VAR)/<literal-value>
|
||||
// $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/<literal-value>
|
||||
// The last case is equivalent to $(TARGET_OUT_VENDOR)/<literal-value>
|
||||
|
|
|
@ -957,37 +957,37 @@ prebuilt_etc {
|
|||
`,
|
||||
},
|
||||
{
|
||||
desc: "prebuilt_etc_TARGET_OUT_PRODUCT_SERVICES/etc",
|
||||
desc: "prebuilt_etc_TARGET_OUT_SYSTEM_EXT/etc",
|
||||
in: `
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := etc.test1
|
||||
LOCAL_MODULE_CLASS := ETC
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_SERVICES)/etc/foo/bar
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT)/etc/foo/bar
|
||||
include $(BUILD_PREBUILT)
|
||||
`,
|
||||
expected: `
|
||||
prebuilt_etc {
|
||||
name: "etc.test1",
|
||||
sub_dir: "foo/bar",
|
||||
product_services_specific: true,
|
||||
system_ext_specific: true,
|
||||
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
desc: "prebuilt_etc_TARGET_OUT_PRODUCT_SERVICES_ETC",
|
||||
desc: "prebuilt_etc_TARGET_OUT_SYSTEM_EXT_ETC",
|
||||
in: `
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := etc.test1
|
||||
LOCAL_MODULE_CLASS := ETC
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_SERVICES_ETC)/foo/bar
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT_ETC)/foo/bar
|
||||
include $(BUILD_PREBUILT)
|
||||
`,
|
||||
expected: `
|
||||
prebuilt_etc {
|
||||
name: "etc.test1",
|
||||
sub_dir: "foo/bar",
|
||||
product_services_specific: true,
|
||||
system_ext_specific: true,
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -508,15 +508,15 @@ var localModuleUpdate = map[string][]etcPrebuiltModuleUpdate{
|
|||
"TARGET_OUT": {{prefix: "/usr/share", modType: "prebuilt_usr_share"}, {prefix: "/fonts", modType: "prebuilt_font"},
|
||||
{prefix: "/etc/firmware", modType: "prebuilt_firmware"}, {prefix: "/vendor/firmware", modType: "prebuilt_firmware", flags: []string{"proprietary"}},
|
||||
{prefix: "/etc"}},
|
||||
"TARGET_OUT_ETC": {{prefix: "/firmware", modType: "prebuilt_firmware"}, {prefix: ""}},
|
||||
"TARGET_OUT_PRODUCT": {{prefix: "/etc", flags: []string{"product_specific"}}, {prefix: "/fonts", modType: "prebuilt_font", flags: []string{"product_specific"}}},
|
||||
"TARGET_OUT_PRODUCT_ETC": {{prefix: "", flags: []string{"product_specific"}}},
|
||||
"TARGET_OUT_ODM": {{prefix: "/etc", flags: []string{"device_specific"}}},
|
||||
"TARGET_OUT_PRODUCT_SERVICES": {{prefix: "/etc", flags: []string{"product_services_specific"}}},
|
||||
"TARGET_OUT_PRODUCT_SERVICES_ETC": {{prefix: "", flags: []string{"product_services_specific"}}},
|
||||
"TARGET_OUT_VENDOR": {{prefix: "/etc", flags: []string{"proprietary"}}, {prefix: "/firmware", modType: "prebuilt_firmware", flags: []string{"proprietary"}}},
|
||||
"TARGET_OUT_VENDOR_ETC": {{prefix: "", flags: []string{"proprietary"}}},
|
||||
"TARGET_RECOVERY_ROOT_OUT": {{prefix: "/system/etc", flags: []string{"recovery"}}},
|
||||
"TARGET_OUT_ETC": {{prefix: "/firmware", modType: "prebuilt_firmware"}, {prefix: ""}},
|
||||
"TARGET_OUT_PRODUCT": {{prefix: "/etc", flags: []string{"product_specific"}}, {prefix: "/fonts", modType: "prebuilt_font", flags: []string{"product_specific"}}},
|
||||
"TARGET_OUT_PRODUCT_ETC": {{prefix: "", flags: []string{"product_specific"}}},
|
||||
"TARGET_OUT_ODM": {{prefix: "/etc", flags: []string{"device_specific"}}},
|
||||
"TARGET_OUT_SYSTEM_EXT": {{prefix: "/etc", flags: []string{"system_ext_specific"}}},
|
||||
"TARGET_OUT_SYSTEM_EXT_ETC": {{prefix: "", flags: []string{"system_ext_specific"}}},
|
||||
"TARGET_OUT_VENDOR": {{prefix: "/etc", flags: []string{"proprietary"}}, {prefix: "/firmware", modType: "prebuilt_firmware", flags: []string{"proprietary"}}},
|
||||
"TARGET_OUT_VENDOR_ETC": {{prefix: "", flags: []string{"proprietary"}}},
|
||||
"TARGET_RECOVERY_ROOT_OUT": {{prefix: "/system/etc", flags: []string{"recovery"}}},
|
||||
}
|
||||
|
||||
// rewriteAndroidPrebuiltEtc fixes prebuilt_etc rule
|
||||
|
|
|
@ -28,7 +28,7 @@ var targetZipPartitions = []string{
|
|||
"ODM/",
|
||||
"OEM/",
|
||||
"PRODUCT/",
|
||||
"PRODUCT_SERVICES/",
|
||||
"SYSTEM_EXT/",
|
||||
"ROOT/",
|
||||
"SYSTEM/",
|
||||
"SYSTEM_OTHER/",
|
||||
|
|
|
@ -111,7 +111,7 @@ func installClean(ctx Context, config Config, what int) {
|
|||
productOut("system_other"),
|
||||
productOut("vendor"),
|
||||
productOut("product"),
|
||||
productOut("product_services"),
|
||||
productOut("system_ext"),
|
||||
productOut("oem"),
|
||||
productOut("obj/FAKE"),
|
||||
productOut("breakpad"),
|
||||
|
|
Loading…
Reference in a new issue