diff options
| -rw-r--r-- | android/arch_test.go | 10 | ||||
| -rw-r--r-- | android/container_violations.go | 22 | ||||
| -rw-r--r-- | android/testing.go | 20 | ||||
| -rw-r--r-- | android/variable.go | 2 | ||||
| -rw-r--r-- | apex/apex.go | 12 | ||||
| -rw-r--r-- | apex/apex_test.go | 23 | ||||
| -rw-r--r-- | apex/builder.go | 12 | ||||
| -rw-r--r-- | cc/prebuilt.go | 17 | ||||
| -rw-r--r-- | filesystem/aconfig_files.go | 7 | ||||
| -rw-r--r-- | filesystem/filesystem.go | 55 | ||||
| -rw-r--r-- | fsgen/filesystem_creator.go | 44 | ||||
| -rw-r--r-- | fsgen/filesystem_creator_test.go | 7 | ||||
| -rw-r--r-- | java/app.go | 4 |
13 files changed, 139 insertions, 96 deletions
diff --git a/android/arch_test.go b/android/arch_test.go index 57c901032..7914884bb 100644 --- a/android/arch_test.go +++ b/android/arch_test.go @@ -560,15 +560,7 @@ func TestArchMutatorNativeBridge(t *testing.T) { prepareForArchTest, // Test specific preparer OptionalFixturePreparer(tt.preparer), - // Prepare for native bridge test - FixtureModifyConfig(func(config Config) { - config.Targets[Android] = []Target{ - {Android, Arch{ArchType: X86_64, ArchVariant: "silvermont", Abi: []string{"arm64-v8a"}}, NativeBridgeDisabled, "", "", false}, - {Android, Arch{ArchType: X86, ArchVariant: "silvermont", Abi: []string{"armeabi-v7a"}}, NativeBridgeDisabled, "", "", false}, - {Android, Arch{ArchType: Arm64, ArchVariant: "armv8-a", Abi: []string{"arm64-v8a"}}, NativeBridgeEnabled, "x86_64", "arm64", false}, - {Android, Arch{ArchType: Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, NativeBridgeEnabled, "x86", "arm", false}, - } - }), + PrepareForNativeBridgeEnabled, FixtureWithRootAndroidBp(bp), ).RunTest(t) diff --git a/android/container_violations.go b/android/container_violations.go index 42514849e..efbc8da1a 100644 --- a/android/container_violations.go +++ b/android/container_violations.go @@ -15,6 +15,10 @@ package android var ContainerDependencyViolationAllowlist = map[string][]string{ + "adservices-service-core": { + "gson", // apex [com.android.adservices, com.android.extservices] -> apex [com.android.virt] + }, + "android.car-module.impl": { "modules-utils-preconditions", // apex [com.android.car.framework] -> apex [com.android.adservices, com.android.appsearch, com.android.cellbroadcast, com.android.extservices, com.android.ondevicepersonalization, com.android.tethering, com.android.uwb, com.android.wifi, test_com.android.cellbroadcast, test_com.android.wifi] }, @@ -46,6 +50,11 @@ var ContainerDependencyViolationAllowlist = map[string][]string{ "modules-utils-shell-command-handler", // apex [com.android.car.framework] -> apex [com.android.adservices, com.android.art, com.android.art.debug, com.android.art.testing, com.android.btservices, com.android.configinfrastructure, com.android.mediaprovider, com.android.nfcservices, com.android.permission, com.android.scheduling, com.android.tethering, com.android.uwb, com.android.wifi, test_com.android.mediaprovider, test_com.android.permission, test_com.android.wifi, test_imgdiag_com.android.art, test_jitzygote_com.android.art] }, + "cellbroadcastreceiver_aconfig_flags_lib": { + "ext", // apex [com.android.cellbroadcast, test_com.android.cellbroadcast] -> system + "framework", // apex [com.android.cellbroadcast, test_com.android.cellbroadcast] -> system + }, + "connectivity-net-module-utils-bpf": { "net-utils-device-common-struct-base", // apex [com.android.tethering] -> system }, @@ -161,6 +170,10 @@ var ContainerDependencyViolationAllowlist = map[string][]string{ "framework", // cts -> unstable }, + "CtsAppFunctionTestCases": { + "framework", // cts -> unstable + }, + "CtsAppOpsTestCases": { "framework", // cts -> unstable }, @@ -701,6 +714,10 @@ var ContainerDependencyViolationAllowlist = map[string][]string{ "framework", // cts -> unstable }, + "CtsTvInputTestCases": { + "framework", // cts -> unstable + }, + "CtsTvTunerTestCases": { "framework", // cts -> unstable }, @@ -822,6 +839,10 @@ var ContainerDependencyViolationAllowlist = map[string][]string{ "app-compat-annotations", // apex [com.android.btservices] -> system }, + "framework-configinfrastructure.impl": { + "configinfra_framework_flags_java_lib", // apex [com.android.configinfrastructure] -> system + }, + "framework-connectivity-t.impl": { "app-compat-annotations", // apex [com.android.tethering] -> system "framework-connectivity-pre-jarjar", // apex [com.android.tethering] -> system @@ -832,6 +853,7 @@ var ContainerDependencyViolationAllowlist = map[string][]string{ }, "framework-ondevicepersonalization.impl": { + "app-compat-annotations", // apex [com.android.ondevicepersonalization] -> system "ondevicepersonalization_flags_lib", // apex [com.android.ondevicepersonalization] -> system }, diff --git a/android/testing.go b/android/testing.go index f243e81dd..765839ffa 100644 --- a/android/testing.go +++ b/android/testing.go @@ -190,6 +190,26 @@ func PrepareForTestWithBuildFlag(flag, value string) FixturePreparer { }) } +// PrepareForNativeBridgeEnabled sets configuration with targets including: +// - X86_64 (primary) +// - X86 (secondary) +// - Arm64 on X86_64 (native bridge) +// - Arm on X86 (native bridge) +var PrepareForNativeBridgeEnabled = FixtureModifyConfig( + func(config Config) { + config.Targets[Android] = []Target{ + {Os: Android, Arch: Arch{ArchType: X86_64, ArchVariant: "silvermont", Abi: []string{"arm64-v8a"}}, + NativeBridge: NativeBridgeDisabled, NativeBridgeHostArchName: "", NativeBridgeRelativePath: ""}, + {Os: Android, Arch: Arch{ArchType: X86, ArchVariant: "silvermont", Abi: []string{"armeabi-v7a"}}, + NativeBridge: NativeBridgeDisabled, NativeBridgeHostArchName: "", NativeBridgeRelativePath: ""}, + {Os: Android, Arch: Arch{ArchType: Arm64, ArchVariant: "armv8-a", Abi: []string{"arm64-v8a"}}, + NativeBridge: NativeBridgeEnabled, NativeBridgeHostArchName: "x86_64", NativeBridgeRelativePath: "arm64"}, + {Os: Android, Arch: Arch{ArchType: Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, + NativeBridge: NativeBridgeEnabled, NativeBridgeHostArchName: "x86", NativeBridgeRelativePath: "arm"}, + } + }, +) + func NewTestArchContext(config Config) *TestContext { ctx := NewTestContext(config) ctx.preDeps = append(ctx.preDeps, registerArchMutator) diff --git a/android/variable.go b/android/variable.go index 05ae496f4..e06fb8a0c 100644 --- a/android/variable.go +++ b/android/variable.go @@ -667,6 +667,8 @@ type PartitionVariables struct { VendorRamdiskKernelBlocklistFile string `json:",omitempty"` VendorRamdiskKernelLoadModules []string `json:",omitempty"` VendorRamdiskKernelOptionsFile string `json:",omitempty"` + + ProductFsverityGenerateMetadata bool `json:",omitempty"` } func boolPtr(v bool) *bool { diff --git a/apex/apex.go b/apex/apex.go index 72a045525..f3b3d5b64 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -147,9 +147,6 @@ type apexBundleProperties struct { // Default: true. Installable *bool - // Deprecated. Do not use. TODO(b/350644693) remove this after removing all usage - Use_vndk_as_stable *bool - // The type of filesystem to use. Either 'ext4', 'f2fs' or 'erofs'. Default 'ext4'. Payload_fs_type *string @@ -157,10 +154,6 @@ type apexBundleProperties struct { // Default is false. Ignore_system_library_special_case *bool - // Whenever apex_payload.img of the APEX should include dm-verity hashtree. - // Default value is true. - Generate_hashtree *bool - // Whenever apex_payload.img of the APEX should not be dm-verity signed. Should be only // used in tests. Test_only_unsigned_payload *bool @@ -1333,11 +1326,6 @@ func (a *apexBundle) installable() bool { return !a.properties.PreventInstall && (a.properties.Installable == nil || proptools.Bool(a.properties.Installable)) } -// See the generate_hashtree property -func (a *apexBundle) shouldGenerateHashtree() bool { - return proptools.BoolDefault(a.properties.Generate_hashtree, true) -} - // See the test_only_unsigned_payload property func (a *apexBundle) testOnlyShouldSkipPayloadSign() bool { return proptools.Bool(a.properties.Test_only_unsigned_payload) diff --git a/apex/apex_test.go b/apex/apex_test.go index 6cdb225ff..f80828202 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -84,26 +84,6 @@ func withFiles(files android.MockFS) android.FixturePreparer { return files.AddToFixture() } -// withNativeBridgeTargets sets configuration with targets including: -// - X86_64 (primary) -// - X86 (secondary) -// - Arm64 on X86_64 (native bridge) -// - Arm on X86 (native bridge) -var withNativeBridgeEnabled = android.FixtureModifyConfig( - func(config android.Config) { - config.Targets[android.Android] = []android.Target{ - {Os: android.Android, Arch: android.Arch{ArchType: android.X86_64, ArchVariant: "silvermont", Abi: []string{"arm64-v8a"}}, - NativeBridge: android.NativeBridgeDisabled, NativeBridgeHostArchName: "", NativeBridgeRelativePath: ""}, - {Os: android.Android, Arch: android.Arch{ArchType: android.X86, ArchVariant: "silvermont", Abi: []string{"armeabi-v7a"}}, - NativeBridge: android.NativeBridgeDisabled, NativeBridgeHostArchName: "", NativeBridgeRelativePath: ""}, - {Os: android.Android, Arch: android.Arch{ArchType: android.Arm64, ArchVariant: "armv8-a", Abi: []string{"arm64-v8a"}}, - NativeBridge: android.NativeBridgeEnabled, NativeBridgeHostArchName: "x86_64", NativeBridgeRelativePath: "arm64"}, - {Os: android.Android, Arch: android.Arch{ArchType: android.Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, - NativeBridge: android.NativeBridgeEnabled, NativeBridgeHostArchName: "x86", NativeBridgeRelativePath: "arm"}, - } - }, -) - func withManifestPackageNameOverrides(specs []string) android.FixturePreparer { return android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { variables.ManifestPackageNameOverrides = specs @@ -3198,7 +3178,7 @@ func TestFilesInSubDirWhenNativeBridgeEnabled(t *testing.T) { }, }, } - `, withNativeBridgeEnabled) + `, android.PrepareForNativeBridgeEnabled) ensureExactContents(t, ctx, "myapex", "android_common_myapex", []string{ "bin/foo/bar/mybin", "bin/foo/bar/mybin64", @@ -7446,7 +7426,6 @@ func TestLegacyAndroid10Support(t *testing.T) { module := ctx.ModuleForTests("myapex", "android_common_myapex") args := module.Rule("apexRule").Args ensureContains(t, args["opt_flags"], "--manifest_json "+module.Output("apex_manifest.json").Output.String()) - ensureNotContains(t, args["opt_flags"], "--no_hashtree") // The copies of the libraries in the apex should have one more dependency than // the ones outside the apex, namely the unwinder. Ideally we should check diff --git a/apex/builder.go b/apex/builder.go index e5ae10622..41e251156 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -764,18 +764,6 @@ func (a *apexBundle) buildApex(ctx android.ModuleContext) { implicitInputs = append(implicitInputs, noticeAssetPath) optFlags = append(optFlags, "--assets_dir "+filepath.Dir(noticeAssetPath.String())) - // Apexes which are supposed to be installed in builtin dirs(/system, etc) - // don't need hashtree for activation. Therefore, by removing hashtree from - // apex bundle (filesystem image in it, to be specific), we can save storage. - needHashTree := moduleMinSdkVersion.LessThanOrEqualTo(android.SdkVersion_Android10) || - a.shouldGenerateHashtree() - if ctx.Config().ApexCompressionEnabled() && a.isCompressable() { - needHashTree = true - } - if !needHashTree { - optFlags = append(optFlags, "--no_hashtree") - } - if a.testOnlyShouldSkipPayloadSign() { optFlags = append(optFlags, "--unsigned_payload") } diff --git a/cc/prebuilt.go b/cc/prebuilt.go index ba4c662c6..96a07bc35 100644 --- a/cc/prebuilt.go +++ b/cc/prebuilt.go @@ -16,7 +16,6 @@ package cc import ( "path/filepath" - "strings" "github.com/google/blueprint/depset" "github.com/google/blueprint/proptools" @@ -120,22 +119,6 @@ func (p *prebuiltLibraryLinker) link(ctx ModuleContext, // Stub variants will create a stub .so file from stub .c files if p.buildStubs() && objs.objFiles != nil { // TODO (b/275273834): Make objs.objFiles == nil a hard error when the symbol files have been added to module sdk. - - // The map.txt files of libclang_rt.* contain version information, but the checked in .so files do not. - // e.g. libclang_rt.* libs impl - // $ nm -D prebuilts/../libclang_rt.hwasan-aarch64-android.so - // __hwasan_init - - // stubs generated from .map.txt - // $ nm -D out/soong/.intermediates/../<stubs>/libclang_rt.hwasan-aarch64-android.so - // __hwasan_init@@LIBCLANG_RT_ASAN - - // Special-case libclang_rt.* libs to account for this discrepancy. - // TODO (spandandas): Remove this special case https://r.android.com/3236596 has been submitted, and a new set of map.txt - // files of libclang_rt.* libs have been generated. - if strings.Contains(ctx.ModuleName(), "libclang_rt.") { - p.versionScriptPath = android.OptionalPathForPath(nil) - } return p.linkShared(ctx, flags, deps, objs) } diff --git a/filesystem/aconfig_files.go b/filesystem/aconfig_files.go index 608fccdad..7de404f2d 100644 --- a/filesystem/aconfig_files.go +++ b/filesystem/aconfig_files.go @@ -52,6 +52,8 @@ func (f *filesystem) buildAconfigFlagsFiles(ctx android.ModuleContext, builder * sb.WriteString(aconfigToolPath.String()) sb.WriteString(" dump-cache --dedup --format protobuf --out ") sb.WriteString(installAconfigFlagsPath.String()) + sb.WriteString(" --filter container:") + sb.WriteString(f.PartitionType()) sb.WriteString(" \\\n") sb.WriteString(sbCaches.String()) cmd.ImplicitOutput(installAconfigFlagsPath) @@ -71,8 +73,9 @@ func (f *filesystem) buildAconfigFlagsFiles(ctx android.ModuleContext, builder * sb.WriteString(fileType) sb.WriteString(" --out ") sb.WriteString(outputPath.String()) - sb.WriteString(" \\\n") - sb.WriteString(sbCaches.String()) + sb.WriteString(" --cache ") + sb.WriteString(installAconfigFlagsPath.String()) + sb.WriteRune('\n') cmd.ImplicitOutput(outputPath) f.appendToEntry(ctx, outputPath) } diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go index 21c24cd60..b5f7e486d 100644 --- a/filesystem/filesystem.go +++ b/filesystem/filesystem.go @@ -25,6 +25,7 @@ import ( "android/soong/android" "android/soong/cc" + "android/soong/java" "android/soong/linkerconfig" "github.com/google/blueprint" @@ -33,6 +34,7 @@ import ( func init() { registerBuildComponents(android.InitRegistrationContext) + registerMutators(android.InitRegistrationContext) } func registerBuildComponents(ctx android.RegistrationContext) { @@ -45,6 +47,12 @@ func registerBuildComponents(ctx android.RegistrationContext) { ctx.RegisterModuleType("avb_gen_vbmeta_image_defaults", avbGenVbmetaImageDefaultsFactory) } +func registerMutators(ctx android.RegistrationContext) { + ctx.PostDepsMutators(func(ctx android.RegisterMutatorsContext) { + ctx.BottomUp("add_autogenerated_rro_deps", addAutogeneratedRroDeps) + }) +} + type filesystem struct { android.ModuleBase android.PackagingBase @@ -170,6 +178,14 @@ type FilesystemProperties struct { // Path to the dev nodes description file. This is only needed for building the ramdisk // partition and should not be explicitly specified. Dev_nodes_description_file *string `android:"path" blueprint:"mutated"` + + // Additional dependencies used for building android products + Android_filesystem_deps AndroidFilesystemDeps +} + +type AndroidFilesystemDeps struct { + System *string + System_ext *string } // Additional properties required to generate erofs FS partitions. @@ -235,6 +251,12 @@ type depTagWithVisibilityEnforcementBypass struct { depTag } +type interPartitionDepTag struct { + blueprint.BaseDependencyTag +} + +var interPartitionDependencyTag = interPartitionDepTag{} + var _ android.ExcludeFromVisibilityEnforcementTag = (*depTagWithVisibilityEnforcementBypass)(nil) func (t depTagWithVisibilityEnforcementBypass) ExcludeFromVisibilityEnforcement() {} @@ -257,6 +279,12 @@ func (f *filesystem) DepsMutator(ctx android.BottomUpMutatorContext) { } else { f.AddDeps(ctx, dependencyTag) } + if f.properties.Android_filesystem_deps.System != nil { + ctx.AddDependency(ctx.Module(), interPartitionDependencyTag, proptools.String(f.properties.Android_filesystem_deps.System)) + } + if f.properties.Android_filesystem_deps.System_ext != nil { + ctx.AddDependency(ctx.Module(), interPartitionDependencyTag, proptools.String(f.properties.Android_filesystem_deps.System_ext)) + } } type fsType int @@ -1005,3 +1033,30 @@ func assertMaxImageSize(builder *android.RuleBuilder, image android.Path, maxSiz image, maxSize) cmd.Implicit(image) } + +// addAutogeneratedRroDeps walks the transitive closure of vendor and product partitions. +// It visits apps installed in system and system_ext partitions, and adds the autogenerated +// RRO modules to its own deps. +func addAutogeneratedRroDeps(ctx android.BottomUpMutatorContext) { + f, ok := ctx.Module().(*filesystem) + if !ok { + return + } + thisPartition := f.PartitionType() + if thisPartition != "vendor" && thisPartition != "product" { + return + } + ctx.WalkDeps(func(child, parent android.Module) bool { + depTag := ctx.OtherModuleDependencyTag(child) + if parent.Name() == f.Name() && depTag != interPartitionDependencyTag { + return false // This is a module listed in deps of vendor/product filesystem + } + if vendorOverlay := java.AutogeneratedRroModuleName(ctx, child.Name(), "vendor"); ctx.OtherModuleExists(vendorOverlay) && thisPartition == "vendor" { + ctx.AddFarVariationDependencies(nil, dependencyTagWithVisibilityEnforcementBypass, vendorOverlay) + } + if productOverlay := java.AutogeneratedRroModuleName(ctx, child.Name(), "product"); ctx.OtherModuleExists(productOverlay) && thisPartition == "product" { + ctx.AddFarVariationDependencies(nil, dependencyTagWithVisibilityEnforcementBypass, productOverlay) + } + return true + }) +} diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go index 34c478715..ec52f61dc 100644 --- a/fsgen/filesystem_creator.go +++ b/fsgen/filesystem_creator.go @@ -208,23 +208,25 @@ func (f *filesystemCreator) createDeviceModule( ctx.CreateModule(filesystem.AndroidDeviceFactory, baseProps, partitionProps) } -func partitionSpecificFsProps(fsProps *filesystem.FilesystemProperties, partitionVars android.PartitionVariables, partitionType string) { +func partitionSpecificFsProps(ctx android.EarlyModuleContext, fsProps *filesystem.FilesystemProperties, partitionVars android.PartitionVariables, partitionType string) { switch partitionType { case "system": fsProps.Build_logtags = proptools.BoolPtr(true) // https://source.corp.google.com/h/googleplex-android/platform/build//639d79f5012a6542ab1f733b0697db45761ab0f3:core/packaging/flags.mk;l=21;drc=5ba8a8b77507f93aa48cc61c5ba3f31a4d0cbf37;bpv=1;bpt=0 fsProps.Gen_aconfig_flags_pb = proptools.BoolPtr(true) // Identical to that of the aosp_shared_system_image - fsProps.Fsverity.Inputs = []string{ - "etc/boot-image.prof", - "etc/dirty-image-objects", - "etc/preloaded-classes", - "etc/classpaths/*.pb", - "framework/*", - "framework/*/*", // framework/{arch} - "framework/oat/*/*", // framework/oat/{arch} + if partitionVars.ProductFsverityGenerateMetadata { + fsProps.Fsverity.Inputs = []string{ + "etc/boot-image.prof", + "etc/dirty-image-objects", + "etc/preloaded-classes", + "etc/classpaths/*.pb", + "framework/*", + "framework/*/*", // framework/{arch} + "framework/oat/*/*", // framework/oat/{arch} + } + fsProps.Fsverity.Libs = []string{":framework-res{.export-package.apk}"} } - fsProps.Fsverity.Libs = []string{":framework-res{.export-package.apk}"} // Most of the symlinks and directories listed here originate from create_root_structure.mk, // but the handwritten generic system image also recreates them: // https://cs.android.com/android/platform/superproject/main/+/main:build/make/target/product/generic/Android.bp;l=33;drc=db08311f1b6ef6cb0a4fbcc6263b89849360ce04 @@ -351,14 +353,20 @@ func partitionSpecificFsProps(fsProps *filesystem.FilesystemProperties, partitio "product", }) case "system_ext": - fsProps.Fsverity.Inputs = []string{ - "framework/*", - "framework/*/*", // framework/{arch} - "framework/oat/*/*", // framework/oat/{arch} + if partitionVars.ProductFsverityGenerateMetadata { + fsProps.Fsverity.Inputs = []string{ + "framework/*", + "framework/*/*", // framework/{arch} + "framework/oat/*/*", // framework/oat/{arch} + } + fsProps.Fsverity.Libs = []string{":framework-res{.export-package.apk}"} } - fsProps.Fsverity.Libs = []string{":framework-res{.export-package.apk}"} case "product": fsProps.Gen_aconfig_flags_pb = proptools.BoolPtr(true) + fsProps.Android_filesystem_deps.System = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system")) + if ctx.DeviceConfig().SystemExtPath() == "system_ext" { + fsProps.Android_filesystem_deps.System_ext = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system_ext")) + } case "vendor": fsProps.Gen_aconfig_flags_pb = proptools.BoolPtr(true) fsProps.Symlinks = []filesystem.SymlinkDefinition{ @@ -371,6 +379,10 @@ func partitionSpecificFsProps(fsProps *filesystem.FilesystemProperties, partitio Name: proptools.StringPtr("vendor/lib/modules"), }, } + fsProps.Android_filesystem_deps.System = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system")) + if ctx.DeviceConfig().SystemExtPath() == "system_ext" { + fsProps.Android_filesystem_deps.System_ext = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system_ext")) + } case "odm": fsProps.Symlinks = []filesystem.SymlinkDefinition{ filesystem.SymlinkDefinition{ @@ -714,7 +726,7 @@ func generateFsProps(ctx android.EarlyModuleContext, partitionType string) (*fil fsProps.Is_auto_generated = proptools.BoolPtr(true) - partitionSpecificFsProps(fsProps, partitionVars, partitionType) + partitionSpecificFsProps(ctx, fsProps, partitionVars, partitionType) // system_image properties that are not set: // - filesystemProperties.Avb_hash_algorithm diff --git a/fsgen/filesystem_creator_test.go b/fsgen/filesystem_creator_test.go index fe4a40325..565760882 100644 --- a/fsgen/filesystem_creator_test.go +++ b/fsgen/filesystem_creator_test.go @@ -168,13 +168,8 @@ func TestFileSystemCreatorDepsWithNamespace(t *testing.T) { BoardFileSystemType: "ext4", }, } - config.Targets[android.Android] = []android.Target{ - {Os: android.Android, Arch: android.Arch{ArchType: android.X86_64, ArchVariant: "silvermont", Abi: []string{"arm64-v8a"}}, NativeBridge: android.NativeBridgeDisabled, NativeBridgeHostArchName: "", NativeBridgeRelativePath: "", HostCross: false}, - {Os: android.Android, Arch: android.Arch{ArchType: android.X86, ArchVariant: "silvermont", Abi: []string{"armeabi-v7a"}}, NativeBridge: android.NativeBridgeDisabled, NativeBridgeHostArchName: "", NativeBridgeRelativePath: "", HostCross: false}, - {Os: android.Android, Arch: android.Arch{ArchType: android.Arm64, ArchVariant: "armv8-a", Abi: []string{"arm64-v8a"}}, NativeBridge: android.NativeBridgeEnabled, NativeBridgeHostArchName: "x86_64", NativeBridgeRelativePath: "arm64", HostCross: false}, - {Os: android.Android, Arch: android.Arch{ArchType: android.Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, NativeBridge: android.NativeBridgeEnabled, NativeBridgeHostArchName: "x86", NativeBridgeRelativePath: "arm", HostCross: false}, - } }), + android.PrepareForNativeBridgeEnabled, android.FixtureMergeMockFs(android.MockFS{ "external/avb/test/data/testkey_rsa4096.pem": nil, "build/soong/fsgen/Android.bp": []byte(` diff --git a/java/app.go b/java/app.go index 7f80160a3..34a548e5a 100644 --- a/java/app.go +++ b/java/app.go @@ -1382,6 +1382,10 @@ func AndroidAppFactory() android.Module { return module } +func AutogeneratedRroModuleName(ctx android.EarlyModuleContext, moduleName, partition string) string { + return fmt.Sprintf("%s__%s__auto_generated_rro_%s", moduleName, ctx.Config().DeviceProduct(), partition) +} + // A dictionary of values to be overridden in the manifest. type Manifest_values struct { // Overrides the value of package_name in the manifest |