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:
@@ -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_ODM_MODULE", Bool(amod.commonProperties.Device_specific))
|
||||||
a.SetBoolIfTrue("LOCAL_PRODUCT_MODULE", Bool(amod.commonProperties.Product_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 {
|
if amod.commonProperties.Owner != nil {
|
||||||
a.SetString("LOCAL_MODULE_OWNER", *amod.commonProperties.Owner)
|
a.SetString("LOCAL_MODULE_OWNER", *amod.commonProperties.Owner)
|
||||||
}
|
}
|
||||||
|
@@ -901,11 +901,11 @@ func (c *deviceConfig) ProductPath() string {
|
|||||||
return "product"
|
return "product"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *deviceConfig) ProductServicesPath() string {
|
func (c *deviceConfig) SystemExtPath() string {
|
||||||
if c.config.productVariables.ProductServicesPath != nil {
|
if c.config.productVariables.SystemExtPath != nil {
|
||||||
return *c.config.productVariables.ProductServicesPath
|
return *c.config.productVariables.SystemExtPath
|
||||||
}
|
}
|
||||||
return "product_services"
|
return "system_ext"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *deviceConfig) BtConfigIncludeDir() string {
|
func (c *deviceConfig) BtConfigIncludeDir() string {
|
||||||
|
@@ -126,7 +126,7 @@ type BaseModuleContext interface {
|
|||||||
DeviceSpecific() bool
|
DeviceSpecific() bool
|
||||||
SocSpecific() bool
|
SocSpecific() bool
|
||||||
ProductSpecific() bool
|
ProductSpecific() bool
|
||||||
ProductServicesSpecific() bool
|
SystemExtSpecific() bool
|
||||||
AConfig() Config
|
AConfig() Config
|
||||||
DeviceConfig() DeviceConfig
|
DeviceConfig() DeviceConfig
|
||||||
}
|
}
|
||||||
@@ -350,11 +350,15 @@ type commonProperties struct {
|
|||||||
// /system/product if product partition does not exist).
|
// /system/product if product partition does not exist).
|
||||||
Product_specific *bool
|
Product_specific *bool
|
||||||
|
|
||||||
// whether this module provides services owned by the OS provider to the core platform. When set
|
// TODO(b/135957588) Product_services_specific will be removed once we clear all Android.bp
|
||||||
// to true, it is installed into /product_services (or /system/product_services if
|
// files that have 'product_services_specific: true'. This will be converted to
|
||||||
// product_services partition does not exist).
|
// Product_speicific as a workaround.
|
||||||
Product_services_specific *bool
|
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
|
// Whether this module is installed to recovery partition
|
||||||
Recovery *bool
|
Recovery *bool
|
||||||
|
|
||||||
@@ -469,7 +473,7 @@ const (
|
|||||||
deviceSpecificModule
|
deviceSpecificModule
|
||||||
socSpecificModule
|
socSpecificModule
|
||||||
productSpecificModule
|
productSpecificModule
|
||||||
productServicesSpecificModule
|
systemExtSpecificModule
|
||||||
)
|
)
|
||||||
|
|
||||||
func (k moduleKind) String() string {
|
func (k moduleKind) String() string {
|
||||||
@@ -482,8 +486,8 @@ func (k moduleKind) String() string {
|
|||||||
return "soc-specific"
|
return "soc-specific"
|
||||||
case productSpecificModule:
|
case productSpecificModule:
|
||||||
return "product-specific"
|
return "product-specific"
|
||||||
case productServicesSpecificModule:
|
case systemExtSpecificModule:
|
||||||
return "productservices-specific"
|
return "systemext-specific"
|
||||||
default:
|
default:
|
||||||
panic(fmt.Errorf("unknown module kind %d", k))
|
panic(fmt.Errorf("unknown module kind %d", k))
|
||||||
}
|
}
|
||||||
@@ -738,7 +742,7 @@ func (m *ModuleBase) DeviceSupported() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *ModuleBase) Platform() 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 {
|
func (m *ModuleBase) DeviceSpecific() bool {
|
||||||
@@ -753,8 +757,8 @@ func (m *ModuleBase) ProductSpecific() bool {
|
|||||||
return Bool(m.commonProperties.Product_specific)
|
return Bool(m.commonProperties.Product_specific)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ModuleBase) ProductServicesSpecific() bool {
|
func (m *ModuleBase) SystemExtSpecific() bool {
|
||||||
return Bool(m.commonProperties.Product_services_specific)
|
return Bool(m.commonProperties.System_ext_specific)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ModuleBase) Enabled() bool {
|
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 socSpecific = Bool(m.commonProperties.Vendor) || Bool(m.commonProperties.Proprietary) || Bool(m.commonProperties.Soc_specific)
|
||||||
var deviceSpecific = Bool(m.commonProperties.Device_specific)
|
var deviceSpecific = Bool(m.commonProperties.Device_specific)
|
||||||
var productSpecific = Bool(m.commonProperties.Product_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"
|
msg := "conflicting value set here"
|
||||||
if socSpecific && deviceSpecific {
|
if socSpecific && deviceSpecific {
|
||||||
@@ -891,16 +895,16 @@ func determineModuleKind(m *ModuleBase, ctx blueprint.BaseModuleContext) moduleK
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if productSpecific && productServicesSpecific {
|
if productSpecific && systemExtSpecific {
|
||||||
ctx.PropertyErrorf("product_specific", "a module cannot be specific to product and product_services at the same time.")
|
ctx.PropertyErrorf("product_specific", "a module cannot be specific to product and system_ext at the same time.")
|
||||||
ctx.PropertyErrorf("product_services_specific", msg)
|
ctx.PropertyErrorf("system_ext_specific", msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (socSpecific || deviceSpecific) && (productSpecific || productServicesSpecific) {
|
if (socSpecific || deviceSpecific) && (productSpecific || systemExtSpecific) {
|
||||||
if productSpecific {
|
if productSpecific {
|
||||||
ctx.PropertyErrorf("product_specific", "a module cannot be specific to SoC or device and product at the same time.")
|
ctx.PropertyErrorf("product_specific", "a module cannot be specific to SoC or device and product at the same time.")
|
||||||
} else {
|
} 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 {
|
if deviceSpecific {
|
||||||
ctx.PropertyErrorf("device_specific", msg)
|
ctx.PropertyErrorf("device_specific", msg)
|
||||||
@@ -919,8 +923,8 @@ func determineModuleKind(m *ModuleBase, ctx blueprint.BaseModuleContext) moduleK
|
|||||||
|
|
||||||
if productSpecific {
|
if productSpecific {
|
||||||
return productSpecificModule
|
return productSpecificModule
|
||||||
} else if productServicesSpecific {
|
} else if systemExtSpecific {
|
||||||
return productServicesSpecificModule
|
return systemExtSpecificModule
|
||||||
} else if deviceSpecific {
|
} else if deviceSpecific {
|
||||||
return deviceSpecificModule
|
return deviceSpecificModule
|
||||||
} else if socSpecific {
|
} else if socSpecific {
|
||||||
@@ -1433,18 +1437,18 @@ func (b *baseModuleContext) ProductSpecific() bool {
|
|||||||
return b.kind == productSpecificModule
|
return b.kind == productSpecificModule
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *baseModuleContext) ProductServicesSpecific() bool {
|
func (b *baseModuleContext) SystemExtSpecific() bool {
|
||||||
return b.kind == productServicesSpecificModule
|
return b.kind == systemExtSpecificModule
|
||||||
}
|
}
|
||||||
|
|
||||||
// Makes this module a platform module, i.e. not specific to soc, device,
|
// 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() {
|
func (m *ModuleBase) MakeAsPlatform() {
|
||||||
m.commonProperties.Vendor = boolPtr(false)
|
m.commonProperties.Vendor = boolPtr(false)
|
||||||
m.commonProperties.Proprietary = boolPtr(false)
|
m.commonProperties.Proprietary = boolPtr(false)
|
||||||
m.commonProperties.Soc_specific = boolPtr(false)
|
m.commonProperties.Soc_specific = boolPtr(false)
|
||||||
m.commonProperties.Product_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() {
|
func (m *ModuleBase) EnableNativeBridgeSupportByDefault() {
|
||||||
|
@@ -1145,8 +1145,8 @@ func modulePartition(ctx ModuleInstallPathContext) string {
|
|||||||
partition = ctx.DeviceConfig().OdmPath()
|
partition = ctx.DeviceConfig().OdmPath()
|
||||||
} else if ctx.ProductSpecific() {
|
} else if ctx.ProductSpecific() {
|
||||||
partition = ctx.DeviceConfig().ProductPath()
|
partition = ctx.DeviceConfig().ProductPath()
|
||||||
} else if ctx.ProductServicesSpecific() {
|
} else if ctx.SystemExtSpecific() {
|
||||||
partition = ctx.DeviceConfig().ProductServicesPath()
|
partition = ctx.DeviceConfig().SystemExtPath()
|
||||||
} else {
|
} else {
|
||||||
partition = "system"
|
partition = "system"
|
||||||
}
|
}
|
||||||
|
@@ -294,15 +294,15 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||||||
out: "target/product/test_device/product/bin/my_test",
|
out: "target/product/test_device/product/bin/my_test",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "product_services binary",
|
name: "system_ext binary",
|
||||||
ctx: &moduleInstallPathContextImpl{
|
ctx: &moduleInstallPathContextImpl{
|
||||||
baseModuleContext: baseModuleContext{
|
baseModuleContext: baseModuleContext{
|
||||||
target: deviceTarget,
|
target: deviceTarget,
|
||||||
kind: productServicesSpecificModule,
|
kind: systemExtSpecificModule,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
in: []string{"bin", "my_test"},
|
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{
|
ctx: &moduleInstallPathContextImpl{
|
||||||
baseModuleContext: baseModuleContext{
|
baseModuleContext: baseModuleContext{
|
||||||
target: deviceTarget,
|
target: deviceTarget,
|
||||||
kind: productServicesSpecificModule,
|
kind: systemExtSpecificModule,
|
||||||
},
|
},
|
||||||
inData: true,
|
inData: true,
|
||||||
},
|
},
|
||||||
@@ -415,16 +415,16 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
name: "sanitized product_services binary",
|
name: "sanitized system_ext binary",
|
||||||
ctx: &moduleInstallPathContextImpl{
|
ctx: &moduleInstallPathContextImpl{
|
||||||
baseModuleContext: baseModuleContext{
|
baseModuleContext: baseModuleContext{
|
||||||
target: deviceTarget,
|
target: deviceTarget,
|
||||||
kind: productServicesSpecificModule,
|
kind: systemExtSpecificModule,
|
||||||
},
|
},
|
||||||
inSanitizerDir: true,
|
inSanitizerDir: true,
|
||||||
},
|
},
|
||||||
in: []string{"bin", "my_test"},
|
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",
|
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{
|
ctx: &moduleInstallPathContextImpl{
|
||||||
baseModuleContext: baseModuleContext{
|
baseModuleContext: baseModuleContext{
|
||||||
target: deviceTarget,
|
target: deviceTarget,
|
||||||
kind: productServicesSpecificModule,
|
kind: systemExtSpecificModule,
|
||||||
},
|
},
|
||||||
inData: true,
|
inData: true,
|
||||||
inSanitizerDir: true,
|
inSanitizerDir: true,
|
||||||
|
@@ -232,10 +232,10 @@ type productVariables struct {
|
|||||||
EnableXOM *bool `json:",omitempty"`
|
EnableXOM *bool `json:",omitempty"`
|
||||||
XOMExcludePaths []string `json:",omitempty"`
|
XOMExcludePaths []string `json:",omitempty"`
|
||||||
|
|
||||||
VendorPath *string `json:",omitempty"`
|
VendorPath *string `json:",omitempty"`
|
||||||
OdmPath *string `json:",omitempty"`
|
OdmPath *string `json:",omitempty"`
|
||||||
ProductPath *string `json:",omitempty"`
|
ProductPath *string `json:",omitempty"`
|
||||||
ProductServicesPath *string `json:",omitempty"`
|
SystemExtPath *string `json:",omitempty"`
|
||||||
|
|
||||||
ClangTidy *bool `json:",omitempty"`
|
ClangTidy *bool `json:",omitempty"`
|
||||||
TidyChecks *string `json:",omitempty"`
|
TidyChecks *string `json:",omitempty"`
|
||||||
|
@@ -192,7 +192,7 @@ func init() {
|
|||||||
"LOCAL_VENDOR_MODULE": "vendor",
|
"LOCAL_VENDOR_MODULE": "vendor",
|
||||||
"LOCAL_ODM_MODULE": "device_specific",
|
"LOCAL_ODM_MODULE": "device_specific",
|
||||||
"LOCAL_PRODUCT_MODULE": "product_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_EXPORT_PACKAGE_RESOURCES": "export_package_resources",
|
||||||
"LOCAL_PRIVILEGED_MODULE": "privileged",
|
"LOCAL_PRIVILEGED_MODULE": "privileged",
|
||||||
"LOCAL_AAPT_INCLUDE_ALL_RESOURCES": "aapt_include_all_resources",
|
"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")
|
return fmt.Errorf("Cannot handle appending to LOCAL_MODULE_PATH")
|
||||||
}
|
}
|
||||||
// Analyze value in order to set the correct values for the 'device_specific',
|
// Analyze value in order to set the correct values for the 'device_specific',
|
||||||
// 'product_specific', 'product_services_specific' 'vendor'/'soc_specific',
|
// 'product_specific', 'system_ext_specific' 'vendor'/'soc_specific',
|
||||||
// 'product_services_specific' attribute. Two cases are allowed:
|
// 'system_ext_specific' attribute. Two cases are allowed:
|
||||||
// $(VAR)/<literal-value>
|
// $(VAR)/<literal-value>
|
||||||
// $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/<literal-value>
|
// $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/<literal-value>
|
||||||
// The last case is equivalent to $(TARGET_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: `
|
in: `
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := etc.test1
|
LOCAL_MODULE := etc.test1
|
||||||
LOCAL_MODULE_CLASS := ETC
|
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)
|
include $(BUILD_PREBUILT)
|
||||||
`,
|
`,
|
||||||
expected: `
|
expected: `
|
||||||
prebuilt_etc {
|
prebuilt_etc {
|
||||||
name: "etc.test1",
|
name: "etc.test1",
|
||||||
sub_dir: "foo/bar",
|
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: `
|
in: `
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_MODULE := etc.test1
|
LOCAL_MODULE := etc.test1
|
||||||
LOCAL_MODULE_CLASS := ETC
|
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)
|
include $(BUILD_PREBUILT)
|
||||||
`,
|
`,
|
||||||
expected: `
|
expected: `
|
||||||
prebuilt_etc {
|
prebuilt_etc {
|
||||||
name: "etc.test1",
|
name: "etc.test1",
|
||||||
sub_dir: "foo/bar",
|
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"},
|
"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/firmware", modType: "prebuilt_firmware"}, {prefix: "/vendor/firmware", modType: "prebuilt_firmware", flags: []string{"proprietary"}},
|
||||||
{prefix: "/etc"}},
|
{prefix: "/etc"}},
|
||||||
"TARGET_OUT_ETC": {{prefix: "/firmware", modType: "prebuilt_firmware"}, {prefix: ""}},
|
"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": {{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_PRODUCT_ETC": {{prefix: "", flags: []string{"product_specific"}}},
|
||||||
"TARGET_OUT_ODM": {{prefix: "/etc", flags: []string{"device_specific"}}},
|
"TARGET_OUT_ODM": {{prefix: "/etc", flags: []string{"device_specific"}}},
|
||||||
"TARGET_OUT_PRODUCT_SERVICES": {{prefix: "/etc", flags: []string{"product_services_specific"}}},
|
"TARGET_OUT_SYSTEM_EXT": {{prefix: "/etc", flags: []string{"system_ext_specific"}}},
|
||||||
"TARGET_OUT_PRODUCT_SERVICES_ETC": {{prefix: "", flags: []string{"product_services_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": {{prefix: "/etc", flags: []string{"proprietary"}}, {prefix: "/firmware", modType: "prebuilt_firmware", flags: []string{"proprietary"}}},
|
||||||
"TARGET_OUT_VENDOR_ETC": {{prefix: "", flags: []string{"proprietary"}}},
|
"TARGET_OUT_VENDOR_ETC": {{prefix: "", flags: []string{"proprietary"}}},
|
||||||
"TARGET_RECOVERY_ROOT_OUT": {{prefix: "/system/etc", flags: []string{"recovery"}}},
|
"TARGET_RECOVERY_ROOT_OUT": {{prefix: "/system/etc", flags: []string{"recovery"}}},
|
||||||
}
|
}
|
||||||
|
|
||||||
// rewriteAndroidPrebuiltEtc fixes prebuilt_etc rule
|
// rewriteAndroidPrebuiltEtc fixes prebuilt_etc rule
|
||||||
|
@@ -28,7 +28,7 @@ var targetZipPartitions = []string{
|
|||||||
"ODM/",
|
"ODM/",
|
||||||
"OEM/",
|
"OEM/",
|
||||||
"PRODUCT/",
|
"PRODUCT/",
|
||||||
"PRODUCT_SERVICES/",
|
"SYSTEM_EXT/",
|
||||||
"ROOT/",
|
"ROOT/",
|
||||||
"SYSTEM/",
|
"SYSTEM/",
|
||||||
"SYSTEM_OTHER/",
|
"SYSTEM_OTHER/",
|
||||||
|
@@ -111,7 +111,7 @@ func installClean(ctx Context, config Config, what int) {
|
|||||||
productOut("system_other"),
|
productOut("system_other"),
|
||||||
productOut("vendor"),
|
productOut("vendor"),
|
||||||
productOut("product"),
|
productOut("product"),
|
||||||
productOut("product_services"),
|
productOut("system_ext"),
|
||||||
productOut("oem"),
|
productOut("oem"),
|
||||||
productOut("obj/FAKE"),
|
productOut("obj/FAKE"),
|
||||||
productOut("breakpad"),
|
productOut("breakpad"),
|
||||||
|
Reference in New Issue
Block a user