Merge "Merge Android 12"
This commit is contained in:
@@ -289,6 +289,7 @@ func getFinalCodenamesMap(config Config) map[string]int {
|
|||||||
"P": 28,
|
"P": 28,
|
||||||
"Q": 29,
|
"Q": 29,
|
||||||
"R": 30,
|
"R": 30,
|
||||||
|
"S": 31,
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Differentiate "current" and "future".
|
// TODO: Differentiate "current" and "future".
|
||||||
@@ -331,6 +332,7 @@ func getApiLevelsMap(config Config) map[string]int {
|
|||||||
"P": 28,
|
"P": 28,
|
||||||
"Q": 29,
|
"Q": 29,
|
||||||
"R": 30,
|
"R": 30,
|
||||||
|
"S": 31,
|
||||||
}
|
}
|
||||||
for i, codename := range config.PlatformVersionActiveCodenames() {
|
for i, codename := range config.PlatformVersionActiveCodenames() {
|
||||||
apiLevelsMap[codename] = previewAPILevelBase + i
|
apiLevelsMap[codename] = previewAPILevelBase + i
|
||||||
|
@@ -175,6 +175,7 @@ func createCcSdkVariantRules() []Rule {
|
|||||||
"tools/test/graphicsbenchmark/apps/sample_app",
|
"tools/test/graphicsbenchmark/apps/sample_app",
|
||||||
"tools/test/graphicsbenchmark/functional_tests/java",
|
"tools/test/graphicsbenchmark/functional_tests/java",
|
||||||
"vendor/xts/gts-tests/hostsidetests/gamedevicecert/apps/javatests",
|
"vendor/xts/gts-tests/hostsidetests/gamedevicecert/apps/javatests",
|
||||||
|
"external/libtextclassifier/native",
|
||||||
}
|
}
|
||||||
|
|
||||||
platformVariantPropertiesAllowedList := []string{
|
platformVariantPropertiesAllowedList := []string{
|
||||||
|
@@ -145,6 +145,7 @@ type variableProperties struct {
|
|||||||
Arc struct {
|
Arc struct {
|
||||||
Cflags []string `android:"arch_variant"`
|
Cflags []string `android:"arch_variant"`
|
||||||
Exclude_srcs []string `android:"arch_variant"`
|
Exclude_srcs []string `android:"arch_variant"`
|
||||||
|
Header_libs []string `android:"arch_variant"`
|
||||||
Include_dirs []string `android:"arch_variant"`
|
Include_dirs []string `android:"arch_variant"`
|
||||||
Shared_libs []string `android:"arch_variant"`
|
Shared_libs []string `android:"arch_variant"`
|
||||||
Static_libs []string `android:"arch_variant"`
|
Static_libs []string `android:"arch_variant"`
|
||||||
|
64
apex/apex.go
64
apex/apex.go
@@ -141,11 +141,6 @@ type apexBundleProperties struct {
|
|||||||
// Default: true.
|
// Default: true.
|
||||||
Compressible *bool
|
Compressible *bool
|
||||||
|
|
||||||
// For native libraries and binaries, use the vendor variant instead of the core (platform)
|
|
||||||
// variant. Default is false. DO NOT use this for APEXes that are installed to the system or
|
|
||||||
// system_ext partition.
|
|
||||||
Use_vendor *bool
|
|
||||||
|
|
||||||
// If set true, VNDK libs are considered as stable libs and are not included in this APEX.
|
// If set true, VNDK libs are considered as stable libs and are not included in this APEX.
|
||||||
// Should be only used in non-system apexes (e.g. vendor: true). Default is false.
|
// Should be only used in non-system apexes (e.g. vendor: true). Default is false.
|
||||||
Use_vndk_as_stable *bool
|
Use_vndk_as_stable *bool
|
||||||
@@ -654,10 +649,7 @@ func (a *apexBundle) getImageVariation(ctx android.BottomUpMutatorContext) strin
|
|||||||
var prefix string
|
var prefix string
|
||||||
var vndkVersion string
|
var vndkVersion string
|
||||||
if deviceConfig.VndkVersion() != "" {
|
if deviceConfig.VndkVersion() != "" {
|
||||||
if proptools.Bool(a.properties.Use_vendor) {
|
if a.SocSpecific() || a.DeviceSpecific() {
|
||||||
prefix = cc.VendorVariationPrefix
|
|
||||||
vndkVersion = deviceConfig.PlatformVndkVersion()
|
|
||||||
} else if a.SocSpecific() || a.DeviceSpecific() {
|
|
||||||
prefix = cc.VendorVariationPrefix
|
prefix = cc.VendorVariationPrefix
|
||||||
vndkVersion = deviceConfig.VndkVersion()
|
vndkVersion = deviceConfig.VndkVersion()
|
||||||
} else if a.ProductSpecific() {
|
} else if a.ProductSpecific() {
|
||||||
@@ -676,9 +668,6 @@ func (a *apexBundle) getImageVariation(ctx android.BottomUpMutatorContext) strin
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
// TODO(jiyong): move this kind of checks to GenerateAndroidBuildActions?
|
|
||||||
checkUseVendorProperty(ctx, a)
|
|
||||||
|
|
||||||
// apexBundle is a multi-arch targets module. Arch variant of apexBundle is set to 'common'.
|
// apexBundle is a multi-arch targets module. Arch variant of apexBundle is set to 'common'.
|
||||||
// arch-specific targets are enabled by the compile_multilib setting of the apex bundle. For
|
// arch-specific targets are enabled by the compile_multilib setting of the apex bundle. For
|
||||||
// each target os/architectures, appropriate dependencies are selected by their
|
// each target os/architectures, appropriate dependencies are selected by their
|
||||||
@@ -1240,42 +1229,6 @@ func apexFlattenedMutator(mctx android.BottomUpMutatorContext) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// checkUseVendorProperty checks if the use of `use_vendor` property is allowed for the given APEX.
|
|
||||||
// When use_vendor is used, native modules are built with __ANDROID_VNDK__ and __ANDROID_APEX__,
|
|
||||||
// which may cause compatibility issues. (e.g. libbinder) Even though libbinder restricts its
|
|
||||||
// availability via 'apex_available' property and relies on yet another macro
|
|
||||||
// __ANDROID_APEX_<NAME>__, we restrict usage of "use_vendor:" from other APEX modules to avoid
|
|
||||||
// similar problems.
|
|
||||||
func checkUseVendorProperty(ctx android.BottomUpMutatorContext, a *apexBundle) {
|
|
||||||
if proptools.Bool(a.properties.Use_vendor) && !android.InList(a.Name(), useVendorAllowList(ctx.Config())) {
|
|
||||||
ctx.PropertyErrorf("use_vendor", "not allowed to set use_vendor: true")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
|
||||||
useVendorAllowListKey = android.NewOnceKey("useVendorAllowList")
|
|
||||||
)
|
|
||||||
|
|
||||||
func useVendorAllowList(config android.Config) []string {
|
|
||||||
return config.Once(useVendorAllowListKey, func() interface{} {
|
|
||||||
return []string{
|
|
||||||
// swcodec uses "vendor" variants for smaller size
|
|
||||||
"com.android.media.swcodec",
|
|
||||||
"test_com.android.media.swcodec",
|
|
||||||
}
|
|
||||||
}).([]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
// setUseVendorAllowListForTest returns a FixturePreparer that overrides useVendorAllowList and
|
|
||||||
// must be called before the first call to useVendorAllowList()
|
|
||||||
func setUseVendorAllowListForTest(allowList []string) android.FixturePreparer {
|
|
||||||
return android.FixtureModifyConfig(func(config android.Config) {
|
|
||||||
config.Once(useVendorAllowListKey, func() interface{} {
|
|
||||||
return allowList
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ android.DepIsInSameApex = (*apexBundle)(nil)
|
var _ android.DepIsInSameApex = (*apexBundle)(nil)
|
||||||
|
|
||||||
// Implements android.DepInInSameApex
|
// Implements android.DepInInSameApex
|
||||||
@@ -1928,13 +1881,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
// system libraries.
|
// system libraries.
|
||||||
if !am.DirectlyInAnyApex() {
|
if !am.DirectlyInAnyApex() {
|
||||||
// we need a module name for Make
|
// we need a module name for Make
|
||||||
name := cc.ImplementationModuleNameForMake(ctx)
|
name := cc.ImplementationModuleNameForMake(ctx) + cc.Properties.SubName
|
||||||
|
|
||||||
if !proptools.Bool(a.properties.Use_vendor) {
|
|
||||||
// we don't use subName(.vendor) for a "use_vendor: true" apex
|
|
||||||
// which is supposed to be installed in /system
|
|
||||||
name += cc.Properties.SubName
|
|
||||||
}
|
|
||||||
if !android.InList(name, a.requiredDeps) {
|
if !android.InList(name, a.requiredDeps) {
|
||||||
a.requiredDeps = append(a.requiredDeps, name)
|
a.requiredDeps = append(a.requiredDeps, name)
|
||||||
}
|
}
|
||||||
@@ -2118,7 +2065,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
// the same library in the system partition, thus effectively sharing the same libraries
|
// the same library in the system partition, thus effectively sharing the same libraries
|
||||||
// across the APEX boundary. For unbundled APEX, all the gathered files are actually placed
|
// across the APEX boundary. For unbundled APEX, all the gathered files are actually placed
|
||||||
// in the APEX.
|
// in the APEX.
|
||||||
a.linkToSystemLib = !ctx.Config().UnbundledBuild() && a.installable() && !proptools.Bool(a.properties.Use_vendor)
|
a.linkToSystemLib = !ctx.Config().UnbundledBuild() && a.installable()
|
||||||
|
|
||||||
// APEXes targeting other than system/system_ext partitions use vendor/product variants.
|
// APEXes targeting other than system/system_ext partitions use vendor/product variants.
|
||||||
// So we can't link them to /system/lib libs which are core variants.
|
// So we can't link them to /system/lib libs which are core variants.
|
||||||
@@ -2327,10 +2274,6 @@ func (a *apexBundle) checkMinSdkVersion(ctx android.ModuleContext) {
|
|||||||
if a.testApex || a.vndkApex {
|
if a.testApex || a.vndkApex {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Meaningless to check min_sdk_version when building use_vendor modules against non-Trebleized targets
|
|
||||||
if proptools.Bool(a.properties.Use_vendor) && ctx.DeviceConfig().VndkVersion() == "" {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// apexBundle::minSdkVersion reports its own errors.
|
// apexBundle::minSdkVersion reports its own errors.
|
||||||
minSdkVersion := a.minSdkVersion(ctx)
|
minSdkVersion := a.minSdkVersion(ctx)
|
||||||
android.CheckMinSdkVersion(a, ctx, minSdkVersion)
|
android.CheckMinSdkVersion(a, ctx, minSdkVersion)
|
||||||
@@ -2950,7 +2893,6 @@ func makeApexAvailableBaseline() map[string][]string {
|
|||||||
"libstagefright_amrwbdec",
|
"libstagefright_amrwbdec",
|
||||||
"libstagefright_amrwbenc",
|
"libstagefright_amrwbenc",
|
||||||
"libstagefright_bufferpool@2.0.1",
|
"libstagefright_bufferpool@2.0.1",
|
||||||
"libstagefright_bufferqueue_helper",
|
|
||||||
"libstagefright_enc_common",
|
"libstagefright_enc_common",
|
||||||
"libstagefright_flacdec",
|
"libstagefright_flacdec",
|
||||||
"libstagefright_foundation",
|
"libstagefright_foundation",
|
||||||
|
@@ -17,9 +17,9 @@
|
|||||||
package apex
|
package apex
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"android/soong/android"
|
|
||||||
|
|
||||||
"github.com/google/blueprint"
|
"github.com/google/blueprint"
|
||||||
|
|
||||||
|
"android/soong/android"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@@ -1509,7 +1509,6 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) {
|
|||||||
apex {
|
apex {
|
||||||
name: "myapex",
|
name: "myapex",
|
||||||
key: "myapex.key",
|
key: "myapex.key",
|
||||||
use_vendor: true,
|
|
||||||
native_shared_libs: ["mylib"],
|
native_shared_libs: ["mylib"],
|
||||||
updatable: false,
|
updatable: false,
|
||||||
`+tc.minSdkVersion+`
|
`+tc.minSdkVersion+`
|
||||||
@@ -1543,7 +1542,6 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
`,
|
`,
|
||||||
setUseVendorAllowListForTest([]string{"myapex"}),
|
|
||||||
withUnbundledBuild,
|
withUnbundledBuild,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1557,13 +1555,13 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) {
|
|||||||
ensureListEmpty(t, names(apexManifestRule.Args["provideNativeLibs"]))
|
ensureListEmpty(t, names(apexManifestRule.Args["provideNativeLibs"]))
|
||||||
ensureListContains(t, names(apexManifestRule.Args["requireNativeLibs"]), "libbar.so")
|
ensureListContains(t, names(apexManifestRule.Args["requireNativeLibs"]), "libbar.so")
|
||||||
|
|
||||||
mylibLdFlags := ctx.ModuleForTests("mylib", "android_vendor.29_arm64_armv8-a_shared_"+tc.apexVariant).Rule("ld").Args["libFlags"]
|
mylibLdFlags := ctx.ModuleForTests("mylib", "android_arm64_armv8-a_shared_"+tc.apexVariant).Rule("ld").Args["libFlags"]
|
||||||
ensureContains(t, mylibLdFlags, "libbar/android_vendor.29_arm64_armv8-a_shared_"+tc.shouldLink+"/libbar.so")
|
ensureContains(t, mylibLdFlags, "libbar/android_arm64_armv8-a_shared_"+tc.shouldLink+"/libbar.so")
|
||||||
for _, ver := range tc.shouldNotLink {
|
for _, ver := range tc.shouldNotLink {
|
||||||
ensureNotContains(t, mylibLdFlags, "libbar/android_vendor.29_arm64_armv8-a_shared_"+ver+"/libbar.so")
|
ensureNotContains(t, mylibLdFlags, "libbar/android_arm64_armv8-a_shared_"+ver+"/libbar.so")
|
||||||
}
|
}
|
||||||
|
|
||||||
mylibCFlags := ctx.ModuleForTests("mylib", "android_vendor.29_arm64_armv8-a_static_"+tc.apexVariant).Rule("cc").Args["cFlags"]
|
mylibCFlags := ctx.ModuleForTests("mylib", "android_arm64_armv8-a_static_"+tc.apexVariant).Rule("cc").Args["cFlags"]
|
||||||
ver := tc.shouldLink
|
ver := tc.shouldLink
|
||||||
if tc.shouldLink == "current" {
|
if tc.shouldLink == "current" {
|
||||||
ver = strconv.Itoa(android.FutureApiLevelInt)
|
ver = strconv.Itoa(android.FutureApiLevelInt)
|
||||||
@@ -2657,119 +2655,6 @@ func TestFilesInSubDirWhenNativeBridgeEnabled(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUseVendor(t *testing.T) {
|
|
||||||
ctx := testApex(t, `
|
|
||||||
apex {
|
|
||||||
name: "myapex",
|
|
||||||
key: "myapex.key",
|
|
||||||
native_shared_libs: ["mylib"],
|
|
||||||
use_vendor: true,
|
|
||||||
updatable: false,
|
|
||||||
}
|
|
||||||
|
|
||||||
apex_key {
|
|
||||||
name: "myapex.key",
|
|
||||||
public_key: "testkey.avbpubkey",
|
|
||||||
private_key: "testkey.pem",
|
|
||||||
}
|
|
||||||
|
|
||||||
cc_library {
|
|
||||||
name: "mylib",
|
|
||||||
srcs: ["mylib.cpp"],
|
|
||||||
shared_libs: ["mylib2"],
|
|
||||||
system_shared_libs: [],
|
|
||||||
vendor_available: true,
|
|
||||||
stl: "none",
|
|
||||||
apex_available: [ "myapex" ],
|
|
||||||
}
|
|
||||||
|
|
||||||
cc_library {
|
|
||||||
name: "mylib2",
|
|
||||||
srcs: ["mylib.cpp"],
|
|
||||||
system_shared_libs: [],
|
|
||||||
vendor_available: true,
|
|
||||||
stl: "none",
|
|
||||||
apex_available: [ "myapex" ],
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
setUseVendorAllowListForTest([]string{"myapex"}),
|
|
||||||
)
|
|
||||||
|
|
||||||
inputsList := []string{}
|
|
||||||
for _, i := range ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().BuildParamsForTests() {
|
|
||||||
for _, implicit := range i.Implicits {
|
|
||||||
inputsList = append(inputsList, implicit.String())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inputsString := strings.Join(inputsList, " ")
|
|
||||||
|
|
||||||
// ensure that the apex includes vendor variants of the direct and indirect deps
|
|
||||||
ensureContains(t, inputsString, "android_vendor.29_arm64_armv8-a_shared_apex10000/mylib.so")
|
|
||||||
ensureContains(t, inputsString, "android_vendor.29_arm64_armv8-a_shared_apex10000/mylib2.so")
|
|
||||||
|
|
||||||
// ensure that the apex does not include core variants
|
|
||||||
ensureNotContains(t, inputsString, "android_arm64_armv8-a_shared_apex10000/mylib.so")
|
|
||||||
ensureNotContains(t, inputsString, "android_arm64_armv8-a_shared_apex10000/mylib2.so")
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestUseVendorNotAllowedForSystemApexes(t *testing.T) {
|
|
||||||
testApexError(t, `module "myapex" .*: use_vendor: not allowed`, `
|
|
||||||
apex {
|
|
||||||
name: "myapex",
|
|
||||||
key: "myapex.key",
|
|
||||||
use_vendor: true,
|
|
||||||
}
|
|
||||||
apex_key {
|
|
||||||
name: "myapex.key",
|
|
||||||
public_key: "testkey.avbpubkey",
|
|
||||||
private_key: "testkey.pem",
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
setUseVendorAllowListForTest([]string{""}),
|
|
||||||
)
|
|
||||||
// no error with allow list
|
|
||||||
testApex(t, `
|
|
||||||
apex {
|
|
||||||
name: "myapex",
|
|
||||||
key: "myapex.key",
|
|
||||||
use_vendor: true,
|
|
||||||
updatable: false,
|
|
||||||
}
|
|
||||||
apex_key {
|
|
||||||
name: "myapex.key",
|
|
||||||
public_key: "testkey.avbpubkey",
|
|
||||||
private_key: "testkey.pem",
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
setUseVendorAllowListForTest([]string{"myapex"}),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestUseVendorFailsIfNotVendorAvailable(t *testing.T) {
|
|
||||||
testApexError(t, `dependency "mylib" of "myapex" missing variant:\n.*image:vendor`, `
|
|
||||||
apex {
|
|
||||||
name: "myapex",
|
|
||||||
key: "myapex.key",
|
|
||||||
native_shared_libs: ["mylib"],
|
|
||||||
use_vendor: true,
|
|
||||||
updatable: false,
|
|
||||||
}
|
|
||||||
|
|
||||||
apex_key {
|
|
||||||
name: "myapex.key",
|
|
||||||
public_key: "testkey.avbpubkey",
|
|
||||||
private_key: "testkey.pem",
|
|
||||||
}
|
|
||||||
|
|
||||||
cc_library {
|
|
||||||
name: "mylib",
|
|
||||||
srcs: ["mylib.cpp"],
|
|
||||||
system_shared_libs: [],
|
|
||||||
stl: "none",
|
|
||||||
}
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestVendorApex(t *testing.T) {
|
func TestVendorApex(t *testing.T) {
|
||||||
ctx := testApex(t, `
|
ctx := testApex(t, `
|
||||||
apex {
|
apex {
|
||||||
@@ -2944,41 +2829,6 @@ func TestApex_withPrebuiltFirmware(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAndroidMk_UseVendorRequired(t *testing.T) {
|
|
||||||
ctx := testApex(t, `
|
|
||||||
apex {
|
|
||||||
name: "myapex",
|
|
||||||
key: "myapex.key",
|
|
||||||
use_vendor: true,
|
|
||||||
native_shared_libs: ["mylib"],
|
|
||||||
updatable: false,
|
|
||||||
}
|
|
||||||
|
|
||||||
apex_key {
|
|
||||||
name: "myapex.key",
|
|
||||||
public_key: "testkey.avbpubkey",
|
|
||||||
private_key: "testkey.pem",
|
|
||||||
}
|
|
||||||
|
|
||||||
cc_library {
|
|
||||||
name: "mylib",
|
|
||||||
vendor_available: true,
|
|
||||||
apex_available: ["myapex"],
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
setUseVendorAllowListForTest([]string{"myapex"}),
|
|
||||||
)
|
|
||||||
|
|
||||||
apexBundle := ctx.ModuleForTests("myapex", "android_common_myapex_image").Module().(*apexBundle)
|
|
||||||
data := android.AndroidMkDataForTest(t, ctx, apexBundle)
|
|
||||||
name := apexBundle.BaseModuleName()
|
|
||||||
prefix := "TARGET_"
|
|
||||||
var builder strings.Builder
|
|
||||||
data.Custom(&builder, name, prefix, "", data)
|
|
||||||
androidMk := builder.String()
|
|
||||||
ensureContains(t, androidMk, "LOCAL_REQUIRED_MODULES += libc libm libdl\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAndroidMk_VendorApexRequired(t *testing.T) {
|
func TestAndroidMk_VendorApexRequired(t *testing.T) {
|
||||||
ctx := testApex(t, `
|
ctx := testApex(t, `
|
||||||
apex {
|
apex {
|
||||||
|
@@ -22,7 +22,6 @@ import (
|
|||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
"android/soong/java"
|
"android/soong/java"
|
||||||
|
|
||||||
"github.com/google/blueprint"
|
"github.com/google/blueprint"
|
||||||
"github.com/google/blueprint/proptools"
|
"github.com/google/blueprint/proptools"
|
||||||
)
|
)
|
||||||
@@ -138,10 +137,6 @@ func (p *prebuiltCommon) checkForceDisable(ctx android.ModuleContext) bool {
|
|||||||
// to build the prebuilts themselves.
|
// to build the prebuilts themselves.
|
||||||
forceDisable = forceDisable || ctx.Config().UnbundledBuild()
|
forceDisable = forceDisable || ctx.Config().UnbundledBuild()
|
||||||
|
|
||||||
// Force disable the prebuilts when coverage is enabled.
|
|
||||||
forceDisable = forceDisable || ctx.DeviceConfig().NativeCoverageEnabled()
|
|
||||||
forceDisable = forceDisable || ctx.Config().IsEnvTrue("EMMA_INSTRUMENT")
|
|
||||||
|
|
||||||
// b/137216042 don't use prebuilts when address sanitizer is on, unless the prebuilt has a sanitized source
|
// b/137216042 don't use prebuilts when address sanitizer is on, unless the prebuilt has a sanitized source
|
||||||
sanitized := ctx.Module().(sanitizedPrebuilt)
|
sanitized := ctx.Module().(sanitizedPrebuilt)
|
||||||
forceDisable = forceDisable || (android.InList("address", ctx.Config().SanitizeDevice()) && !sanitized.hasSanitizedSource("address"))
|
forceDisable = forceDisable || (android.InList("address", ctx.Config().SanitizeDevice()) && !sanitized.hasSanitizedSource("address"))
|
||||||
@@ -985,17 +980,6 @@ func (a *ApexSet) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
for _, overridden := range a.prebuiltCommonProperties.Overrides {
|
for _, overridden := range a.prebuiltCommonProperties.Overrides {
|
||||||
a.compatSymlinks = append(a.compatSymlinks, makeCompatSymlinks(overridden, ctx)...)
|
a.compatSymlinks = append(a.compatSymlinks, makeCompatSymlinks(overridden, ctx)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ctx.Config().InstallExtraFlattenedApexes() {
|
|
||||||
// flattened apex should be in /system_ext/apex
|
|
||||||
flattenedApexDir := android.PathForModuleInstall(&systemExtContext{ctx}, "apex", a.BaseModuleName())
|
|
||||||
a.postInstallCommands = append(a.postInstallCommands,
|
|
||||||
fmt.Sprintf("$(HOST_OUT_EXECUTABLES)/deapexer --debugfs_path $(HOST_OUT_EXECUTABLES)/debugfs extract %s %s",
|
|
||||||
a.outputApex.String(),
|
|
||||||
flattenedApexDir.ToMakePath().String(),
|
|
||||||
))
|
|
||||||
a.hostRequired = []string{"deapexer", "debugfs"}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type systemExtContext struct {
|
type systemExtContext struct {
|
||||||
|
1
cc/cc.go
1
cc/cc.go
@@ -3455,6 +3455,7 @@ func DefaultsFactory(props ...interface{}) android.Module {
|
|||||||
&android.ProtoProperties{},
|
&android.ProtoProperties{},
|
||||||
// RustBindgenProperties is included here so that cc_defaults can be used for rust_bindgen modules.
|
// RustBindgenProperties is included here so that cc_defaults can be used for rust_bindgen modules.
|
||||||
&RustBindgenClangProperties{},
|
&RustBindgenClangProperties{},
|
||||||
|
&prebuiltLinkerProperties{},
|
||||||
)
|
)
|
||||||
|
|
||||||
// Bazel module must be initialized _before_ Defaults to be included in cc_defaults module.
|
// Bazel module must be initialized _before_ Defaults to be included in cc_defaults module.
|
||||||
|
@@ -25,12 +25,18 @@ var VndkMustUseVendorVariantList = []string{
|
|||||||
"android.hardware.authsecret-unstable-ndk_platform",
|
"android.hardware.authsecret-unstable-ndk_platform",
|
||||||
"android.hardware.automotive.occupant_awareness-V1-ndk",
|
"android.hardware.automotive.occupant_awareness-V1-ndk",
|
||||||
"android.hardware.automotive.occupant_awareness-V1-ndk_platform",
|
"android.hardware.automotive.occupant_awareness-V1-ndk_platform",
|
||||||
|
"android.hardware.automotive.occupant_awareness-ndk_platform",
|
||||||
|
"android.hardware.gnss-V1-ndk",
|
||||||
|
"android.hardware.gnss-V1-ndk_platform",
|
||||||
|
"android.hardware.gnss-ndk_platform",
|
||||||
|
"android.hardware.gnss-unstable-ndk_platform",
|
||||||
"android.hardware.health.storage-V1-ndk",
|
"android.hardware.health.storage-V1-ndk",
|
||||||
"android.hardware.health.storage-V1-ndk_platform",
|
"android.hardware.health.storage-V1-ndk_platform",
|
||||||
"android.hardware.health.storage-ndk_platform",
|
"android.hardware.health.storage-ndk_platform",
|
||||||
"android.hardware.health.storage-unstable-ndk_platform",
|
"android.hardware.health.storage-unstable-ndk_platform",
|
||||||
"android.hardware.identity-V2-ndk",
|
|
||||||
"android.hardware.identity-V2-ndk_platform",
|
"android.hardware.identity-V2-ndk_platform",
|
||||||
|
"android.hardware.identity-V3-ndk",
|
||||||
|
"android.hardware.identity-V3-ndk_platform",
|
||||||
"android.hardware.identity-ndk_platform",
|
"android.hardware.identity-ndk_platform",
|
||||||
"android.hardware.light-V1-ndk",
|
"android.hardware.light-V1-ndk",
|
||||||
"android.hardware.light-V1-ndk_platform",
|
"android.hardware.light-V1-ndk_platform",
|
||||||
@@ -44,8 +50,9 @@ var VndkMustUseVendorVariantList = []string{
|
|||||||
"android.hardware.oemlock-V1-ndk_platform",
|
"android.hardware.oemlock-V1-ndk_platform",
|
||||||
"android.hardware.oemlock-ndk_platform",
|
"android.hardware.oemlock-ndk_platform",
|
||||||
"android.hardware.oemlock-unstable-ndk_platform",
|
"android.hardware.oemlock-unstable-ndk_platform",
|
||||||
"android.hardware.power-V1-ndk",
|
|
||||||
"android.hardware.power-V1-ndk_platform",
|
"android.hardware.power-V1-ndk_platform",
|
||||||
|
"android.hardware.power-V2-ndk",
|
||||||
|
"android.hardware.power-V2-ndk_platform",
|
||||||
"android.hardware.power-ndk_platform",
|
"android.hardware.power-ndk_platform",
|
||||||
"android.hardware.power.stats-V1-ndk",
|
"android.hardware.power.stats-V1-ndk",
|
||||||
"android.hardware.power.stats-V1-ndk_platform",
|
"android.hardware.power.stats-V1-ndk_platform",
|
||||||
@@ -82,20 +89,21 @@ var VndkMustUseVendorVariantList = []string{
|
|||||||
"android.hardware.security.sharedsecret-V1-ndk_platform",
|
"android.hardware.security.sharedsecret-V1-ndk_platform",
|
||||||
"android.hardware.security.sharedsecret-ndk_platform",
|
"android.hardware.security.sharedsecret-ndk_platform",
|
||||||
"android.hardware.security.sharedsecret-unstable-ndk_platform",
|
"android.hardware.security.sharedsecret-unstable-ndk_platform",
|
||||||
"android.hardware.vibrator-V1-ndk",
|
|
||||||
"android.hardware.vibrator-V1-ndk_platform",
|
"android.hardware.vibrator-V1-ndk_platform",
|
||||||
|
"android.hardware.vibrator-V2-ndk",
|
||||||
|
"android.hardware.vibrator-V2-ndk_platform",
|
||||||
"android.hardware.vibrator-ndk_platform",
|
"android.hardware.vibrator-ndk_platform",
|
||||||
"android.hardware.weaver-V1-ndk",
|
"android.hardware.weaver-V1-ndk",
|
||||||
"android.hardware.weaver-V1-ndk_platform",
|
"android.hardware.weaver-V1-ndk_platform",
|
||||||
"android.hardware.weaver-ndk_platform",
|
"android.hardware.weaver-ndk_platform",
|
||||||
"android.hardware.weaver-unstable-ndk_platform",
|
"android.hardware.weaver-unstable-ndk_platform",
|
||||||
|
"android.system.suspend-V1-ndk",
|
||||||
"android.system.keystore2-V1-ndk",
|
"android.system.keystore2-V1-ndk",
|
||||||
"android.hardware.wifi.hostapd-V1-ndk",
|
"android.hardware.wifi.hostapd-V1-ndk",
|
||||||
"android.hardware.wifi.hostapd-V1-ndk_platform",
|
"android.hardware.wifi.hostapd-V1-ndk_platform",
|
||||||
"android.system.keystore2-V1-ndk_platform",
|
"android.system.keystore2-V1-ndk_platform",
|
||||||
"android.system.keystore2-ndk_platform",
|
"android.system.keystore2-ndk_platform",
|
||||||
"android.system.keystore2-unstable-ndk_platform",
|
"android.system.keystore2-unstable-ndk_platform",
|
||||||
"android.system.suspend-V1-ndk",
|
|
||||||
"android.system.suspend-V1-ndk_platform",
|
"android.system.suspend-V1-ndk_platform",
|
||||||
"libbinder",
|
"libbinder",
|
||||||
"libcrypto",
|
"libcrypto",
|
||||||
|
@@ -20,6 +20,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var legacyCorePlatformApiModules = []string{
|
var legacyCorePlatformApiModules = []string{
|
||||||
|
"AAECarSystemUI",
|
||||||
|
"AAECarSystemUI-tests",
|
||||||
"ArcSettings",
|
"ArcSettings",
|
||||||
"ahat-test-dump",
|
"ahat-test-dump",
|
||||||
"android.car",
|
"android.car",
|
||||||
@@ -30,28 +32,33 @@ var legacyCorePlatformApiModules = []string{
|
|||||||
"api-stubs-docs",
|
"api-stubs-docs",
|
||||||
"art_cts_jvmti_test_library",
|
"art_cts_jvmti_test_library",
|
||||||
"art-gtest-jars-MyClassNatives",
|
"art-gtest-jars-MyClassNatives",
|
||||||
|
"BackupEncryption",
|
||||||
"BackupFrameworksServicesRoboTests",
|
"BackupFrameworksServicesRoboTests",
|
||||||
"backuplib",
|
"backuplib",
|
||||||
"BandwidthEnforcementTest",
|
"BandwidthEnforcementTest",
|
||||||
"BlockedNumberProvider",
|
"BlockedNumberProvider",
|
||||||
"BluetoothInstrumentationTests",
|
"BluetoothInstrumentationTests",
|
||||||
|
"BluetoothMidiLib",
|
||||||
"BluetoothMidiService",
|
"BluetoothMidiService",
|
||||||
"CarDeveloperOptions",
|
"BTTestApp",
|
||||||
|
"CallEnhancement",
|
||||||
|
"CapCtrlInterface",
|
||||||
"CarService",
|
"CarService",
|
||||||
"CarServiceTest",
|
"CarServiceTest",
|
||||||
"car-apps-common",
|
|
||||||
"car-service-test-lib",
|
"car-service-test-lib",
|
||||||
"car-service-test-static-lib",
|
"car-service-test-static-lib",
|
||||||
"CertInstaller",
|
"CertInstaller",
|
||||||
|
"com.qti.location.sdk",
|
||||||
"com.qti.media.secureprocessor",
|
"com.qti.media.secureprocessor",
|
||||||
"ConnectivityManagerTest",
|
"ConnectivityManagerTest",
|
||||||
"ContactsProvider",
|
"ContactsProvider",
|
||||||
"CorePerfTests",
|
"CorePerfTests",
|
||||||
"core-tests-support",
|
"core-tests-support",
|
||||||
|
"cronet_impl_common_java",
|
||||||
|
"cronet_impl_native_java",
|
||||||
|
"cronet_impl_platform_java",
|
||||||
"CtsAppExitTestCases",
|
"CtsAppExitTestCases",
|
||||||
"CtsContentTestCases",
|
"CtsContentTestCases",
|
||||||
"CtsIkeTestCases",
|
|
||||||
"CtsAppExitTestCases",
|
|
||||||
"CtsLibcoreWycheproofBCTestCases",
|
"CtsLibcoreWycheproofBCTestCases",
|
||||||
"CtsMediaTestCases",
|
"CtsMediaTestCases",
|
||||||
"CtsNetTestCases",
|
"CtsNetTestCases",
|
||||||
@@ -64,8 +71,10 @@ var legacyCorePlatformApiModules = []string{
|
|||||||
"DeviceInfo",
|
"DeviceInfo",
|
||||||
"DiagnosticTools",
|
"DiagnosticTools",
|
||||||
"DisplayCutoutEmulationEmu01Overlay",
|
"DisplayCutoutEmulationEmu01Overlay",
|
||||||
|
"DocumentsUIGoogleTests",
|
||||||
"DocumentsUIPerfTests",
|
"DocumentsUIPerfTests",
|
||||||
"DocumentsUITests",
|
"DocumentsUITests",
|
||||||
|
"DocumentsUIUnitTests",
|
||||||
"DownloadProvider",
|
"DownloadProvider",
|
||||||
"DownloadProviderTests",
|
"DownloadProviderTests",
|
||||||
"DownloadProviderUi",
|
"DownloadProviderUi",
|
||||||
@@ -75,10 +84,12 @@ var legacyCorePlatformApiModules = []string{
|
|||||||
"ethernet-service",
|
"ethernet-service",
|
||||||
"EthernetServiceTests",
|
"EthernetServiceTests",
|
||||||
"ExternalStorageProvider",
|
"ExternalStorageProvider",
|
||||||
"ExtServices",
|
"face-V1-0-javalib",
|
||||||
"ExtServices-core",
|
"FloralClocks",
|
||||||
"framework-all",
|
"framework-jobscheduler",
|
||||||
"framework-minus-apex",
|
"framework-minus-apex",
|
||||||
|
"framework-minus-apex-intdefs",
|
||||||
|
"FrameworkOverlayG6QU3",
|
||||||
"FrameworksCoreTests",
|
"FrameworksCoreTests",
|
||||||
"FrameworksIkeTests",
|
"FrameworksIkeTests",
|
||||||
"FrameworksNetCommonTests",
|
"FrameworksNetCommonTests",
|
||||||
@@ -87,29 +98,50 @@ var legacyCorePlatformApiModules = []string{
|
|||||||
"FrameworksServicesTests",
|
"FrameworksServicesTests",
|
||||||
"FrameworksMockingServicesTests",
|
"FrameworksMockingServicesTests",
|
||||||
"FrameworksUtilTests",
|
"FrameworksUtilTests",
|
||||||
"FrameworksWifiTests",
|
"GtsIncrementalInstallTestCases",
|
||||||
|
"GtsIncrementalInstallTriggerApp",
|
||||||
|
"GtsInstallerV2TestCases",
|
||||||
|
"HelloOslo",
|
||||||
"hid",
|
"hid",
|
||||||
"hidl_test_java_java",
|
"hidl_test_java_java",
|
||||||
"hwbinder",
|
"hwbinder",
|
||||||
"ims",
|
"imssettings",
|
||||||
|
"izat.lib.glue",
|
||||||
"KeyChain",
|
"KeyChain",
|
||||||
"ksoap2",
|
"LocalSettingsLib",
|
||||||
"LocalTransport",
|
"LocalTransport",
|
||||||
"lockagent",
|
"lockagent",
|
||||||
"mediaframeworktest",
|
"mediaframeworktest",
|
||||||
"MediaProvider",
|
"mediatek-ims-base",
|
||||||
"MmsService",
|
"MmsService",
|
||||||
"MtpDocumentsProvider",
|
"ModemTestMode",
|
||||||
|
"MtkCapCtrl",
|
||||||
|
"MtpService",
|
||||||
"MultiDisplayProvider",
|
"MultiDisplayProvider",
|
||||||
|
"my.tests.snapdragonsdktest",
|
||||||
|
"NetworkSetting",
|
||||||
"NetworkStackIntegrationTestsLib",
|
"NetworkStackIntegrationTestsLib",
|
||||||
"NetworkStackNextIntegrationTests",
|
"NetworkStackNextIntegrationTests",
|
||||||
"NetworkStackNextTests",
|
"NetworkStackNextTests",
|
||||||
"NetworkStackTests",
|
"NetworkStackTests",
|
||||||
"NetworkStackTestsLib",
|
"NetworkStackTestsLib",
|
||||||
"NfcNci",
|
"online-gcm-ref-docs",
|
||||||
|
"online-gts-docs",
|
||||||
|
"PerformanceMode",
|
||||||
"platform_library-docs",
|
"platform_library-docs",
|
||||||
|
"PowerStatsService",
|
||||||
"PrintSpooler",
|
"PrintSpooler",
|
||||||
|
"pxp-monitor",
|
||||||
|
"QColor",
|
||||||
|
"qcom.fmradio",
|
||||||
|
"QDCMMobileApp",
|
||||||
|
"Qmmi",
|
||||||
|
"QPerformance",
|
||||||
|
"remotesimlockmanagerlibrary",
|
||||||
"RollbackTest",
|
"RollbackTest",
|
||||||
|
"sam",
|
||||||
|
"saminterfacelibrary",
|
||||||
|
"sammanagerlibrary",
|
||||||
"service-blobstore",
|
"service-blobstore",
|
||||||
"service-connectivity-pre-jarjar",
|
"service-connectivity-pre-jarjar",
|
||||||
"service-jobscheduler",
|
"service-jobscheduler",
|
||||||
@@ -123,21 +155,50 @@ var legacyCorePlatformApiModules = []string{
|
|||||||
"services.usb",
|
"services.usb",
|
||||||
"Settings-core",
|
"Settings-core",
|
||||||
"SettingsGoogle",
|
"SettingsGoogle",
|
||||||
|
"SettingsGoogleOverlayCoral",
|
||||||
|
"SettingsGoogleOverlayFlame",
|
||||||
"SettingsLib",
|
"SettingsLib",
|
||||||
|
"SettingsOverlayG020A",
|
||||||
|
"SettingsOverlayG020B",
|
||||||
|
"SettingsOverlayG020C",
|
||||||
|
"SettingsOverlayG020D",
|
||||||
|
"SettingsOverlayG020E",
|
||||||
|
"SettingsOverlayG020E_VN",
|
||||||
|
"SettingsOverlayG020F",
|
||||||
|
"SettingsOverlayG020F_VN",
|
||||||
|
"SettingsOverlayG020G",
|
||||||
|
"SettingsOverlayG020G_VN",
|
||||||
|
"SettingsOverlayG020H",
|
||||||
|
"SettingsOverlayG020H_VN",
|
||||||
|
"SettingsOverlayG020I",
|
||||||
|
"SettingsOverlayG020I_VN",
|
||||||
|
"SettingsOverlayG020J",
|
||||||
|
"SettingsOverlayG020M",
|
||||||
|
"SettingsOverlayG020N",
|
||||||
|
"SettingsOverlayG020P",
|
||||||
|
"SettingsOverlayG020Q",
|
||||||
|
"SettingsOverlayG025H",
|
||||||
|
"SettingsOverlayG025J",
|
||||||
|
"SettingsOverlayG025M",
|
||||||
|
"SettingsOverlayG025N",
|
||||||
|
"SettingsOverlayG5NZ6",
|
||||||
"SettingsProvider",
|
"SettingsProvider",
|
||||||
"SettingsProviderTest",
|
"SettingsProviderTest",
|
||||||
"SettingsRoboTests",
|
"SettingsRoboTests",
|
||||||
"Shell",
|
"Shell",
|
||||||
"ShellTests",
|
"ShellTests",
|
||||||
|
"SimContact",
|
||||||
|
"SimContacts",
|
||||||
|
"SimSettings",
|
||||||
"sl4a.Common",
|
"sl4a.Common",
|
||||||
"StatementService",
|
"StatementService",
|
||||||
"SystemUI-core",
|
"SystemUI-core",
|
||||||
"SystemUISharedLib",
|
"SystemUISharedLib",
|
||||||
"SystemUI-tests",
|
"SystemUI-tests",
|
||||||
|
"tcmiface",
|
||||||
"Telecom",
|
"Telecom",
|
||||||
"TelecomUnitTests",
|
"TelecomUnitTests",
|
||||||
"telephony-common",
|
"telephony-common",
|
||||||
"TelephonyProvider",
|
|
||||||
"TelephonyProviderTests",
|
"TelephonyProviderTests",
|
||||||
"TeleService",
|
"TeleService",
|
||||||
"testables",
|
"testables",
|
||||||
@@ -147,12 +208,16 @@ var legacyCorePlatformApiModules = []string{
|
|||||||
"time_zone_distro_installer-tests",
|
"time_zone_distro_installer-tests",
|
||||||
"time_zone_distro-tests",
|
"time_zone_distro-tests",
|
||||||
"time_zone_updater",
|
"time_zone_updater",
|
||||||
|
"TMobilePlanProvider",
|
||||||
"TvProvider",
|
"TvProvider",
|
||||||
"uiautomator-stubs-docs",
|
"uiautomator-stubs-docs",
|
||||||
|
"uimgbamanagerlibrary",
|
||||||
"UsbHostExternalManagementTestApp",
|
"UsbHostExternalManagementTestApp",
|
||||||
"UserDictionaryProvider",
|
"UserDictionaryProvider",
|
||||||
|
"UxPerformance",
|
||||||
"WallpaperBackup",
|
"WallpaperBackup",
|
||||||
"wifi-service",
|
"WallpaperBackupAgentTests",
|
||||||
|
"WfdCommon",
|
||||||
}
|
}
|
||||||
|
|
||||||
var legacyCorePlatformApiLookup = make(map[string]struct{})
|
var legacyCorePlatformApiLookup = make(map[string]struct{})
|
||||||
|
Reference in New Issue
Block a user