Merge changes from topic "boot-image-b280776428"
* changes: Dexpreopt ART jars and framework jars together. Unify installDirOnHost and installDirOnDevice. Remove the ability to install boot images by bootclasspath_fragments. Prepare tests for dexpreopt changes.
This commit is contained in:
@@ -38,6 +38,7 @@ bootstrap_go_package {
|
|||||||
"apex_test.go",
|
"apex_test.go",
|
||||||
"bootclasspath_fragment_test.go",
|
"bootclasspath_fragment_test.go",
|
||||||
"classpath_element_test.go",
|
"classpath_element_test.go",
|
||||||
|
"dexpreopt_bootjars_test.go",
|
||||||
"metadata_test.go",
|
"metadata_test.go",
|
||||||
"platform_bootclasspath_test.go",
|
"platform_bootclasspath_test.go",
|
||||||
"systemserver_classpath_fragment_test.go",
|
"systemserver_classpath_fragment_test.go",
|
||||||
|
18
apex/apex.go
18
apex/apex.go
@@ -2287,16 +2287,13 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext,
|
|||||||
ctx.PropertyErrorf("sh_binaries", "%q is not a sh_binary module", depName)
|
ctx.PropertyErrorf("sh_binaries", "%q is not a sh_binary module", depName)
|
||||||
}
|
}
|
||||||
case bcpfTag:
|
case bcpfTag:
|
||||||
bcpfModule, ok := child.(*java.BootclasspathFragmentModule)
|
_, ok := child.(*java.BootclasspathFragmentModule)
|
||||||
if !ok {
|
if !ok {
|
||||||
ctx.PropertyErrorf("bootclasspath_fragments", "%q is not a bootclasspath_fragment module", depName)
|
ctx.PropertyErrorf("bootclasspath_fragments", "%q is not a bootclasspath_fragment module", depName)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
vctx.filesInfo = append(vctx.filesInfo, apexBootclasspathFragmentFiles(ctx, child)...)
|
vctx.filesInfo = append(vctx.filesInfo, apexBootclasspathFragmentFiles(ctx, child)...)
|
||||||
for _, makeModuleName := range bcpfModule.BootImageDeviceInstallMakeModules() {
|
|
||||||
a.makeModulesToInstall = append(a.makeModulesToInstall, makeModuleName)
|
|
||||||
}
|
|
||||||
return true
|
return true
|
||||||
case sscpfTag:
|
case sscpfTag:
|
||||||
if _, ok := child.(*java.SystemServerClasspathModule); !ok {
|
if _, ok := child.(*java.SystemServerClasspathModule); !ok {
|
||||||
@@ -2662,19 +2659,6 @@ func apexBootclasspathFragmentFiles(ctx android.ModuleContext, module blueprint.
|
|||||||
bootclasspathFragmentInfo := ctx.OtherModuleProvider(module, java.BootclasspathFragmentApexContentInfoProvider).(java.BootclasspathFragmentApexContentInfo)
|
bootclasspathFragmentInfo := ctx.OtherModuleProvider(module, java.BootclasspathFragmentApexContentInfoProvider).(java.BootclasspathFragmentApexContentInfo)
|
||||||
var filesToAdd []apexFile
|
var filesToAdd []apexFile
|
||||||
|
|
||||||
// Add the boot image files, e.g. .art, .oat and .vdex files.
|
|
||||||
if bootclasspathFragmentInfo.ShouldInstallBootImageInApex() {
|
|
||||||
for arch, files := range bootclasspathFragmentInfo.AndroidBootImageFilesByArchType() {
|
|
||||||
dirInApex := filepath.Join("javalib", arch.String())
|
|
||||||
for _, f := range files {
|
|
||||||
androidMkModuleName := "javalib_" + arch.String() + "_" + filepath.Base(f.String())
|
|
||||||
// TODO(b/177892522) - consider passing in the bootclasspath fragment module here instead of nil
|
|
||||||
af := newApexFile(ctx, f, androidMkModuleName, dirInApex, etc, nil)
|
|
||||||
filesToAdd = append(filesToAdd, af)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add classpaths.proto config.
|
// Add classpaths.proto config.
|
||||||
if af := apexClasspathFragmentProtoFile(ctx, module); af != nil {
|
if af := apexClasspathFragmentProtoFile(ctx, module); af != nil {
|
||||||
filesToAdd = append(filesToAdd, *af)
|
filesToAdd = append(filesToAdd, *af)
|
||||||
|
@@ -147,7 +147,7 @@ var prepareForApexTest = android.GroupFixturePreparers(
|
|||||||
android.PrepareForTestWithAndroidBuildComponents,
|
android.PrepareForTestWithAndroidBuildComponents,
|
||||||
bpf.PrepareForTestWithBpf,
|
bpf.PrepareForTestWithBpf,
|
||||||
cc.PrepareForTestWithCcBuildComponents,
|
cc.PrepareForTestWithCcBuildComponents,
|
||||||
java.PrepareForTestWithJavaDefaultModules,
|
java.PrepareForTestWithDexpreopt,
|
||||||
prebuilt_etc.PrepareForTestWithPrebuiltEtc,
|
prebuilt_etc.PrepareForTestWithPrebuiltEtc,
|
||||||
rust.PrepareForTestWithRustDefaultModules,
|
rust.PrepareForTestWithRustDefaultModules,
|
||||||
sh.PrepareForTestWithShBuildComponents,
|
sh.PrepareForTestWithShBuildComponents,
|
||||||
@@ -8349,8 +8349,8 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
|||||||
testNoUpdatableJarsInBootImage(t, "", preparer, fragments...)
|
testNoUpdatableJarsInBootImage(t, "", preparer, fragments...)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("updatable jar from ART apex in the framework boot image => error", func(t *testing.T) {
|
t.Run("updatable jar from ART apex in the platform bootclasspath => error", func(t *testing.T) {
|
||||||
err := `module "some-art-lib" from updatable apexes \["com.android.art.debug"\] is not allowed in the framework boot image`
|
err := `module "some-art-lib" from updatable apexes \["com.android.art.debug"\] is not allowed in the platform bootclasspath`
|
||||||
// Update the dexpreopt BootJars directly.
|
// Update the dexpreopt BootJars directly.
|
||||||
preparer := android.GroupFixturePreparers(
|
preparer := android.GroupFixturePreparers(
|
||||||
prepareSetBootJars("com.android.art.debug:some-art-lib"),
|
prepareSetBootJars("com.android.art.debug:some-art-lib"),
|
||||||
@@ -8373,8 +8373,8 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
|||||||
testNoUpdatableJarsInBootImage(t, err, preparer)
|
testNoUpdatableJarsInBootImage(t, err, preparer)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("updatable jar from some other apex in the framework boot image => error", func(t *testing.T) {
|
t.Run("updatable jar from some other apex in the platform bootclasspath => error", func(t *testing.T) {
|
||||||
err := `module "some-updatable-apex-lib" from updatable apexes \["some-updatable-apex"\] is not allowed in the framework boot image`
|
err := `module "some-updatable-apex-lib" from updatable apexes \["some-updatable-apex"\] is not allowed in the platform bootclasspath`
|
||||||
preparer := android.GroupFixturePreparers(
|
preparer := android.GroupFixturePreparers(
|
||||||
java.FixtureConfigureBootJars("some-updatable-apex:some-updatable-apex-lib"),
|
java.FixtureConfigureBootJars("some-updatable-apex:some-updatable-apex-lib"),
|
||||||
java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib"),
|
java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib"),
|
||||||
@@ -8382,7 +8382,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
|||||||
testNoUpdatableJarsInBootImage(t, err, preparer)
|
testNoUpdatableJarsInBootImage(t, err, preparer)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("non-updatable jar from some other apex in the framework boot image => ok", func(t *testing.T) {
|
t.Run("non-updatable jar from some other apex in the platform bootclasspath => ok", func(t *testing.T) {
|
||||||
preparer := java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib")
|
preparer := java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib")
|
||||||
fragment := java.ApexVariantReference{
|
fragment := java.ApexVariantReference{
|
||||||
Apex: proptools.StringPtr("some-non-updatable-apex"),
|
Apex: proptools.StringPtr("some-non-updatable-apex"),
|
||||||
@@ -8397,7 +8397,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
|||||||
testNoUpdatableJarsInBootImage(t, err, preparer)
|
testNoUpdatableJarsInBootImage(t, err, preparer)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("nonexistent jar in the framework boot image => error", func(t *testing.T) {
|
t.Run("nonexistent jar in the platform bootclasspath => error", func(t *testing.T) {
|
||||||
err := `"platform-bootclasspath" depends on undefined module "nonexistent"`
|
err := `"platform-bootclasspath" depends on undefined module "nonexistent"`
|
||||||
preparer := java.FixtureConfigureBootJars("platform:nonexistent")
|
preparer := java.FixtureConfigureBootJars("platform:nonexistent")
|
||||||
testNoUpdatableJarsInBootImage(t, err, preparer)
|
testNoUpdatableJarsInBootImage(t, err, preparer)
|
||||||
@@ -8410,7 +8410,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
|||||||
testNoUpdatableJarsInBootImage(t, err, preparer)
|
testNoUpdatableJarsInBootImage(t, err, preparer)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("platform jar in the framework boot image => ok", func(t *testing.T) {
|
t.Run("platform jar in the platform bootclasspath => ok", func(t *testing.T) {
|
||||||
preparer := android.GroupFixturePreparers(
|
preparer := android.GroupFixturePreparers(
|
||||||
java.FixtureConfigureBootJars("platform:some-platform-lib"),
|
java.FixtureConfigureBootJars("platform:some-platform-lib"),
|
||||||
java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib"),
|
java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib"),
|
||||||
|
@@ -115,20 +115,7 @@ func TestBootclasspathFragments(t *testing.T) {
|
|||||||
|
|
||||||
// Make sure that the art-bootclasspath-fragment is using the correct configuration.
|
// Make sure that the art-bootclasspath-fragment is using the correct configuration.
|
||||||
checkBootclasspathFragment(t, result, "art-bootclasspath-fragment", "android_common_apex10000",
|
checkBootclasspathFragment(t, result, "art-bootclasspath-fragment", "android_common_apex10000",
|
||||||
"com.android.art:baz,com.android.art:quuz", `
|
"com.android.art:baz,com.android.art:quuz")
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.art
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.oat
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.vdex
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.art
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.oat
|
|
||||||
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.vdex
|
|
||||||
`)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
|
func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
|
||||||
@@ -261,7 +248,7 @@ func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
|
|||||||
checkAPIScopeStubs("other", otherInfo, java.CorePlatformHiddenAPIScope)
|
checkAPIScopeStubs("other", otherInfo, java.CorePlatformHiddenAPIScope)
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkBootclasspathFragment(t *testing.T, result *android.TestResult, moduleName, variantName string, expectedConfiguredModules string, expectedBootclasspathFragmentFiles string) {
|
func checkBootclasspathFragment(t *testing.T, result *android.TestResult, moduleName, variantName string, expectedConfiguredModules string) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
|
|
||||||
bootclasspathFragment := result.ModuleForTests(moduleName, variantName).Module().(*java.BootclasspathFragmentModule)
|
bootclasspathFragment := result.ModuleForTests(moduleName, variantName).Module().(*java.BootclasspathFragmentModule)
|
||||||
@@ -269,19 +256,6 @@ func checkBootclasspathFragment(t *testing.T, result *android.TestResult, module
|
|||||||
bootclasspathFragmentInfo := result.ModuleProvider(bootclasspathFragment, java.BootclasspathFragmentApexContentInfoProvider).(java.BootclasspathFragmentApexContentInfo)
|
bootclasspathFragmentInfo := result.ModuleProvider(bootclasspathFragment, java.BootclasspathFragmentApexContentInfoProvider).(java.BootclasspathFragmentApexContentInfo)
|
||||||
modules := bootclasspathFragmentInfo.Modules()
|
modules := bootclasspathFragmentInfo.Modules()
|
||||||
android.AssertStringEquals(t, "invalid modules for "+moduleName, expectedConfiguredModules, modules.String())
|
android.AssertStringEquals(t, "invalid modules for "+moduleName, expectedConfiguredModules, modules.String())
|
||||||
|
|
||||||
// Get a list of all the paths in the boot image sorted by arch type.
|
|
||||||
allPaths := []string{}
|
|
||||||
bootImageFilesByArchType := bootclasspathFragmentInfo.AndroidBootImageFilesByArchType()
|
|
||||||
for _, archType := range android.ArchTypeList() {
|
|
||||||
if paths, ok := bootImageFilesByArchType[archType]; ok {
|
|
||||||
for _, path := range paths {
|
|
||||||
allPaths = append(allPaths, android.NormalizePathForTesting(path))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
android.AssertTrimmedStringEquals(t, "invalid paths for "+moduleName, expectedBootclasspathFragmentFiles, strings.Join(allPaths, "\n"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBootclasspathFragmentInArtApex(t *testing.T) {
|
func TestBootclasspathFragmentInArtApex(t *testing.T) {
|
||||||
@@ -420,18 +394,6 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
|
|||||||
ensureExactContents(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{
|
ensureExactContents(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{
|
||||||
"etc/boot-image.prof",
|
"etc/boot-image.prof",
|
||||||
"etc/classpaths/bootclasspath.pb",
|
"etc/classpaths/bootclasspath.pb",
|
||||||
"javalib/arm/boot.art",
|
|
||||||
"javalib/arm/boot.oat",
|
|
||||||
"javalib/arm/boot.vdex",
|
|
||||||
"javalib/arm/boot-bar.art",
|
|
||||||
"javalib/arm/boot-bar.oat",
|
|
||||||
"javalib/arm/boot-bar.vdex",
|
|
||||||
"javalib/arm64/boot.art",
|
|
||||||
"javalib/arm64/boot.oat",
|
|
||||||
"javalib/arm64/boot.vdex",
|
|
||||||
"javalib/arm64/boot-bar.art",
|
|
||||||
"javalib/arm64/boot-bar.oat",
|
|
||||||
"javalib/arm64/boot-bar.vdex",
|
|
||||||
"javalib/bar.jar",
|
"javalib/bar.jar",
|
||||||
"javalib/foo.jar",
|
"javalib/foo.jar",
|
||||||
})
|
})
|
||||||
@@ -441,62 +403,12 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
|
|||||||
`mybootclasspathfragment`,
|
`mybootclasspathfragment`,
|
||||||
})
|
})
|
||||||
|
|
||||||
// The boot images are installed in the APEX by Soong, so there shouldn't be any dexpreopt-related Make modules.
|
|
||||||
ensureDoesNotContainRequiredDeps(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.vdex",
|
|
||||||
})
|
|
||||||
|
|
||||||
// Make sure that the source bootclasspath_fragment copies its dex files to the predefined
|
// Make sure that the source bootclasspath_fragment copies its dex files to the predefined
|
||||||
// locations for the art image.
|
// locations for the art image.
|
||||||
module := result.ModuleForTests("mybootclasspathfragment", "android_common_apex10000")
|
module := result.ModuleForTests("mybootclasspathfragment", "android_common_apex10000")
|
||||||
checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo")
|
checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo")
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("boot image files from source no boot image in apex", func(t *testing.T) {
|
|
||||||
result := android.GroupFixturePreparers(
|
|
||||||
commonPreparer,
|
|
||||||
|
|
||||||
// Configure some libraries in the art bootclasspath_fragment that match the source
|
|
||||||
// bootclasspath_fragment's contents property.
|
|
||||||
java.FixtureConfigureBootJars("com.android.art:foo", "com.android.art:bar"),
|
|
||||||
addSource("foo", "bar"),
|
|
||||||
java.FixtureSetBootImageInstallDirOnDevice("art", "system/framework"),
|
|
||||||
).RunTest(t)
|
|
||||||
|
|
||||||
ensureExactContents(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{
|
|
||||||
"etc/boot-image.prof",
|
|
||||||
"etc/classpaths/bootclasspath.pb",
|
|
||||||
"javalib/bar.jar",
|
|
||||||
"javalib/foo.jar",
|
|
||||||
})
|
|
||||||
|
|
||||||
ensureContainsRequiredDeps(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.vdex",
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
t.Run("generate boot image profile even if dexpreopt is disabled", func(t *testing.T) {
|
t.Run("generate boot image profile even if dexpreopt is disabled", func(t *testing.T) {
|
||||||
result := android.GroupFixturePreparers(
|
result := android.GroupFixturePreparers(
|
||||||
commonPreparer,
|
commonPreparer,
|
||||||
@@ -552,18 +464,6 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
|
|||||||
|
|
||||||
ensureExactDeapexedContents(t, result.TestContext, "com.android.art", "android_common", []string{
|
ensureExactDeapexedContents(t, result.TestContext, "com.android.art", "android_common", []string{
|
||||||
"etc/boot-image.prof",
|
"etc/boot-image.prof",
|
||||||
"javalib/arm/boot.art",
|
|
||||||
"javalib/arm/boot.oat",
|
|
||||||
"javalib/arm/boot.vdex",
|
|
||||||
"javalib/arm/boot-bar.art",
|
|
||||||
"javalib/arm/boot-bar.oat",
|
|
||||||
"javalib/arm/boot-bar.vdex",
|
|
||||||
"javalib/arm64/boot.art",
|
|
||||||
"javalib/arm64/boot.oat",
|
|
||||||
"javalib/arm64/boot.vdex",
|
|
||||||
"javalib/arm64/boot-bar.art",
|
|
||||||
"javalib/arm64/boot-bar.oat",
|
|
||||||
"javalib/arm64/boot-bar.vdex",
|
|
||||||
"javalib/bar.jar",
|
"javalib/bar.jar",
|
||||||
"javalib/foo.jar",
|
"javalib/foo.jar",
|
||||||
})
|
})
|
||||||
@@ -574,65 +474,12 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
|
|||||||
`prebuilt_com.android.art`,
|
`prebuilt_com.android.art`,
|
||||||
})
|
})
|
||||||
|
|
||||||
// The boot images are installed in the APEX by Soong, so there shouldn't be any dexpreopt-related Make modules.
|
|
||||||
ensureDoesNotContainRequiredDeps(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.vdex",
|
|
||||||
})
|
|
||||||
|
|
||||||
// Make sure that the prebuilt bootclasspath_fragment copies its dex files to the predefined
|
// Make sure that the prebuilt bootclasspath_fragment copies its dex files to the predefined
|
||||||
// locations for the art image.
|
// locations for the art image.
|
||||||
module := result.ModuleForTests("prebuilt_mybootclasspathfragment", "android_common_com.android.art")
|
module := result.ModuleForTests("prebuilt_mybootclasspathfragment", "android_common_com.android.art")
|
||||||
checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo")
|
checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo")
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("boot image files from preferred prebuilt no boot image in apex", func(t *testing.T) {
|
|
||||||
result := android.GroupFixturePreparers(
|
|
||||||
commonPreparer,
|
|
||||||
|
|
||||||
// Configure some libraries in the art bootclasspath_fragment that match the source
|
|
||||||
// bootclasspath_fragment's contents property.
|
|
||||||
java.FixtureConfigureBootJars("com.android.art:foo", "com.android.art:bar"),
|
|
||||||
addSource("foo", "bar"),
|
|
||||||
|
|
||||||
// Make sure that a preferred prebuilt with consistent contents doesn't affect the apex.
|
|
||||||
addPrebuilt(true, "foo", "bar"),
|
|
||||||
|
|
||||||
java.FixtureSetBootImageInstallDirOnDevice("art", "system/framework"),
|
|
||||||
).RunTest(t)
|
|
||||||
|
|
||||||
ensureExactDeapexedContents(t, result.TestContext, "com.android.art", "android_common", []string{
|
|
||||||
"etc/boot-image.prof",
|
|
||||||
"javalib/bar.jar",
|
|
||||||
"javalib/foo.jar",
|
|
||||||
})
|
|
||||||
|
|
||||||
ensureContainsRequiredDeps(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm64-boot-bar.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot.vdex",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.art",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.oat",
|
|
||||||
"mybootclasspathfragment-dexpreopt-arm-boot-bar.vdex",
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
t.Run("source with inconsistency between config and contents", func(t *testing.T) {
|
t.Run("source with inconsistency between config and contents", func(t *testing.T) {
|
||||||
android.GroupFixturePreparers(
|
android.GroupFixturePreparers(
|
||||||
commonPreparer,
|
commonPreparer,
|
||||||
@@ -782,10 +629,6 @@ func TestBootclasspathFragmentInPrebuiltArtApex(t *testing.T) {
|
|||||||
|
|
||||||
module := result.ModuleForTests("mybootclasspathfragment", "android_common_com.android.art")
|
module := result.ModuleForTests("mybootclasspathfragment", "android_common_com.android.art")
|
||||||
checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo")
|
checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo")
|
||||||
|
|
||||||
// Check that the right deapexer module was chosen for a boot image.
|
|
||||||
param := module.Output("out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art")
|
|
||||||
android.AssertStringDoesContain(t, "didn't find the expected deapexer in the input path", param.Input.String(), "/com.android.art.deapexer")
|
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("enabled alternative APEX", func(t *testing.T) {
|
t.Run("enabled alternative APEX", func(t *testing.T) {
|
||||||
@@ -1250,7 +1093,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable(t *testing.T) {
|
|||||||
func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *testing.T) {
|
func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *testing.T) {
|
||||||
result := android.GroupFixturePreparers(
|
result := android.GroupFixturePreparers(
|
||||||
prepareForTestWithBootclasspathFragment,
|
prepareForTestWithBootclasspathFragment,
|
||||||
java.PrepareForTestWithJavaDefaultModules,
|
java.PrepareForTestWithDexpreopt,
|
||||||
prepareForTestWithArtApex,
|
prepareForTestWithArtApex,
|
||||||
prepareForTestWithMyapex,
|
prepareForTestWithMyapex,
|
||||||
// Configure bootclasspath jars to ensure that hidden API encoding is performed on them.
|
// Configure bootclasspath jars to ensure that hidden API encoding is performed on them.
|
||||||
|
254
apex/dexpreopt_bootjars_test.go
Normal file
254
apex/dexpreopt_bootjars_test.go
Normal file
@@ -0,0 +1,254 @@
|
|||||||
|
// Copyright 2019 Google Inc. All rights reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package apex
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
|
"sort"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"android/soong/android"
|
||||||
|
"android/soong/java"
|
||||||
|
)
|
||||||
|
|
||||||
|
func testDexpreoptBoot(t *testing.T, ruleFile string, expectedInputs, expectedOutputs []string, preferPrebuilt bool) {
|
||||||
|
bp := `
|
||||||
|
// Platform.
|
||||||
|
|
||||||
|
java_sdk_library {
|
||||||
|
name: "foo",
|
||||||
|
srcs: ["a.java"],
|
||||||
|
api_packages: ["foo"],
|
||||||
|
}
|
||||||
|
|
||||||
|
java_library {
|
||||||
|
name: "bar",
|
||||||
|
srcs: ["b.java"],
|
||||||
|
installable: true,
|
||||||
|
system_ext_specific: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
dex_import {
|
||||||
|
name: "baz",
|
||||||
|
jars: ["a.jar"],
|
||||||
|
}
|
||||||
|
|
||||||
|
platform_bootclasspath {
|
||||||
|
name: "platform-bootclasspath",
|
||||||
|
fragments: [
|
||||||
|
{
|
||||||
|
apex: "com.android.art",
|
||||||
|
module: "art-bootclasspath-fragment",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
// Source ART APEX.
|
||||||
|
|
||||||
|
java_library {
|
||||||
|
name: "core-oj",
|
||||||
|
srcs: ["core-oj.java"],
|
||||||
|
installable: true,
|
||||||
|
apex_available: [
|
||||||
|
"com.android.art",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
bootclasspath_fragment {
|
||||||
|
name: "art-bootclasspath-fragment",
|
||||||
|
image_name: "art",
|
||||||
|
contents: ["core-oj"],
|
||||||
|
apex_available: [
|
||||||
|
"com.android.art",
|
||||||
|
],
|
||||||
|
hidden_api: {
|
||||||
|
split_packages: ["*"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
apex_key {
|
||||||
|
name: "com.android.art.key",
|
||||||
|
public_key: "com.android.art.avbpubkey",
|
||||||
|
private_key: "com.android.art.pem",
|
||||||
|
}
|
||||||
|
|
||||||
|
apex {
|
||||||
|
name: "com.android.art",
|
||||||
|
key: "com.android.art.key",
|
||||||
|
bootclasspath_fragments: ["art-bootclasspath-fragment"],
|
||||||
|
updatable: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prebuilt ART APEX.
|
||||||
|
|
||||||
|
java_import {
|
||||||
|
name: "core-oj",
|
||||||
|
prefer: %[1]t,
|
||||||
|
jars: ["core-oj.jar"],
|
||||||
|
apex_available: [
|
||||||
|
"com.android.art",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_bootclasspath_fragment {
|
||||||
|
name: "art-bootclasspath-fragment",
|
||||||
|
prefer: %[1]t,
|
||||||
|
image_name: "art",
|
||||||
|
contents: ["core-oj"],
|
||||||
|
hidden_api: {
|
||||||
|
annotation_flags: "my-bootclasspath-fragment/annotation-flags.csv",
|
||||||
|
metadata: "my-bootclasspath-fragment/metadata.csv",
|
||||||
|
index: "my-bootclasspath-fragment/index.csv",
|
||||||
|
stub_flags: "my-bootclasspath-fragment/stub-flags.csv",
|
||||||
|
all_flags: "my-bootclasspath-fragment/all-flags.csv",
|
||||||
|
},
|
||||||
|
apex_available: [
|
||||||
|
"com.android.art",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_apex {
|
||||||
|
name: "com.android.art",
|
||||||
|
prefer: %[1]t,
|
||||||
|
apex_name: "com.android.art",
|
||||||
|
src: "com.android.art-arm.apex",
|
||||||
|
exported_bootclasspath_fragments: ["art-bootclasspath-fragment"],
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
result := android.GroupFixturePreparers(
|
||||||
|
java.PrepareForTestWithDexpreopt,
|
||||||
|
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||||
|
java.FixtureWithLastReleaseApis("foo"),
|
||||||
|
java.FixtureConfigureBootJars("com.android.art:core-oj", "platform:foo", "system_ext:bar", "platform:baz"),
|
||||||
|
PrepareForTestWithApexBuildComponents,
|
||||||
|
prepareForTestWithArtApex,
|
||||||
|
).RunTestWithBp(t, fmt.Sprintf(bp, preferPrebuilt))
|
||||||
|
|
||||||
|
platformBootclasspath := result.ModuleForTests("platform-bootclasspath", "android_common")
|
||||||
|
rule := platformBootclasspath.Output(ruleFile)
|
||||||
|
|
||||||
|
inputs := rule.Implicits.Strings()
|
||||||
|
sort.Strings(inputs)
|
||||||
|
sort.Strings(expectedInputs)
|
||||||
|
|
||||||
|
outputs := append(android.WritablePaths{rule.Output}, rule.ImplicitOutputs...).Strings()
|
||||||
|
sort.Strings(outputs)
|
||||||
|
sort.Strings(expectedOutputs)
|
||||||
|
|
||||||
|
android.AssertStringPathsRelativeToTopEquals(t, "inputs", result.Config, expectedInputs, inputs)
|
||||||
|
|
||||||
|
android.AssertStringPathsRelativeToTopEquals(t, "outputs", result.Config, expectedOutputs, outputs)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDexpreoptBootJarsWithSourceArtApex(t *testing.T) {
|
||||||
|
ruleFile := "boot.art"
|
||||||
|
|
||||||
|
expectedInputs := []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/core-oj.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/foo.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/bar.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/baz.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_artjars/boot.prof",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/boot.prof",
|
||||||
|
}
|
||||||
|
|
||||||
|
expectedOutputs := []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.invocation",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-foo.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-bar.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-baz.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-foo.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-bar.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-baz.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-foo.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-bar.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-baz.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-foo.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-bar.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-baz.oat",
|
||||||
|
}
|
||||||
|
|
||||||
|
testDexpreoptBoot(t, ruleFile, expectedInputs, expectedOutputs, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// The only difference is that the ART profile should be deapexed from the prebuilt APEX. Other
|
||||||
|
// inputs and outputs should be the same as above.
|
||||||
|
func TestDexpreoptBootJarsWithPrebuiltArtApex(t *testing.T) {
|
||||||
|
ruleFile := "boot.art"
|
||||||
|
|
||||||
|
expectedInputs := []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/core-oj.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/foo.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/bar.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/baz.jar",
|
||||||
|
"out/soong/.intermediates/com.android.art.deapexer/android_common/deapexer/etc/boot-image.prof",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/boot.prof",
|
||||||
|
}
|
||||||
|
|
||||||
|
expectedOutputs := []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.invocation",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-foo.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-bar.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-baz.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-foo.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-bar.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-baz.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-foo.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-bar.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-baz.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-foo.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-bar.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-baz.oat",
|
||||||
|
}
|
||||||
|
|
||||||
|
testDexpreoptBoot(t, ruleFile, expectedInputs, expectedOutputs, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Changes to the boot.zip structure may break the ART APK scanner.
|
||||||
|
func TestDexpreoptBootZip(t *testing.T) {
|
||||||
|
ruleFile := "boot.zip"
|
||||||
|
|
||||||
|
ctx := android.PathContextForTesting(android.TestArchConfig("", nil, "", nil))
|
||||||
|
expectedInputs := []string{}
|
||||||
|
for _, target := range ctx.Config().Targets[android.Android] {
|
||||||
|
for _, ext := range []string{".art", ".oat", ".vdex"} {
|
||||||
|
for _, suffix := range []string{"", "-foo", "-bar", "-baz"} {
|
||||||
|
expectedInputs = append(expectedInputs,
|
||||||
|
filepath.Join(
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars",
|
||||||
|
target.Os.String(),
|
||||||
|
"system/framework",
|
||||||
|
target.Arch.ArchType.String(),
|
||||||
|
"boot"+suffix+ext))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
expectedOutputs := []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/boot.zip",
|
||||||
|
}
|
||||||
|
|
||||||
|
testDexpreoptBoot(t, ruleFile, expectedInputs, expectedOutputs, false)
|
||||||
|
}
|
@@ -27,7 +27,7 @@ import (
|
|||||||
func TestModulesSingleton(t *testing.T) {
|
func TestModulesSingleton(t *testing.T) {
|
||||||
result := android.GroupFixturePreparers(
|
result := android.GroupFixturePreparers(
|
||||||
PrepareForTestWithApexMultitreeSingleton,
|
PrepareForTestWithApexMultitreeSingleton,
|
||||||
java.PrepareForTestWithDexpreopt,
|
java.PrepareForTestWithJavaDefaultModules,
|
||||||
PrepareForTestWithApexBuildComponents,
|
PrepareForTestWithApexBuildComponents,
|
||||||
java.FixtureConfigureApexBootJars("myapex:foo"),
|
java.FixtureConfigureApexBootJars("myapex:foo"),
|
||||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||||
|
@@ -20,6 +20,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
|
"android/soong/dexpreopt"
|
||||||
"android/soong/java"
|
"android/soong/java"
|
||||||
|
|
||||||
"github.com/google/blueprint"
|
"github.com/google/blueprint"
|
||||||
@@ -30,7 +31,7 @@ import (
|
|||||||
// apexes.
|
// apexes.
|
||||||
|
|
||||||
var prepareForTestWithPlatformBootclasspath = android.GroupFixturePreparers(
|
var prepareForTestWithPlatformBootclasspath = android.GroupFixturePreparers(
|
||||||
java.PrepareForTestWithDexpreopt,
|
java.PrepareForTestWithJavaDefaultModules,
|
||||||
PrepareForTestWithApexBuildComponents,
|
PrepareForTestWithApexBuildComponents,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -249,6 +250,8 @@ func TestPlatformBootclasspathDependencies(t *testing.T) {
|
|||||||
java.FixtureConfigureApexBootJars("myapex:bar"),
|
java.FixtureConfigureApexBootJars("myapex:bar"),
|
||||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||||
java.FixtureWithLastReleaseApis("foo"),
|
java.FixtureWithLastReleaseApis("foo"),
|
||||||
|
java.PrepareForTestWithDexpreopt,
|
||||||
|
dexpreopt.FixtureDisableDexpreoptBootImages(false),
|
||||||
).RunTestWithBp(t, `
|
).RunTestWithBp(t, `
|
||||||
apex {
|
apex {
|
||||||
name: "com.android.art",
|
name: "com.android.art",
|
||||||
@@ -539,9 +542,6 @@ func TestPlatformBootclasspath_AlwaysUsePrebuiltSdks(t *testing.T) {
|
|||||||
// Not a prebuilt as no prebuilt existed when it was added.
|
// Not a prebuilt as no prebuilt existed when it was added.
|
||||||
"platform:legacy.core.platform.api.stubs",
|
"platform:legacy.core.platform.api.stubs",
|
||||||
|
|
||||||
// Needed for generating the boot image.
|
|
||||||
"platform:dex2oatd",
|
|
||||||
|
|
||||||
// The platform_bootclasspath intentionally adds dependencies on both source and prebuilt
|
// The platform_bootclasspath intentionally adds dependencies on both source and prebuilt
|
||||||
// modules when available as it does not know which one will be preferred.
|
// modules when available as it does not know which one will be preferred.
|
||||||
"myapex:foo",
|
"myapex:foo",
|
||||||
|
@@ -199,14 +199,11 @@ func (p *prebuiltCommon) initApexFilesForAndroidMk(ctx android.ModuleContext) {
|
|||||||
p.apexFilesForAndroidMk = append(p.apexFilesForAndroidMk, af)
|
p.apexFilesForAndroidMk = append(p.apexFilesForAndroidMk, af)
|
||||||
}
|
}
|
||||||
} else if tag == exportedBootclasspathFragmentTag {
|
} else if tag == exportedBootclasspathFragmentTag {
|
||||||
bcpfModule, ok := child.(*java.PrebuiltBootclasspathFragmentModule)
|
_, ok := child.(*java.PrebuiltBootclasspathFragmentModule)
|
||||||
if !ok {
|
if !ok {
|
||||||
ctx.PropertyErrorf("exported_bootclasspath_fragments", "%q is not a prebuilt_bootclasspath_fragment module", name)
|
ctx.PropertyErrorf("exported_bootclasspath_fragments", "%q is not a prebuilt_bootclasspath_fragment module", name)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
for _, makeModuleName := range bcpfModule.BootImageDeviceInstallMakeModules() {
|
|
||||||
p.requiredModuleNames = append(p.requiredModuleNames, makeModuleName)
|
|
||||||
}
|
|
||||||
// Visit the children of the bootclasspath_fragment.
|
// Visit the children of the bootclasspath_fragment.
|
||||||
return true
|
return true
|
||||||
} else if tag == exportedSystemserverclasspathFragmentTag {
|
} else if tag == exportedSystemserverclasspathFragmentTag {
|
||||||
|
@@ -87,7 +87,6 @@ bootstrap_go_package {
|
|||||||
"device_host_converter_test.go",
|
"device_host_converter_test.go",
|
||||||
"dex_test.go",
|
"dex_test.go",
|
||||||
"dexpreopt_test.go",
|
"dexpreopt_test.go",
|
||||||
"dexpreopt_bootjars_test.go",
|
|
||||||
"dexpreopt_config_test.go",
|
"dexpreopt_config_test.go",
|
||||||
"droiddoc_test.go",
|
"droiddoc_test.go",
|
||||||
"droidstubs_test.go",
|
"droidstubs_test.go",
|
||||||
|
@@ -241,10 +241,8 @@ type BootclasspathFragmentModule struct {
|
|||||||
// Collect the module directory for IDE info in java/jdeps.go.
|
// Collect the module directory for IDE info in java/jdeps.go.
|
||||||
modulePaths []string
|
modulePaths []string
|
||||||
|
|
||||||
// Installs for on-device boot image files. This list has entries only if the installs should be
|
// Path to the boot image profile.
|
||||||
// handled by Make (e.g., the boot image should be installed on the system partition, rather than
|
profilePath android.Path
|
||||||
// in the APEX).
|
|
||||||
bootImageDeviceInstalls []dexpreopterInstall
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// commonBootclasspathFragment defines the methods that are implemented by both source and prebuilt
|
// commonBootclasspathFragment defines the methods that are implemented by both source and prebuilt
|
||||||
@@ -264,16 +262,16 @@ type commonBootclasspathFragment interface {
|
|||||||
// If it could not create the files then it will return nil. Otherwise, it will return a map from
|
// If it could not create the files then it will return nil. Otherwise, it will return a map from
|
||||||
// android.ArchType to the predefined paths of the boot image files.
|
// android.ArchType to the predefined paths of the boot image files.
|
||||||
produceBootImageFiles(ctx android.ModuleContext, imageConfig *bootImageConfig) bootImageOutputs
|
produceBootImageFiles(ctx android.ModuleContext, imageConfig *bootImageConfig) bootImageOutputs
|
||||||
|
|
||||||
|
// getImageName returns the `image_name` property of this fragment.
|
||||||
|
getImageName() *string
|
||||||
|
|
||||||
|
// getProfilePath returns the path to the boot image profile.
|
||||||
|
getProfilePath() android.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ commonBootclasspathFragment = (*BootclasspathFragmentModule)(nil)
|
var _ commonBootclasspathFragment = (*BootclasspathFragmentModule)(nil)
|
||||||
|
|
||||||
// bootImageFilesByArch is a map from android.ArchType to the paths to the boot image files.
|
|
||||||
//
|
|
||||||
// The paths include the .art, .oat and .vdex files, one for each of the modules from which the boot
|
|
||||||
// image is created.
|
|
||||||
type bootImageFilesByArch map[android.ArchType]android.Paths
|
|
||||||
|
|
||||||
func bootclasspathFragmentFactory() android.Module {
|
func bootclasspathFragmentFactory() android.Module {
|
||||||
m := &BootclasspathFragmentModule{}
|
m := &BootclasspathFragmentModule{}
|
||||||
m.AddProperties(&m.properties, &m.sourceOnlyProperties)
|
m.AddProperties(&m.properties, &m.sourceOnlyProperties)
|
||||||
@@ -395,12 +393,6 @@ type BootclasspathFragmentApexContentInfo struct {
|
|||||||
// set image_name: "art".
|
// set image_name: "art".
|
||||||
modules android.ConfiguredJarList
|
modules android.ConfiguredJarList
|
||||||
|
|
||||||
// Map from arch type to the boot image files.
|
|
||||||
bootImageFilesByArch bootImageFilesByArch
|
|
||||||
|
|
||||||
// True if the boot image should be installed in the APEX.
|
|
||||||
shouldInstallBootImageInApex bool
|
|
||||||
|
|
||||||
// Map from the base module name (without prebuilt_ prefix) of a fragment's contents module to the
|
// Map from the base module name (without prebuilt_ prefix) of a fragment's contents module to the
|
||||||
// hidden API encoded dex jar path.
|
// hidden API encoded dex jar path.
|
||||||
contentModuleDexJarPaths bootDexJarByModule
|
contentModuleDexJarPaths bootDexJarByModule
|
||||||
@@ -417,18 +409,6 @@ func (i BootclasspathFragmentApexContentInfo) Modules() android.ConfiguredJarLis
|
|||||||
return i.modules
|
return i.modules
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get a map from ArchType to the associated boot image's contents for Android.
|
|
||||||
//
|
|
||||||
// Extension boot images only return their own files, not the files of the boot images they extend.
|
|
||||||
func (i BootclasspathFragmentApexContentInfo) AndroidBootImageFilesByArchType() bootImageFilesByArch {
|
|
||||||
return i.bootImageFilesByArch
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return true if the boot image should be installed in the APEX.
|
|
||||||
func (i *BootclasspathFragmentApexContentInfo) ShouldInstallBootImageInApex() bool {
|
|
||||||
return i.shouldInstallBootImageInApex
|
|
||||||
}
|
|
||||||
|
|
||||||
// DexBootJarPathForContentModule returns the path to the dex boot jar for specified module.
|
// DexBootJarPathForContentModule returns the path to the dex boot jar for specified module.
|
||||||
//
|
//
|
||||||
// The dex boot jar is one which has had hidden API encoding performed on it.
|
// The dex boot jar is one which has had hidden API encoding performed on it.
|
||||||
@@ -557,6 +537,7 @@ func (b *BootclasspathFragmentModule) GenerateAndroidBuildActions(ctx android.Mo
|
|||||||
// Delegate the production of the boot image files to a module type specific method.
|
// Delegate the production of the boot image files to a module type specific method.
|
||||||
common := ctx.Module().(commonBootclasspathFragment)
|
common := ctx.Module().(commonBootclasspathFragment)
|
||||||
bootImageFiles = common.produceBootImageFiles(ctx, imageConfig)
|
bootImageFiles = common.produceBootImageFiles(ctx, imageConfig)
|
||||||
|
b.profilePath = bootImageFiles.profile
|
||||||
|
|
||||||
if shouldCopyBootFilesToPredefinedLocations(ctx, imageConfig) {
|
if shouldCopyBootFilesToPredefinedLocations(ctx, imageConfig) {
|
||||||
// Zip the boot image files up, if available. This will generate the zip file in a
|
// Zip the boot image files up, if available. This will generate the zip file in a
|
||||||
@@ -566,25 +547,6 @@ func (b *BootclasspathFragmentModule) GenerateAndroidBuildActions(ctx android.Mo
|
|||||||
// Copy the dex jars of this fragment's content modules to their predefined locations.
|
// Copy the dex jars of this fragment's content modules to their predefined locations.
|
||||||
copyBootJarsToPredefinedLocations(ctx, hiddenAPIOutput.EncodedBootDexFilesByModule, imageConfig.dexPathsByModule)
|
copyBootJarsToPredefinedLocations(ctx, hiddenAPIOutput.EncodedBootDexFilesByModule, imageConfig.dexPathsByModule)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, variant := range bootImageFiles.variants {
|
|
||||||
archType := variant.config.target.Arch.ArchType
|
|
||||||
arch := archType.String()
|
|
||||||
for _, install := range variant.deviceInstalls {
|
|
||||||
// Remove the "/" prefix because the path should be relative to $ANDROID_PRODUCT_OUT.
|
|
||||||
installDir := strings.TrimPrefix(filepath.Dir(install.To), "/")
|
|
||||||
installBase := filepath.Base(install.To)
|
|
||||||
installPath := android.PathForModuleInPartitionInstall(ctx, "", installDir)
|
|
||||||
|
|
||||||
b.bootImageDeviceInstalls = append(b.bootImageDeviceInstalls, dexpreopterInstall{
|
|
||||||
name: arch + "-" + installBase,
|
|
||||||
moduleName: b.Name(),
|
|
||||||
outputPathOnHost: install.From,
|
|
||||||
installDirOnDevice: installPath,
|
|
||||||
installFileOnDevice: installBase,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// A prebuilt fragment cannot contribute to an apex.
|
// A prebuilt fragment cannot contribute to an apex.
|
||||||
@@ -643,12 +605,8 @@ func (b *BootclasspathFragmentModule) provideApexContentInfo(ctx android.ModuleC
|
|||||||
info.profilePathOnHost = bootImageFiles.profile
|
info.profilePathOnHost = bootImageFiles.profile
|
||||||
info.profileInstallPathInApex = imageConfig.profileInstallPathInApex
|
info.profileInstallPathInApex = imageConfig.profileInstallPathInApex
|
||||||
}
|
}
|
||||||
|
|
||||||
info.shouldInstallBootImageInApex = imageConfig.shouldInstallInApex()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
info.bootImageFilesByArch = bootImageFiles.byArch
|
|
||||||
|
|
||||||
// Make the apex content info available for other modules.
|
// Make the apex content info available for other modules.
|
||||||
ctx.SetProvider(BootclasspathFragmentApexContentInfoProvider, info)
|
ctx.SetProvider(BootclasspathFragmentApexContentInfoProvider, info)
|
||||||
}
|
}
|
||||||
@@ -960,19 +918,15 @@ func (b *BootclasspathFragmentModule) AndroidMkEntries() []android.AndroidMkEntr
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
for _, install := range b.bootImageDeviceInstalls {
|
|
||||||
entriesList = append(entriesList, install.ToMakeEntries())
|
|
||||||
}
|
|
||||||
return entriesList
|
return entriesList
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the names of all Make modules that handle the installation of the boot image.
|
func (b *BootclasspathFragmentModule) getImageName() *string {
|
||||||
func (b *BootclasspathFragmentModule) BootImageDeviceInstallMakeModules() []string {
|
return b.properties.Image_name
|
||||||
var makeModules []string
|
|
||||||
for _, install := range b.bootImageDeviceInstalls {
|
|
||||||
makeModules = append(makeModules, install.FullModuleName())
|
|
||||||
}
|
}
|
||||||
return makeModules
|
|
||||||
|
func (b *BootclasspathFragmentModule) getProfilePath() android.Path {
|
||||||
|
return b.profilePath
|
||||||
}
|
}
|
||||||
|
|
||||||
// Collect information for opening IDE project files in java/jdeps.go.
|
// Collect information for opening IDE project files in java/jdeps.go.
|
||||||
@@ -1262,59 +1216,25 @@ func (module *PrebuiltBootclasspathFragmentModule) produceBootImageFiles(ctx and
|
|||||||
// built without a profile as the prebuilt modules do not provide a profile.
|
// built without a profile as the prebuilt modules do not provide a profile.
|
||||||
buildBootImageVariantsForBuildOs(ctx, imageConfig, profile)
|
buildBootImageVariantsForBuildOs(ctx, imageConfig, profile)
|
||||||
|
|
||||||
if imageConfig.shouldInstallInApex() {
|
|
||||||
// If the boot image files for the android variants are in the prebuilt apex, we must use those
|
|
||||||
// rather than building new ones because those boot image files are going to be used on device.
|
|
||||||
files := bootImageFilesByArch{}
|
|
||||||
bootImageFiles := bootImageOutputs{
|
|
||||||
byArch: files,
|
|
||||||
profile: profile,
|
|
||||||
}
|
|
||||||
for _, variant := range imageConfig.apexVariants() {
|
|
||||||
arch := variant.target.Arch.ArchType
|
|
||||||
bootImageFiles.variants = append(bootImageFiles.variants, bootImageVariantOutputs{
|
|
||||||
variant,
|
|
||||||
// No device installs needed when installed in APEX.
|
|
||||||
nil,
|
|
||||||
})
|
|
||||||
for _, toPath := range variant.imagesDeps {
|
|
||||||
apexRelativePath := apexRootRelativePathToBootImageFile(arch, toPath.Base())
|
|
||||||
// Get the path to the file that the deapexer extracted from the prebuilt apex file.
|
|
||||||
fromPath := di.PrebuiltExportPath(apexRelativePath)
|
|
||||||
|
|
||||||
// Return the toPath as the calling code expects the paths in the returned map to be the
|
|
||||||
// paths predefined in the bootImageConfig.
|
|
||||||
files[arch] = append(files[arch], toPath)
|
|
||||||
|
|
||||||
// Copy the file to the predefined location.
|
|
||||||
ctx.Build(pctx, android.BuildParams{
|
|
||||||
Rule: android.Cp,
|
|
||||||
Input: fromPath,
|
|
||||||
Output: toPath,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return bootImageFiles
|
|
||||||
} else {
|
|
||||||
if profile == nil && imageConfig.isProfileGuided() {
|
if profile == nil && imageConfig.isProfileGuided() {
|
||||||
ctx.ModuleErrorf("Unable to produce boot image files: neither boot image files nor profiles exists in the prebuilt apex")
|
ctx.ModuleErrorf("Unable to produce boot image files: profiles not found in the prebuilt apex")
|
||||||
return bootImageOutputs{}
|
return bootImageOutputs{}
|
||||||
}
|
}
|
||||||
// Build boot image files for the android variants from the dex files provided by the contents
|
// Build boot image files for the android variants from the dex files provided by the contents
|
||||||
// of this module.
|
// of this module.
|
||||||
return buildBootImageVariantsForAndroidOs(ctx, imageConfig, profile)
|
return buildBootImageVariantsForAndroidOs(ctx, imageConfig, profile)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *PrebuiltBootclasspathFragmentModule) getImageName() *string {
|
||||||
|
return b.properties.Image_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *PrebuiltBootclasspathFragmentModule) getProfilePath() android.Path {
|
||||||
|
return b.profilePath
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ commonBootclasspathFragment = (*PrebuiltBootclasspathFragmentModule)(nil)
|
var _ commonBootclasspathFragment = (*PrebuiltBootclasspathFragmentModule)(nil)
|
||||||
|
|
||||||
// createBootImageTag creates the tag to uniquely identify the boot image file among all of the
|
|
||||||
// files that a module requires from the prebuilt .apex file.
|
|
||||||
func createBootImageTag(arch android.ArchType, baseName string) string {
|
|
||||||
tag := fmt.Sprintf(".bootimage-%s-%s", arch, baseName)
|
|
||||||
return tag
|
|
||||||
}
|
|
||||||
|
|
||||||
// RequiredFilesFromPrebuiltApex returns the list of all files the prebuilt_bootclasspath_fragment
|
// RequiredFilesFromPrebuiltApex returns the list of all files the prebuilt_bootclasspath_fragment
|
||||||
// requires from a prebuilt .apex file.
|
// requires from a prebuilt .apex file.
|
||||||
//
|
//
|
||||||
@@ -1328,25 +1248,11 @@ func (module *PrebuiltBootclasspathFragmentModule) RequiredFilesFromPrebuiltApex
|
|||||||
// Add the boot image profile.
|
// Add the boot image profile.
|
||||||
files = append(files, imageConfig.profileInstallPathInApex)
|
files = append(files, imageConfig.profileInstallPathInApex)
|
||||||
}
|
}
|
||||||
if imageConfig.shouldInstallInApex() {
|
|
||||||
// Add the boot image files, e.g. .art, .oat and .vdex files.
|
|
||||||
for _, variant := range imageConfig.apexVariants() {
|
|
||||||
arch := variant.target.Arch.ArchType
|
|
||||||
for _, path := range variant.imagesDeps.Paths() {
|
|
||||||
base := path.Base()
|
|
||||||
files = append(files, apexRootRelativePathToBootImageFile(arch, base))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return files
|
return files
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func apexRootRelativePathToBootImageFile(arch android.ArchType, base string) string {
|
|
||||||
return filepath.Join("javalib", arch.String(), base)
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ android.RequiredFilesFromPrebuiltApex = (*PrebuiltBootclasspathFragmentModule)(nil)
|
var _ android.RequiredFilesFromPrebuiltApex = (*PrebuiltBootclasspathFragmentModule)(nil)
|
||||||
|
|
||||||
func prebuiltBootclasspathFragmentFactory() android.Module {
|
func prebuiltBootclasspathFragmentFactory() android.Module {
|
||||||
|
@@ -250,11 +250,12 @@ type bootImageConfig struct {
|
|||||||
// Output directory for the image files with debug symbols.
|
// Output directory for the image files with debug symbols.
|
||||||
symbolsDir android.OutputPath
|
symbolsDir android.OutputPath
|
||||||
|
|
||||||
// Subdirectory where the image files are installed.
|
// The relative location where the image files are installed. On host, the location is relative to
|
||||||
installDirOnHost string
|
// $ANDROID_PRODUCT_OUT.
|
||||||
|
//
|
||||||
// Subdirectory where the image files on device are installed.
|
// Only the configs that are built by platform_bootclasspath are installable on device. On device,
|
||||||
installDirOnDevice string
|
// the location is relative to "/".
|
||||||
|
installDir string
|
||||||
|
|
||||||
// Install path of the boot image profile if it needs to be installed in the APEX, or empty if not
|
// Install path of the boot image profile if it needs to be installed in the APEX, or empty if not
|
||||||
// needed.
|
// needed.
|
||||||
@@ -294,6 +295,11 @@ type bootImageConfig struct {
|
|||||||
|
|
||||||
// The "--single-image" argument.
|
// The "--single-image" argument.
|
||||||
singleImage bool
|
singleImage bool
|
||||||
|
|
||||||
|
// Profiles imported from other boot image configs. Each element must represent a
|
||||||
|
// `bootclasspath_fragment` of an APEX (i.e., the `name` field of each element must refer to the
|
||||||
|
// `image_name` property of a `bootclasspath_fragment`).
|
||||||
|
profileImports []*bootImageConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
// Target-dependent description of a boot image.
|
// Target-dependent description of a boot image.
|
||||||
@@ -421,11 +427,6 @@ func (image *bootImageConfig) apexVariants() []*bootImageVariant {
|
|||||||
return variants
|
return variants
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if the boot image should be installed in the APEX.
|
|
||||||
func (image *bootImageConfig) shouldInstallInApex() bool {
|
|
||||||
return strings.HasPrefix(image.installDirOnDevice, "apex/")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return boot image locations (as a list of symbolic paths).
|
// Return boot image locations (as a list of symbolic paths).
|
||||||
//
|
//
|
||||||
// The image "location" is a symbolic path that, with multiarchitecture support, doesn't really
|
// The image "location" is a symbolic path that, with multiarchitecture support, doesn't really
|
||||||
@@ -596,6 +597,12 @@ func buildBootImageVariantsForBuildOs(ctx android.ModuleContext, image *bootImag
|
|||||||
buildBootImageForOsType(ctx, image, profile, ctx.Config().BuildOS)
|
buildBootImageForOsType(ctx, image, profile, ctx.Config().BuildOS)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// bootImageFilesByArch is a map from android.ArchType to the paths to the boot image files.
|
||||||
|
//
|
||||||
|
// The paths include the .art, .oat and .vdex files, one for each of the modules from which the boot
|
||||||
|
// image is created.
|
||||||
|
type bootImageFilesByArch map[android.ArchType]android.Paths
|
||||||
|
|
||||||
// bootImageOutputs encapsulates information about boot images that were created/obtained by
|
// bootImageOutputs encapsulates information about boot images that were created/obtained by
|
||||||
// commonBootclasspathFragment.produceBootImageFiles.
|
// commonBootclasspathFragment.produceBootImageFiles.
|
||||||
type bootImageOutputs struct {
|
type bootImageOutputs struct {
|
||||||
@@ -657,7 +664,6 @@ func buildBootImageZipInPredefinedLocation(ctx android.ModuleContext, image *boo
|
|||||||
|
|
||||||
type bootImageVariantOutputs struct {
|
type bootImageVariantOutputs struct {
|
||||||
config *bootImageVariant
|
config *bootImageVariant
|
||||||
deviceInstalls android.RuleBuilderInstalls
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate boot image build rules for a specific target.
|
// Generate boot image build rules for a specific target.
|
||||||
@@ -668,9 +674,9 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p
|
|||||||
|
|
||||||
arch := image.target.Arch.ArchType
|
arch := image.target.Arch.ArchType
|
||||||
os := image.target.Os.String() // We need to distinguish host-x86 and device-x86.
|
os := image.target.Os.String() // We need to distinguish host-x86 and device-x86.
|
||||||
symbolsDir := image.symbolsDir.Join(ctx, os, image.installDirOnHost, arch.String())
|
symbolsDir := image.symbolsDir.Join(ctx, os, image.installDir, arch.String())
|
||||||
symbolsFile := symbolsDir.Join(ctx, image.stem+".oat")
|
symbolsFile := symbolsDir.Join(ctx, image.stem+".oat")
|
||||||
outputDir := image.dir.Join(ctx, os, image.installDirOnHost, arch.String())
|
outputDir := image.dir.Join(ctx, os, image.installDir, arch.String())
|
||||||
outputPath := outputDir.Join(ctx, image.stem+".oat")
|
outputPath := outputDir.Join(ctx, image.stem+".oat")
|
||||||
oatLocation := dexpreopt.PathToLocation(outputPath, arch)
|
oatLocation := dexpreopt.PathToLocation(outputPath, arch)
|
||||||
imagePath := outputPath.ReplaceExtension(ctx, "art")
|
imagePath := outputPath.ReplaceExtension(ctx, "art")
|
||||||
@@ -710,6 +716,34 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p
|
|||||||
cmd.FlagWithInput("--profile-file=", profile)
|
cmd.FlagWithInput("--profile-file=", profile)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fragments := make(map[string]commonBootclasspathFragment)
|
||||||
|
ctx.VisitDirectDepsWithTag(bootclasspathFragmentDepTag, func(child android.Module) {
|
||||||
|
fragment := child.(commonBootclasspathFragment)
|
||||||
|
if fragment.getImageName() != nil && android.IsModulePreferred(child) {
|
||||||
|
fragments[*fragment.getImageName()] = fragment
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
for _, profileImport := range image.profileImports {
|
||||||
|
fragment := fragments[profileImport.name]
|
||||||
|
if fragment == nil {
|
||||||
|
ctx.ModuleErrorf("Boot image config '%[1]s' imports profile from '%[2]s', but a "+
|
||||||
|
"bootclasspath_fragment with image name '%[2]s' doesn't exist or is not added as a "+
|
||||||
|
"dependency of '%[1]s'",
|
||||||
|
image.name,
|
||||||
|
profileImport.name)
|
||||||
|
return bootImageVariantOutputs{}
|
||||||
|
}
|
||||||
|
if fragment.getProfilePath() == nil {
|
||||||
|
ctx.ModuleErrorf("Boot image config '%[1]s' imports profile from '%[2]s', but '%[2]s' "+
|
||||||
|
"doesn't provide a profile",
|
||||||
|
image.name,
|
||||||
|
profileImport.name)
|
||||||
|
return bootImageVariantOutputs{}
|
||||||
|
}
|
||||||
|
cmd.FlagWithInput("--profile-file=", fragment.getProfilePath())
|
||||||
|
}
|
||||||
|
|
||||||
dirtyImageFile := "frameworks/base/config/dirty-image-objects"
|
dirtyImageFile := "frameworks/base/config/dirty-image-objects"
|
||||||
dirtyImagePath := android.ExistentPathForSource(ctx, dirtyImageFile)
|
dirtyImagePath := android.ExistentPathForSource(ctx, dirtyImageFile)
|
||||||
if dirtyImagePath.Valid() {
|
if dirtyImagePath.Valid() {
|
||||||
@@ -796,11 +830,10 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p
|
|||||||
|
|
||||||
cmd.Textf(`|| ( echo %s ; false )`, proptools.ShellEscape(failureMessage))
|
cmd.Textf(`|| ( echo %s ; false )`, proptools.ShellEscape(failureMessage))
|
||||||
|
|
||||||
installDir := filepath.Join("/", image.installDirOnHost, arch.String())
|
installDir := filepath.Dir(image.imagePathOnDevice)
|
||||||
|
|
||||||
var vdexInstalls android.RuleBuilderInstalls
|
var vdexInstalls android.RuleBuilderInstalls
|
||||||
var unstrippedInstalls android.RuleBuilderInstalls
|
var unstrippedInstalls android.RuleBuilderInstalls
|
||||||
var deviceInstalls android.RuleBuilderInstalls
|
|
||||||
|
|
||||||
for _, artOrOat := range image.moduleFiles(ctx, outputDir, ".art", ".oat") {
|
for _, artOrOat := range image.moduleFiles(ctx, outputDir, ".art", ".oat") {
|
||||||
cmd.ImplicitOutput(artOrOat)
|
cmd.ImplicitOutput(artOrOat)
|
||||||
@@ -826,14 +859,6 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p
|
|||||||
android.RuleBuilderInstall{unstrippedOat, filepath.Join(installDir, unstrippedOat.Base())})
|
android.RuleBuilderInstall{unstrippedOat, filepath.Join(installDir, unstrippedOat.Base())})
|
||||||
}
|
}
|
||||||
|
|
||||||
if image.installDirOnHost != image.installDirOnDevice && !image.shouldInstallInApex() && !ctx.Config().UnbundledBuild() {
|
|
||||||
installDirOnDevice := filepath.Join("/", image.installDirOnDevice, arch.String())
|
|
||||||
for _, file := range image.moduleFiles(ctx, outputDir, ".art", ".oat", ".vdex") {
|
|
||||||
deviceInstalls = append(deviceInstalls,
|
|
||||||
android.RuleBuilderInstall{file, filepath.Join(installDirOnDevice, file.Base())})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
rule.Build(image.name+"JarsDexpreopt_"+image.target.String(), "dexpreopt "+image.name+" jars "+arch.String())
|
rule.Build(image.name+"JarsDexpreopt_"+image.target.String(), "dexpreopt "+image.name+" jars "+arch.String())
|
||||||
|
|
||||||
// save output and installed files for makevars
|
// save output and installed files for makevars
|
||||||
@@ -849,7 +874,6 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p
|
|||||||
|
|
||||||
return bootImageVariantOutputs{
|
return bootImageVariantOutputs{
|
||||||
image,
|
image,
|
||||||
deviceInstalls,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,130 +0,0 @@
|
|||||||
// Copyright 2019 Google Inc. All rights reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package java
|
|
||||||
|
|
||||||
import (
|
|
||||||
"path/filepath"
|
|
||||||
"sort"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"android/soong/android"
|
|
||||||
)
|
|
||||||
|
|
||||||
func testDexpreoptBoot(t *testing.T, ruleFile string, expectedInputs, expectedOutputs []string) {
|
|
||||||
bp := `
|
|
||||||
java_sdk_library {
|
|
||||||
name: "foo",
|
|
||||||
srcs: ["a.java"],
|
|
||||||
api_packages: ["foo"],
|
|
||||||
}
|
|
||||||
|
|
||||||
java_library {
|
|
||||||
name: "bar",
|
|
||||||
srcs: ["b.java"],
|
|
||||||
installable: true,
|
|
||||||
system_ext_specific: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
dex_import {
|
|
||||||
name: "baz",
|
|
||||||
jars: ["a.jar"],
|
|
||||||
}
|
|
||||||
|
|
||||||
platform_bootclasspath {
|
|
||||||
name: "platform-bootclasspath",
|
|
||||||
}
|
|
||||||
`
|
|
||||||
|
|
||||||
result := android.GroupFixturePreparers(
|
|
||||||
prepareForJavaTest,
|
|
||||||
PrepareForTestWithJavaSdkLibraryFiles,
|
|
||||||
FixtureWithLastReleaseApis("foo"),
|
|
||||||
FixtureConfigureBootJars("platform:foo", "system_ext:bar", "platform:baz"),
|
|
||||||
).RunTestWithBp(t, bp)
|
|
||||||
|
|
||||||
platformBootclasspath := result.ModuleForTests("platform-bootclasspath", "android_common")
|
|
||||||
rule := platformBootclasspath.Output(ruleFile)
|
|
||||||
|
|
||||||
for i := range expectedInputs {
|
|
||||||
expectedInputs[i] = filepath.Join("out/soong/dexpreopt_arm64", expectedInputs[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := range expectedOutputs {
|
|
||||||
expectedOutputs[i] = filepath.Join("out/soong/dexpreopt_arm64", expectedOutputs[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
inputs := rule.Implicits.Strings()
|
|
||||||
sort.Strings(inputs)
|
|
||||||
sort.Strings(expectedInputs)
|
|
||||||
|
|
||||||
outputs := append(android.WritablePaths{rule.Output}, rule.ImplicitOutputs...).Strings()
|
|
||||||
sort.Strings(outputs)
|
|
||||||
sort.Strings(expectedOutputs)
|
|
||||||
|
|
||||||
android.AssertStringPathsRelativeToTopEquals(t, "inputs", result.Config, expectedInputs, inputs)
|
|
||||||
|
|
||||||
android.AssertStringPathsRelativeToTopEquals(t, "outputs", result.Config, expectedOutputs, outputs)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDexpreoptBootJars(t *testing.T) {
|
|
||||||
ruleFile := "boot-foo.art"
|
|
||||||
|
|
||||||
expectedInputs := []string{
|
|
||||||
"dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
|
||||||
"dex_bootjars_input/foo.jar",
|
|
||||||
"dex_bootjars_input/bar.jar",
|
|
||||||
"dex_bootjars_input/baz.jar",
|
|
||||||
}
|
|
||||||
|
|
||||||
expectedOutputs := []string{
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot.invocation",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-foo.art",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-bar.art",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-baz.art",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-foo.oat",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-bar.oat",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-baz.oat",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-foo.vdex",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-bar.vdex",
|
|
||||||
"dex_bootjars/android/system/framework/arm64/boot-baz.vdex",
|
|
||||||
"dex_bootjars_unstripped/android/system/framework/arm64/boot-foo.oat",
|
|
||||||
"dex_bootjars_unstripped/android/system/framework/arm64/boot-bar.oat",
|
|
||||||
"dex_bootjars_unstripped/android/system/framework/arm64/boot-baz.oat",
|
|
||||||
}
|
|
||||||
|
|
||||||
testDexpreoptBoot(t, ruleFile, expectedInputs, expectedOutputs)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Changes to the boot.zip structure may break the ART APK scanner.
|
|
||||||
func TestDexpreoptBootZip(t *testing.T) {
|
|
||||||
ruleFile := "boot.zip"
|
|
||||||
|
|
||||||
ctx := android.PathContextForTesting(android.TestArchConfig("", nil, "", nil))
|
|
||||||
expectedInputs := []string{}
|
|
||||||
for _, target := range ctx.Config().Targets[android.Android] {
|
|
||||||
for _, ext := range []string{".art", ".oat", ".vdex"} {
|
|
||||||
for _, jar := range []string{"foo", "bar", "baz"} {
|
|
||||||
expectedInputs = append(expectedInputs,
|
|
||||||
filepath.Join("dex_bootjars", target.Os.String(), "system/framework", target.Arch.ArchType.String(), "boot-"+jar+ext))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
expectedOutputs := []string{
|
|
||||||
"dex_bootjars/boot.zip",
|
|
||||||
}
|
|
||||||
|
|
||||||
testDexpreoptBoot(t, ruleFile, expectedInputs, expectedOutputs)
|
|
||||||
}
|
|
@@ -53,7 +53,7 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig
|
|||||||
global := dexpreopt.GetGlobalConfig(ctx)
|
global := dexpreopt.GetGlobalConfig(ctx)
|
||||||
|
|
||||||
artModules := global.ArtApexJars
|
artModules := global.ArtApexJars
|
||||||
frameworkModules := global.BootJars.RemoveList(artModules)
|
frameworkModules := global.BootJars // This includes `artModules`.
|
||||||
mainlineBcpModules := global.ApexBootJars
|
mainlineBcpModules := global.ApexBootJars
|
||||||
frameworkSubdir := "system/framework"
|
frameworkSubdir := "system/framework"
|
||||||
|
|
||||||
@@ -62,8 +62,7 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig
|
|||||||
artCfg := bootImageConfig{
|
artCfg := bootImageConfig{
|
||||||
name: artBootImageName,
|
name: artBootImageName,
|
||||||
stem: bootImageStem,
|
stem: bootImageStem,
|
||||||
installDirOnHost: "apex/art_boot_images/javalib",
|
installDir: "apex/art_boot_images/javalib",
|
||||||
installDirOnDevice: frameworkSubdir,
|
|
||||||
profileInstallPathInApex: "etc/boot-image.prof",
|
profileInstallPathInApex: "etc/boot-image.prof",
|
||||||
modules: artModules,
|
modules: artModules,
|
||||||
preloadedClassesFile: "art/build/boot/preloaded-classes",
|
preloadedClassesFile: "art/build/boot/preloaded-classes",
|
||||||
@@ -74,23 +73,21 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig
|
|||||||
// Framework config for the boot image extension.
|
// Framework config for the boot image extension.
|
||||||
// It includes framework libraries and depends on the ART config.
|
// It includes framework libraries and depends on the ART config.
|
||||||
frameworkCfg := bootImageConfig{
|
frameworkCfg := bootImageConfig{
|
||||||
extends: &artCfg,
|
|
||||||
name: frameworkBootImageName,
|
name: frameworkBootImageName,
|
||||||
stem: bootImageStem,
|
stem: bootImageStem,
|
||||||
installDirOnHost: frameworkSubdir,
|
installDir: frameworkSubdir,
|
||||||
installDirOnDevice: frameworkSubdir,
|
|
||||||
modules: frameworkModules,
|
modules: frameworkModules,
|
||||||
preloadedClassesFile: "frameworks/base/config/preloaded-classes",
|
preloadedClassesFile: "frameworks/base/config/preloaded-classes",
|
||||||
compilerFilter: "speed-profile",
|
compilerFilter: "speed-profile",
|
||||||
singleImage: false,
|
singleImage: false,
|
||||||
|
profileImports: []*bootImageConfig{&artCfg},
|
||||||
}
|
}
|
||||||
|
|
||||||
mainlineCfg := bootImageConfig{
|
mainlineCfg := bootImageConfig{
|
||||||
extends: &frameworkCfg,
|
extends: &frameworkCfg,
|
||||||
name: mainlineBootImageName,
|
name: mainlineBootImageName,
|
||||||
stem: bootImageStem,
|
stem: bootImageStem,
|
||||||
installDirOnHost: frameworkSubdir,
|
installDir: frameworkSubdir,
|
||||||
installDirOnDevice: frameworkSubdir,
|
|
||||||
modules: mainlineBcpModules,
|
modules: mainlineBcpModules,
|
||||||
compilerFilter: "verify",
|
compilerFilter: "verify",
|
||||||
singleImage: true,
|
singleImage: true,
|
||||||
@@ -132,12 +129,12 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
|
|||||||
// Create target-specific variants.
|
// Create target-specific variants.
|
||||||
for _, target := range targets {
|
for _, target := range targets {
|
||||||
arch := target.Arch.ArchType
|
arch := target.Arch.ArchType
|
||||||
imageDir := c.dir.Join(ctx, target.Os.String(), c.installDirOnHost, arch.String())
|
imageDir := c.dir.Join(ctx, target.Os.String(), c.installDir, arch.String())
|
||||||
variant := &bootImageVariant{
|
variant := &bootImageVariant{
|
||||||
bootImageConfig: c,
|
bootImageConfig: c,
|
||||||
target: target,
|
target: target,
|
||||||
imagePathOnHost: imageDir.Join(ctx, imageName),
|
imagePathOnHost: imageDir.Join(ctx, imageName),
|
||||||
imagePathOnDevice: filepath.Join("/", c.installDirOnDevice, arch.String(), imageName),
|
imagePathOnDevice: filepath.Join("/", c.installDir, arch.String(), imageName),
|
||||||
imagesDeps: c.moduleFiles(ctx, imageDir, ".art", ".oat", ".vdex"),
|
imagesDeps: c.moduleFiles(ctx, imageDir, ".art", ".oat", ".vdex"),
|
||||||
dexLocations: c.modules.DevicePaths(ctx.Config(), target.Os),
|
dexLocations: c.modules.DevicePaths(ctx.Config(), target.Os),
|
||||||
}
|
}
|
||||||
|
@@ -147,8 +147,7 @@ type expectedConfig struct {
|
|||||||
stem string
|
stem string
|
||||||
dir string
|
dir string
|
||||||
symbolsDir string
|
symbolsDir string
|
||||||
installDirOnDevice string
|
installDir string
|
||||||
installDirOnHost string
|
|
||||||
profileInstallPathInApex string
|
profileInstallPathInApex string
|
||||||
modules android.ConfiguredJarList
|
modules android.ConfiguredJarList
|
||||||
dexPaths []string
|
dexPaths []string
|
||||||
@@ -209,8 +208,7 @@ func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated b
|
|||||||
stem: "boot",
|
stem: "boot",
|
||||||
dir: "out/soong/dexpreopt_arm64/dex_artjars",
|
dir: "out/soong/dexpreopt_arm64/dex_artjars",
|
||||||
symbolsDir: "out/soong/dexpreopt_arm64/dex_artjars_unstripped",
|
symbolsDir: "out/soong/dexpreopt_arm64/dex_artjars_unstripped",
|
||||||
installDirOnDevice: "system/framework",
|
installDir: "apex/art_boot_images/javalib",
|
||||||
installDirOnHost: "apex/art_boot_images/javalib",
|
|
||||||
profileInstallPathInApex: "etc/boot-image.prof",
|
profileInstallPathInApex: "etc/boot-image.prof",
|
||||||
modules: android.CreateTestConfiguredJarList([]string{"com.android.art:core1", "com.android.art:core2"}),
|
modules: android.CreateTestConfiguredJarList([]string{"com.android.art:core1", "com.android.art:core2"}),
|
||||||
dexPaths: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar"},
|
dexPaths: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar"},
|
||||||
@@ -222,7 +220,7 @@ func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated b
|
|||||||
dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
||||||
dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
||||||
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
||||||
imagePathOnDevice: "/system/framework/arm64/boot.art",
|
imagePathOnDevice: "/apex/art_boot_images/javalib/arm64/boot.art",
|
||||||
imagesDeps: []string{
|
imagesDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
|
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
|
||||||
@@ -276,7 +274,7 @@ func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated b
|
|||||||
dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
||||||
dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
||||||
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
||||||
imagePathOnDevice: "/system/framework/arm/boot.art",
|
imagePathOnDevice: "/apex/art_boot_images/javalib/arm/boot.art",
|
||||||
imagesDeps: []string{
|
imagesDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
|
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
|
||||||
@@ -330,7 +328,7 @@ func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated b
|
|||||||
dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
||||||
dexLocationsDeps: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
dexLocationsDeps: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
||||||
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
||||||
imagePathOnDevice: "/system/framework/x86_64/boot.art",
|
imagePathOnDevice: "/apex/art_boot_images/javalib/x86_64/boot.art",
|
||||||
imagesDeps: []string{
|
imagesDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
|
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
|
||||||
@@ -382,7 +380,7 @@ func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated b
|
|||||||
dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
||||||
dexLocationsDeps: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
dexLocationsDeps: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
||||||
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
||||||
imagePathOnDevice: "/system/framework/x86/boot.art",
|
imagePathOnDevice: "/apex/art_boot_images/javalib/x86/boot.art",
|
||||||
imagesDeps: []string{
|
imagesDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
|
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
|
||||||
@@ -462,39 +460,67 @@ func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mut
|
|||||||
stem: "boot",
|
stem: "boot",
|
||||||
dir: "out/soong/dexpreopt_arm64/dex_bootjars",
|
dir: "out/soong/dexpreopt_arm64/dex_bootjars",
|
||||||
symbolsDir: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped",
|
symbolsDir: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped",
|
||||||
installDirOnDevice: "system/framework",
|
installDir: "system/framework",
|
||||||
installDirOnHost: "system/framework",
|
|
||||||
profileInstallPathInApex: "",
|
profileInstallPathInApex: "",
|
||||||
modules: android.CreateTestConfiguredJarList([]string{"platform:framework"}),
|
modules: android.CreateTestConfiguredJarList([]string{
|
||||||
dexPaths: []string{"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar"},
|
"com.android.art:core1",
|
||||||
dexPathsDeps: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar", "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar"},
|
"com.android.art:core2",
|
||||||
|
"platform:framework",
|
||||||
|
}),
|
||||||
|
dexPaths: []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
|
||||||
|
},
|
||||||
|
dexPathsDeps: []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
|
||||||
|
},
|
||||||
zip: "out/soong/dexpreopt_arm64/dex_bootjars/boot.zip",
|
zip: "out/soong/dexpreopt_arm64/dex_bootjars/boot.zip",
|
||||||
variants: []*expectedVariant{
|
variants: []*expectedVariant{
|
||||||
{
|
{
|
||||||
archType: android.Arm64,
|
archType: android.Arm64,
|
||||||
dexLocations: []string{"/system/framework/framework.jar"},
|
dexLocations: []string{
|
||||||
|
"/apex/com.android.art/javalib/core1.jar",
|
||||||
|
"/apex/com.android.art/javalib/core2.jar",
|
||||||
|
"/system/framework/framework.jar",
|
||||||
|
},
|
||||||
dexLocationsDeps: []string{
|
dexLocationsDeps: []string{
|
||||||
"/apex/com.android.art/javalib/core1.jar",
|
"/apex/com.android.art/javalib/core1.jar",
|
||||||
"/apex/com.android.art/javalib/core2.jar",
|
"/apex/com.android.art/javalib/core2.jar",
|
||||||
"/system/framework/framework.jar",
|
"/system/framework/framework.jar",
|
||||||
},
|
},
|
||||||
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
|
||||||
imagePathOnDevice: "/system/framework/arm64/boot-framework.art",
|
imagePathOnDevice: "/system/framework/arm64/boot.art",
|
||||||
imagesDeps: []string{
|
imagesDeps: []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
|
||||||
},
|
},
|
||||||
baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art"},
|
|
||||||
baseImagesDeps: []string{
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
|
|
||||||
},
|
|
||||||
installs: []normalizedInstall{
|
installs: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
|
||||||
|
to: "/system/framework/arm64/boot.art",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
|
||||||
|
to: "/system/framework/arm64/boot.oat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
|
||||||
|
to: "/system/framework/arm64/boot-core2.art",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
|
||||||
|
to: "/system/framework/arm64/boot-core2.oat",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
||||||
to: "/system/framework/arm64/boot-framework.art",
|
to: "/system/framework/arm64/boot-framework.art",
|
||||||
@@ -505,12 +531,28 @@ func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mut
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
vdexInstalls: []normalizedInstall{
|
vdexInstalls: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
|
||||||
|
to: "/system/framework/arm64/boot.vdex",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
|
||||||
|
to: "/system/framework/arm64/boot-core2.vdex",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
|
||||||
to: "/system/framework/arm64/boot-framework.vdex",
|
to: "/system/framework/arm64/boot-framework.vdex",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
unstrippedInstalls: []normalizedInstall{
|
unstrippedInstalls: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat",
|
||||||
|
to: "/system/framework/arm64/boot.oat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-core2.oat",
|
||||||
|
to: "/system/framework/arm64/boot-core2.oat",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat",
|
||||||
to: "/system/framework/arm64/boot-framework.oat",
|
to: "/system/framework/arm64/boot-framework.oat",
|
||||||
@@ -520,29 +562,46 @@ func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mut
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
archType: android.Arm,
|
archType: android.Arm,
|
||||||
dexLocations: []string{"/system/framework/framework.jar"},
|
dexLocations: []string{
|
||||||
|
"/apex/com.android.art/javalib/core1.jar",
|
||||||
|
"/apex/com.android.art/javalib/core2.jar",
|
||||||
|
"/system/framework/framework.jar",
|
||||||
|
},
|
||||||
dexLocationsDeps: []string{
|
dexLocationsDeps: []string{
|
||||||
"/apex/com.android.art/javalib/core1.jar",
|
"/apex/com.android.art/javalib/core1.jar",
|
||||||
"/apex/com.android.art/javalib/core2.jar",
|
"/apex/com.android.art/javalib/core2.jar",
|
||||||
"/system/framework/framework.jar",
|
"/system/framework/framework.jar",
|
||||||
},
|
},
|
||||||
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
|
||||||
imagePathOnDevice: "/system/framework/arm/boot-framework.art",
|
imagePathOnDevice: "/system/framework/arm/boot.art",
|
||||||
imagesDeps: []string{
|
imagesDeps: []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
|
||||||
},
|
},
|
||||||
baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art"},
|
|
||||||
baseImagesDeps: []string{
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
|
|
||||||
},
|
|
||||||
installs: []normalizedInstall{
|
installs: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
|
||||||
|
to: "/system/framework/arm/boot.art",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
|
||||||
|
to: "/system/framework/arm/boot.oat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
|
||||||
|
to: "/system/framework/arm/boot-core2.art",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
|
||||||
|
to: "/system/framework/arm/boot-core2.oat",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
||||||
to: "/system/framework/arm/boot-framework.art",
|
to: "/system/framework/arm/boot-framework.art",
|
||||||
@@ -553,12 +612,28 @@ func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mut
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
vdexInstalls: []normalizedInstall{
|
vdexInstalls: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
|
||||||
|
to: "/system/framework/arm/boot.vdex",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
|
||||||
|
to: "/system/framework/arm/boot-core2.vdex",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
|
||||||
to: "/system/framework/arm/boot-framework.vdex",
|
to: "/system/framework/arm/boot-framework.vdex",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
unstrippedInstalls: []normalizedInstall{
|
unstrippedInstalls: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot.oat",
|
||||||
|
to: "/system/framework/arm/boot.oat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-core2.oat",
|
||||||
|
to: "/system/framework/arm/boot-core2.oat",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat",
|
||||||
to: "/system/framework/arm/boot-framework.oat",
|
to: "/system/framework/arm/boot-framework.oat",
|
||||||
@@ -568,29 +643,46 @@ func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mut
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
archType: android.X86_64,
|
archType: android.X86_64,
|
||||||
dexLocations: []string{"host/linux-x86/system/framework/framework.jar"},
|
dexLocations: []string{
|
||||||
|
"host/linux-x86/apex/com.android.art/javalib/core1.jar",
|
||||||
|
"host/linux-x86/apex/com.android.art/javalib/core2.jar",
|
||||||
|
"host/linux-x86/system/framework/framework.jar",
|
||||||
|
},
|
||||||
dexLocationsDeps: []string{
|
dexLocationsDeps: []string{
|
||||||
"host/linux-x86/apex/com.android.art/javalib/core1.jar",
|
"host/linux-x86/apex/com.android.art/javalib/core1.jar",
|
||||||
"host/linux-x86/apex/com.android.art/javalib/core2.jar",
|
"host/linux-x86/apex/com.android.art/javalib/core2.jar",
|
||||||
"host/linux-x86/system/framework/framework.jar",
|
"host/linux-x86/system/framework/framework.jar",
|
||||||
},
|
},
|
||||||
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
|
||||||
imagePathOnDevice: "/system/framework/x86_64/boot-framework.art",
|
imagePathOnDevice: "/system/framework/x86_64/boot.art",
|
||||||
imagesDeps: []string{
|
imagesDeps: []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
|
||||||
},
|
},
|
||||||
baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art"},
|
|
||||||
baseImagesDeps: []string{
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
|
|
||||||
},
|
|
||||||
installs: []normalizedInstall{
|
installs: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
|
||||||
|
to: "/system/framework/x86_64/boot.art",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
|
||||||
|
to: "/system/framework/x86_64/boot.oat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
|
||||||
|
to: "/system/framework/x86_64/boot-core2.art",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
|
||||||
|
to: "/system/framework/x86_64/boot-core2.oat",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
||||||
to: "/system/framework/x86_64/boot-framework.art",
|
to: "/system/framework/x86_64/boot-framework.art",
|
||||||
@@ -601,12 +693,28 @@ func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mut
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
vdexInstalls: []normalizedInstall{
|
vdexInstalls: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
|
||||||
|
to: "/system/framework/x86_64/boot.vdex",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
|
||||||
|
to: "/system/framework/x86_64/boot-core2.vdex",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
|
||||||
to: "/system/framework/x86_64/boot-framework.vdex",
|
to: "/system/framework/x86_64/boot-framework.vdex",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
unstrippedInstalls: []normalizedInstall{
|
unstrippedInstalls: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot.oat",
|
||||||
|
to: "/system/framework/x86_64/boot.oat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-core2.oat",
|
||||||
|
to: "/system/framework/x86_64/boot-core2.oat",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
||||||
to: "/system/framework/x86_64/boot-framework.oat",
|
to: "/system/framework/x86_64/boot-framework.oat",
|
||||||
@@ -616,29 +724,46 @@ func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mut
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
archType: android.X86,
|
archType: android.X86,
|
||||||
dexLocations: []string{"host/linux-x86/system/framework/framework.jar"},
|
dexLocations: []string{
|
||||||
|
"host/linux-x86/apex/com.android.art/javalib/core1.jar",
|
||||||
|
"host/linux-x86/apex/com.android.art/javalib/core2.jar",
|
||||||
|
"host/linux-x86/system/framework/framework.jar",
|
||||||
|
},
|
||||||
dexLocationsDeps: []string{
|
dexLocationsDeps: []string{
|
||||||
"host/linux-x86/apex/com.android.art/javalib/core1.jar",
|
"host/linux-x86/apex/com.android.art/javalib/core1.jar",
|
||||||
"host/linux-x86/apex/com.android.art/javalib/core2.jar",
|
"host/linux-x86/apex/com.android.art/javalib/core2.jar",
|
||||||
"host/linux-x86/system/framework/framework.jar",
|
"host/linux-x86/system/framework/framework.jar",
|
||||||
},
|
},
|
||||||
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
|
||||||
imagePathOnDevice: "/system/framework/x86/boot-framework.art",
|
imagePathOnDevice: "/system/framework/x86/boot.art",
|
||||||
imagesDeps: []string{
|
imagesDeps: []string{
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
|
||||||
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
|
||||||
},
|
},
|
||||||
baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art"},
|
|
||||||
baseImagesDeps: []string{
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
|
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
|
|
||||||
},
|
|
||||||
installs: []normalizedInstall{
|
installs: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
|
||||||
|
to: "/system/framework/x86/boot.art",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
|
||||||
|
to: "/system/framework/x86/boot.oat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
|
||||||
|
to: "/system/framework/x86/boot-core2.art",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
|
||||||
|
to: "/system/framework/x86/boot-core2.oat",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
||||||
to: "/system/framework/x86/boot-framework.art",
|
to: "/system/framework/x86/boot-framework.art",
|
||||||
@@ -649,12 +774,28 @@ func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mut
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
vdexInstalls: []normalizedInstall{
|
vdexInstalls: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
|
||||||
|
to: "/system/framework/x86/boot.vdex",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
|
||||||
|
to: "/system/framework/x86/boot-core2.vdex",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
|
||||||
to: "/system/framework/x86/boot-framework.vdex",
|
to: "/system/framework/x86/boot-framework.vdex",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
unstrippedInstalls: []normalizedInstall{
|
unstrippedInstalls: []normalizedInstall{
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot.oat",
|
||||||
|
to: "/system/framework/x86/boot.oat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-core2.oat",
|
||||||
|
to: "/system/framework/x86/boot-core2.oat",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat",
|
from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat",
|
||||||
to: "/system/framework/x86/boot-framework.oat",
|
to: "/system/framework/x86/boot-framework.oat",
|
||||||
@@ -693,8 +834,7 @@ func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
|
|||||||
stem: "boot",
|
stem: "boot",
|
||||||
dir: "out/soong/dexpreopt_arm64/dex_mainlinejars",
|
dir: "out/soong/dexpreopt_arm64/dex_mainlinejars",
|
||||||
symbolsDir: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped",
|
symbolsDir: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped",
|
||||||
installDirOnDevice: "system/framework",
|
installDir: "system/framework",
|
||||||
installDirOnHost: "system/framework",
|
|
||||||
profileInstallPathInApex: "",
|
profileInstallPathInApex: "",
|
||||||
modules: android.CreateTestConfiguredJarList([]string{
|
modules: android.CreateTestConfiguredJarList([]string{
|
||||||
"com.android.foo:framework-foo",
|
"com.android.foo:framework-foo",
|
||||||
@@ -705,8 +845,8 @@ func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
|
|||||||
"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
|
"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
|
||||||
},
|
},
|
||||||
dexPathsDeps: []string{
|
dexPathsDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar",
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar",
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
|
"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
|
||||||
"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
|
"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
|
||||||
"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
|
"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
|
||||||
@@ -734,16 +874,15 @@ func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
|
|||||||
"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
|
"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
|
||||||
},
|
},
|
||||||
baseImages: []string{
|
baseImages: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
|
||||||
},
|
},
|
||||||
baseImagesDeps: []string{
|
baseImagesDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
|
||||||
@@ -793,16 +932,15 @@ func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
|
|||||||
"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
|
"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
|
||||||
},
|
},
|
||||||
baseImages: []string{
|
baseImages: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
|
||||||
},
|
},
|
||||||
baseImagesDeps: []string{
|
baseImagesDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
|
||||||
@@ -852,16 +990,15 @@ func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
|
|||||||
"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
|
"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
|
||||||
},
|
},
|
||||||
baseImages: []string{
|
baseImages: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
|
||||||
},
|
},
|
||||||
baseImagesDeps: []string{
|
baseImagesDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
|
||||||
@@ -911,16 +1048,15 @@ func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
|
|||||||
"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
|
"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
|
||||||
},
|
},
|
||||||
baseImages: []string{
|
baseImages: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
|
||||||
},
|
},
|
||||||
baseImagesDeps: []string{
|
baseImagesDeps: []string{
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
|
||||||
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
|
"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
|
||||||
@@ -999,8 +1135,7 @@ func nestedCheckBootImageConfig(t *testing.T, imageConfig *bootImageConfig, expe
|
|||||||
android.AssertStringEquals(t, "stem", expected.stem, imageConfig.stem)
|
android.AssertStringEquals(t, "stem", expected.stem, imageConfig.stem)
|
||||||
android.AssertPathRelativeToTopEquals(t, "dir", expected.dir, imageConfig.dir)
|
android.AssertPathRelativeToTopEquals(t, "dir", expected.dir, imageConfig.dir)
|
||||||
android.AssertPathRelativeToTopEquals(t, "symbolsDir", expected.symbolsDir, imageConfig.symbolsDir)
|
android.AssertPathRelativeToTopEquals(t, "symbolsDir", expected.symbolsDir, imageConfig.symbolsDir)
|
||||||
android.AssertStringEquals(t, "installDirOnDevice", expected.installDirOnDevice, imageConfig.installDirOnDevice)
|
android.AssertStringEquals(t, "installDir", expected.installDir, imageConfig.installDir)
|
||||||
android.AssertStringEquals(t, "installDirOnHost", expected.installDirOnHost, imageConfig.installDirOnHost)
|
|
||||||
android.AssertStringEquals(t, "profileInstallPathInApex", expected.profileInstallPathInApex, imageConfig.profileInstallPathInApex)
|
android.AssertStringEquals(t, "profileInstallPathInApex", expected.profileInstallPathInApex, imageConfig.profileInstallPathInApex)
|
||||||
android.AssertDeepEquals(t, "modules", expected.modules, imageConfig.modules)
|
android.AssertDeepEquals(t, "modules", expected.modules, imageConfig.modules)
|
||||||
android.AssertPathsRelativeToTopEquals(t, "dexPaths", expected.dexPaths, imageConfig.dexPaths.Paths())
|
android.AssertPathsRelativeToTopEquals(t, "dexPaths", expected.dexPaths, imageConfig.dexPaths.Paths())
|
||||||
@@ -1056,18 +1191,18 @@ func checkDexpreoptMakeVars(t *testing.T, result *android.TestResult, expectedLi
|
|||||||
fmt.Fprintf(out, "%s=%s\n", v.Name(), android.StringRelativeToTop(result.Config, v.Value()))
|
fmt.Fprintf(out, "%s=%s\n", v.Name(), android.StringRelativeToTop(result.Config, v.Value()))
|
||||||
}
|
}
|
||||||
format := `
|
format := `
|
||||||
DEXPREOPT_BOOTCLASSPATH_DEX_FILES=out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar
|
DEXPREOPT_BOOTCLASSPATH_DEX_FILES=out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar
|
||||||
DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS=/apex/com.android.art/javalib/core1.jar /apex/com.android.art/javalib/core2.jar /system/framework/framework.jar
|
DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS=/apex/com.android.art/javalib/core1.jar /apex/com.android.art/javalib/core2.jar /system/framework/framework.jar
|
||||||
DEXPREOPT_BOOT_JARS_MODULES=platform:framework
|
DEXPREOPT_BOOT_JARS_MODULES=com.android.art:core1:com.android.art:core2:platform:framework
|
||||||
DEXPREOPT_GEN=out/host/linux-x86/bin/dexpreopt_gen
|
DEXPREOPT_GEN=out/host/linux-x86/bin/dexpreopt_gen
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art:/apex/art_boot_images/javalib/arm/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat:/apex/art_boot_images/javalib/arm/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art:/apex/art_boot_images/javalib/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat:/apex/art_boot_images/javalib/arm/boot-core2.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art:/apex/art_boot_images/javalib/arm/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat:/apex/art_boot_images/javalib/arm/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art:/apex/art_boot_images/javalib/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat:/apex/art_boot_images/javalib/arm/boot-core2.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art:/apex/art_boot_images/javalib/arm64/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat:/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art:/apex/art_boot_images/javalib/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat:/apex/art_boot_images/javalib/arm64/boot-core2.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art:/apex/art_boot_images/javalib/arm64/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat:/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art:/apex/art_boot_images/javalib/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat:/apex/art_boot_images/javalib/arm64/boot-core2.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art:/apex/art_boot_images/javalib/x86/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat:/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art:/apex/art_boot_images/javalib/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat:/apex/art_boot_images/javalib/x86/boot-core2.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art:/apex/art_boot_images/javalib/x86/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat:/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art:/apex/art_boot_images/javalib/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat:/apex/art_boot_images/javalib/x86/boot-core2.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art:/apex/art_boot_images/javalib/x86_64/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art:/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art:/apex/art_boot_images/javalib/x86_64/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art:/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art:/system/framework/arm/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art:/system/framework/arm/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat:/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art:/system/framework/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat:/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art:/system/framework/arm/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art:/system/framework/arm64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art:/system/framework/arm64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat:/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art:/system/framework/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat:/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art:/system/framework/arm64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art:/system/framework/x86/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art:/system/framework/x86/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat:/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art:/system/framework/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat:/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art:/system/framework/x86/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art:/system/framework/x86_64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art:/system/framework/x86_64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat:/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art:/system/framework/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat:/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art:/system/framework/x86_64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art:/system/framework/arm/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat:/system/framework/arm/boot-framework-foo.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art:/system/framework/arm/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat:/system/framework/arm/boot-framework-foo.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art:/system/framework/arm64/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat:/system/framework/arm64/boot-framework-foo.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art:/system/framework/arm64/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat:/system/framework/arm64/boot-framework-foo.oat
|
||||||
DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art:/system/framework/x86/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat:/system/framework/x86/boot-framework-foo.oat
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art:/system/framework/x86/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat:/system/framework/x86/boot-framework-foo.oat
|
||||||
@@ -1076,10 +1211,10 @@ DEXPREOPT_IMAGE_DEPS_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/
|
|||||||
DEXPREOPT_IMAGE_DEPS_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex
|
DEXPREOPT_IMAGE_DEPS_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex
|
DEXPREOPT_IMAGE_DEPS_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
|
DEXPREOPT_IMAGE_DEPS_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex
|
DEXPREOPT_IMAGE_DEPS_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex
|
DEXPREOPT_IMAGE_DEPS_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex
|
DEXPREOPT_IMAGE_DEPS_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex
|
DEXPREOPT_IMAGE_DEPS_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex
|
DEXPREOPT_IMAGE_DEPS_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex
|
DEXPREOPT_IMAGE_DEPS_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex
|
||||||
DEXPREOPT_IMAGE_DEPS_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex
|
DEXPREOPT_IMAGE_DEPS_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex
|
||||||
@@ -1096,12 +1231,12 @@ DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm=out/soong/.intermediates/framework
|
|||||||
DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
||||||
DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
||||||
DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86_64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86_64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
||||||
DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEart=/system/framework/boot.art
|
DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEart=/apex/art_boot_images/javalib/boot.art
|
||||||
DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEboot=/system/framework/boot.art:/system/framework/boot-framework.art
|
DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEboot=/system/framework/boot.art
|
||||||
DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEmainline=/system/framework/boot.art:/system/framework/boot-framework.art:/system/framework/boot-framework-foo.art
|
DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEmainline=/system/framework/boot.art:/system/framework/boot-framework-foo.art
|
||||||
DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTart=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art
|
DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTart=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art
|
||||||
DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTboot=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art:out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot-framework.art
|
DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTboot=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot.art
|
||||||
DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTmainline=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art:out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot-framework.art:out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/boot-framework-foo.art
|
DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTmainline=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot.art:out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/boot-framework-foo.art
|
||||||
DEXPREOPT_IMAGE_NAMES=art boot mainline
|
DEXPREOPT_IMAGE_NAMES=art boot mainline
|
||||||
DEXPREOPT_IMAGE_PROFILE_BUILT_INSTALLED=out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof:/system/etc/boot-image.bprof out/soong/dexpreopt_arm64/dex_bootjars/boot.prof:/system/etc/boot-image.prof
|
DEXPREOPT_IMAGE_PROFILE_BUILT_INSTALLED=out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof:/system/etc/boot-image.bprof out/soong/dexpreopt_arm64/dex_bootjars/boot.prof:/system/etc/boot-image.prof
|
||||||
DEXPREOPT_IMAGE_PROFILE_LICENSE_METADATA=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
DEXPREOPT_IMAGE_PROFILE_LICENSE_METADATA=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
||||||
@@ -1109,10 +1244,10 @@ DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_arm=out/soong/dexpreopt_arm64/dex
|
|||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat:/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-core2.oat:/apex/art_boot_images/javalib/arm64/boot-core2.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat:/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-core2.oat:/apex/art_boot_images/javalib/arm64/boot-core2.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat:/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat:/apex/art_boot_images/javalib/x86/boot-core2.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat:/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat:/apex/art_boot_images/javalib/x86/boot-core2.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot.oat:/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-core2.oat:/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat:/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-core2.oat:/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot.oat:/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-core2.oat:/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot.oat:/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-core2.oat:/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm/boot-framework-foo.oat:/system/framework/arm/boot-framework-foo.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm/boot-framework-foo.oat:/system/framework/arm/boot-framework-foo.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm64/boot-framework-foo.oat:/system/framework/arm64/boot-framework-foo.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm64/boot-framework-foo.oat:/system/framework/arm64/boot-framework-foo.oat
|
||||||
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86/boot-framework-foo.oat:/system/framework/x86/boot-framework-foo.oat
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86/boot-framework-foo.oat:/system/framework/x86/boot-framework-foo.oat
|
||||||
@@ -1121,10 +1256,10 @@ DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_arm=out/soong/dexpreopt_arm64/dex_artja
|
|||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex:/apex/art_boot_images/javalib/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex:/apex/art_boot_images/javalib/arm64/boot-core2.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex:/apex/art_boot_images/javalib/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex:/apex/art_boot_images/javalib/arm64/boot-core2.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex:/apex/art_boot_images/javalib/x86/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex:/apex/art_boot_images/javalib/x86/boot-core2.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex:/apex/art_boot_images/javalib/x86/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex:/apex/art_boot_images/javalib/x86/boot-core2.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex:/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex:/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex:/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex:/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex:/system/framework/arm/boot-framework.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex:/system/framework/arm/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex:/system/framework/arm/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex:/system/framework/arm/boot-framework.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex:/system/framework/arm64/boot-framework.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex:/system/framework/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex:/system/framework/arm64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex:/system/framework/arm64/boot-framework.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex:/system/framework/x86/boot-framework.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex:/system/framework/x86/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex:/system/framework/x86/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex:/system/framework/x86/boot-framework.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex:/system/framework/x86_64/boot-framework.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex:/system/framework/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex:/system/framework/x86_64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex:/system/framework/x86_64/boot-framework.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex:/system/framework/arm/boot-framework-foo.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex:/system/framework/arm/boot-framework-foo.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex:/system/framework/arm64/boot-framework-foo.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex:/system/framework/arm64/boot-framework-foo.vdex
|
||||||
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex:/system/framework/x86/boot-framework-foo.vdex
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex:/system/framework/x86/boot-framework-foo.vdex
|
||||||
@@ -1136,10 +1271,10 @@ DEXPREOPT_IMAGE_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_b
|
|||||||
DEXPREOPT_IMAGE_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
|
DEXPREOPT_IMAGE_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
|
||||||
DEXPREOPT_IMAGE_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art
|
DEXPREOPT_IMAGE_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art
|
||||||
DEXPREOPT_IMAGE_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art
|
DEXPREOPT_IMAGE_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art
|
||||||
DEXPREOPT_IMAGE_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art
|
DEXPREOPT_IMAGE_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art
|
||||||
DEXPREOPT_IMAGE_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art
|
DEXPREOPT_IMAGE_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art
|
||||||
DEXPREOPT_IMAGE_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art
|
DEXPREOPT_IMAGE_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art
|
||||||
DEXPREOPT_IMAGE_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art
|
DEXPREOPT_IMAGE_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art
|
||||||
DEXPREOPT_IMAGE_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art
|
DEXPREOPT_IMAGE_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art
|
||||||
DEXPREOPT_IMAGE_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art
|
DEXPREOPT_IMAGE_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art
|
||||||
DEXPREOPT_IMAGE_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art
|
DEXPREOPT_IMAGE_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art
|
||||||
|
@@ -212,7 +212,7 @@ func TestDexpreoptEnabled(t *testing.T) {
|
|||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
preparers := android.GroupFixturePreparers(
|
preparers := android.GroupFixturePreparers(
|
||||||
PrepareForTestWithJavaDefaultModules,
|
PrepareForTestWithDexpreopt,
|
||||||
PrepareForTestWithFakeApexMutator,
|
PrepareForTestWithFakeApexMutator,
|
||||||
dexpreopt.FixtureSetApexSystemServerJars("com.android.apex1:service-foo"),
|
dexpreopt.FixtureSetApexSystemServerJars("com.android.apex1:service-foo"),
|
||||||
)
|
)
|
||||||
@@ -257,7 +257,7 @@ func TestDex2oatToolDeps(t *testing.T) {
|
|||||||
|
|
||||||
preparers := android.GroupFixturePreparers(
|
preparers := android.GroupFixturePreparers(
|
||||||
cc.PrepareForTestWithCcDefaultModules,
|
cc.PrepareForTestWithCcDefaultModules,
|
||||||
PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd,
|
PrepareForTestWithDexpreoptWithoutFakeDex2oatd,
|
||||||
dexpreopt.PrepareForTestByEnablingDexpreopt)
|
dexpreopt.PrepareForTestByEnablingDexpreopt)
|
||||||
|
|
||||||
testDex2oatToolDep := func(sourceEnabled, prebuiltEnabled, prebuiltPreferred bool,
|
testDex2oatToolDep := func(sourceEnabled, prebuiltEnabled, prebuiltPreferred bool,
|
||||||
@@ -299,7 +299,7 @@ func TestDex2oatToolDeps(t *testing.T) {
|
|||||||
|
|
||||||
func TestDexpreoptBuiltInstalledForApex(t *testing.T) {
|
func TestDexpreoptBuiltInstalledForApex(t *testing.T) {
|
||||||
preparers := android.GroupFixturePreparers(
|
preparers := android.GroupFixturePreparers(
|
||||||
PrepareForTestWithJavaDefaultModules,
|
PrepareForTestWithDexpreopt,
|
||||||
PrepareForTestWithFakeApexMutator,
|
PrepareForTestWithFakeApexMutator,
|
||||||
dexpreopt.FixtureSetApexSystemServerJars("com.android.apex1:service-foo"),
|
dexpreopt.FixtureSetApexSystemServerJars("com.android.apex1:service-foo"),
|
||||||
)
|
)
|
||||||
@@ -386,7 +386,7 @@ func verifyEntries(t *testing.T, message string, expectedModule string,
|
|||||||
|
|
||||||
func TestAndroidMkEntriesForApex(t *testing.T) {
|
func TestAndroidMkEntriesForApex(t *testing.T) {
|
||||||
preparers := android.GroupFixturePreparers(
|
preparers := android.GroupFixturePreparers(
|
||||||
PrepareForTestWithJavaDefaultModules,
|
PrepareForTestWithDexpreopt,
|
||||||
PrepareForTestWithFakeApexMutator,
|
PrepareForTestWithFakeApexMutator,
|
||||||
dexpreopt.FixtureSetApexSystemServerJars("com.android.apex1:service-foo"),
|
dexpreopt.FixtureSetApexSystemServerJars("com.android.apex1:service-foo"),
|
||||||
)
|
)
|
||||||
|
@@ -39,7 +39,9 @@ var prepareForTestWithDefaultPlatformBootclasspath = android.FixtureAddTextFile(
|
|||||||
`)
|
`)
|
||||||
|
|
||||||
var hiddenApiFixtureFactory = android.GroupFixturePreparers(
|
var hiddenApiFixtureFactory = android.GroupFixturePreparers(
|
||||||
prepareForJavaTest, PrepareForTestWithHiddenApiBuildComponents)
|
PrepareForTestWithJavaDefaultModules,
|
||||||
|
PrepareForTestWithHiddenApiBuildComponents,
|
||||||
|
)
|
||||||
|
|
||||||
func TestHiddenAPISingleton(t *testing.T) {
|
func TestHiddenAPISingleton(t *testing.T) {
|
||||||
result := android.GroupFixturePreparers(
|
result := android.GroupFixturePreparers(
|
||||||
|
@@ -46,12 +46,11 @@ var prepareForJavaTest = android.GroupFixturePreparers(
|
|||||||
// Get the CC build components but not default modules.
|
// Get the CC build components but not default modules.
|
||||||
cc.PrepareForTestWithCcBuildComponents,
|
cc.PrepareForTestWithCcBuildComponents,
|
||||||
// Include all the default java modules.
|
// Include all the default java modules.
|
||||||
PrepareForTestWithJavaDefaultModules,
|
PrepareForTestWithDexpreopt,
|
||||||
PrepareForTestWithOverlayBuildComponents,
|
PrepareForTestWithOverlayBuildComponents,
|
||||||
android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) {
|
android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) {
|
||||||
ctx.RegisterPreSingletonType("sdk_versions", sdkPreSingletonFactory)
|
ctx.RegisterPreSingletonType("sdk_versions", sdkPreSingletonFactory)
|
||||||
}),
|
}),
|
||||||
PrepareForTestWithDexpreopt,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
@@ -129,8 +129,7 @@ func (b *platformBootclasspathModule) BootclasspathDepsMutator(ctx android.Botto
|
|||||||
|
|
||||||
// Add dependencies on all the non-updatable module configured in the "boot" boot image. That does
|
// Add dependencies on all the non-updatable module configured in the "boot" boot image. That does
|
||||||
// not include modules configured in the "art" boot image.
|
// not include modules configured in the "art" boot image.
|
||||||
bootImageConfig := defaultBootImageConfig(ctx)
|
addDependenciesOntoBootImageModules(ctx, b.platformJars(ctx), platformBootclasspathBootJarDepTag)
|
||||||
addDependenciesOntoBootImageModules(ctx, bootImageConfig.modules, platformBootclasspathBootJarDepTag)
|
|
||||||
|
|
||||||
// Add dependencies on all the apex jars.
|
// Add dependencies on all the apex jars.
|
||||||
apexJars := dexpreopt.GetGlobalConfig(ctx).ApexBootJars
|
apexJars := dexpreopt.GetGlobalConfig(ctx).ApexBootJars
|
||||||
@@ -187,7 +186,8 @@ func (b *platformBootclasspathModule) GenerateAndroidBuildActions(ctx android.Mo
|
|||||||
bootDexJarByModule := b.generateHiddenAPIBuildActions(ctx, b.configuredModules, b.fragments)
|
bootDexJarByModule := b.generateHiddenAPIBuildActions(ctx, b.configuredModules, b.fragments)
|
||||||
buildRuleForBootJarsPackageCheck(ctx, bootDexJarByModule)
|
buildRuleForBootJarsPackageCheck(ctx, bootDexJarByModule)
|
||||||
|
|
||||||
b.generateBootImageBuildActions(ctx, platformModules, apexModules)
|
b.generateBootImageBuildActions(ctx)
|
||||||
|
b.copyApexBootJarsForAppsDexpreopt(ctx, apexModules)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate classpaths.proto config
|
// Generate classpaths.proto config
|
||||||
@@ -200,7 +200,7 @@ func (b *platformBootclasspathModule) generateClasspathProtoBuildActions(ctx and
|
|||||||
|
|
||||||
func (b *platformBootclasspathModule) configuredJars(ctx android.ModuleContext) android.ConfiguredJarList {
|
func (b *platformBootclasspathModule) configuredJars(ctx android.ModuleContext) android.ConfiguredJarList {
|
||||||
// Include all non APEX jars
|
// Include all non APEX jars
|
||||||
jars := defaultBootImageConfig(ctx).modules
|
jars := b.platformJars(ctx)
|
||||||
|
|
||||||
// Include jars from APEXes that don't populate their classpath proto config.
|
// Include jars from APEXes that don't populate their classpath proto config.
|
||||||
remainingJars := dexpreopt.GetGlobalConfig(ctx).ApexBootJars
|
remainingJars := dexpreopt.GetGlobalConfig(ctx).ApexBootJars
|
||||||
@@ -217,6 +217,10 @@ func (b *platformBootclasspathModule) configuredJars(ctx android.ModuleContext)
|
|||||||
return jars
|
return jars
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *platformBootclasspathModule) platformJars(ctx android.PathContext) android.ConfiguredJarList {
|
||||||
|
return defaultBootImageConfig(ctx).modules.RemoveList(artBootImageConfig(ctx).modules)
|
||||||
|
}
|
||||||
|
|
||||||
// checkPlatformModules ensures that the non-updatable modules supplied are not part of an
|
// checkPlatformModules ensures that the non-updatable modules supplied are not part of an
|
||||||
// apex module.
|
// apex module.
|
||||||
func (b *platformBootclasspathModule) checkPlatformModules(ctx android.ModuleContext, modules []android.Module) {
|
func (b *platformBootclasspathModule) checkPlatformModules(ctx android.ModuleContext, modules []android.Module) {
|
||||||
@@ -226,7 +230,7 @@ func (b *platformBootclasspathModule) checkPlatformModules(ctx android.ModuleCon
|
|||||||
fromUpdatableApex := apexInfo.Updatable
|
fromUpdatableApex := apexInfo.Updatable
|
||||||
if fromUpdatableApex {
|
if fromUpdatableApex {
|
||||||
// error: this jar is part of an updatable apex
|
// error: this jar is part of an updatable apex
|
||||||
ctx.ModuleErrorf("module %q from updatable apexes %q is not allowed in the framework boot image", ctx.OtherModuleName(m), apexInfo.InApexVariants)
|
ctx.ModuleErrorf("module %q from updatable apexes %q is not allowed in the platform bootclasspath", ctx.OtherModuleName(m), apexInfo.InApexVariants)
|
||||||
} else {
|
} else {
|
||||||
// ok: this jar is part of the platform or a non-updatable apex
|
// ok: this jar is part of the platform or a non-updatable apex
|
||||||
}
|
}
|
||||||
@@ -396,7 +400,7 @@ func (b *platformBootclasspathModule) generateHiddenApiMakeVars(ctx android.Make
|
|||||||
}
|
}
|
||||||
|
|
||||||
// generateBootImageBuildActions generates ninja rules related to the boot image creation.
|
// generateBootImageBuildActions generates ninja rules related to the boot image creation.
|
||||||
func (b *platformBootclasspathModule) generateBootImageBuildActions(ctx android.ModuleContext, platformModules, apexModules []android.Module) {
|
func (b *platformBootclasspathModule) generateBootImageBuildActions(ctx android.ModuleContext) {
|
||||||
// Force the GlobalSoongConfig to be created and cached for use by the dex_bootjars
|
// Force the GlobalSoongConfig to be created and cached for use by the dex_bootjars
|
||||||
// GenerateSingletonBuildActions method as it cannot create it for itself.
|
// GenerateSingletonBuildActions method as it cannot create it for itself.
|
||||||
dexpreopt.GetGlobalSoongConfig(ctx)
|
dexpreopt.GetGlobalSoongConfig(ctx)
|
||||||
@@ -408,15 +412,16 @@ func (b *platformBootclasspathModule) generateBootImageBuildActions(ctx android.
|
|||||||
|
|
||||||
frameworkBootImageConfig := defaultBootImageConfig(ctx)
|
frameworkBootImageConfig := defaultBootImageConfig(ctx)
|
||||||
bootFrameworkProfileRule(ctx, frameworkBootImageConfig)
|
bootFrameworkProfileRule(ctx, frameworkBootImageConfig)
|
||||||
b.generateBootImage(ctx, frameworkBootImageName, platformModules)
|
b.generateBootImage(ctx, frameworkBootImageName)
|
||||||
b.generateBootImage(ctx, mainlineBootImageName, apexModules)
|
b.generateBootImage(ctx, mainlineBootImageName)
|
||||||
b.copyApexBootJarsForAppsDexpreopt(ctx, apexModules)
|
|
||||||
dumpOatRules(ctx, frameworkBootImageConfig)
|
dumpOatRules(ctx, frameworkBootImageConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *platformBootclasspathModule) generateBootImage(ctx android.ModuleContext, imageName string, modules []android.Module) {
|
func (b *platformBootclasspathModule) generateBootImage(ctx android.ModuleContext, imageName string) {
|
||||||
imageConfig := genBootImageConfigs(ctx)[imageName]
|
imageConfig := genBootImageConfigs(ctx)[imageName]
|
||||||
|
|
||||||
|
modules := b.getModulesForImage(ctx, imageConfig)
|
||||||
|
|
||||||
// Copy module dex jars to their predefined locations.
|
// Copy module dex jars to their predefined locations.
|
||||||
bootDexJarsByModule := extractEncodedDexJarsFromModules(ctx, modules)
|
bootDexJarsByModule := extractEncodedDexJarsFromModules(ctx, modules)
|
||||||
copyBootJarsToPredefinedLocations(ctx, bootDexJarsByModule, imageConfig.dexPathsByModule)
|
copyBootJarsToPredefinedLocations(ctx, bootDexJarsByModule, imageConfig.dexPathsByModule)
|
||||||
@@ -446,3 +451,26 @@ func (b *platformBootclasspathModule) copyApexBootJarsForAppsDexpreopt(ctx andro
|
|||||||
apexBootDexJarsByModule := extractEncodedDexJarsFromModules(ctx, apexModules)
|
apexBootDexJarsByModule := extractEncodedDexJarsFromModules(ctx, apexModules)
|
||||||
copyBootJarsToPredefinedLocations(ctx, apexBootDexJarsByModule, config.dexPathsByModule)
|
copyBootJarsToPredefinedLocations(ctx, apexBootDexJarsByModule, config.dexPathsByModule)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *platformBootclasspathModule) getModulesForImage(ctx android.ModuleContext, imageConfig *bootImageConfig) []android.Module {
|
||||||
|
modules := make([]android.Module, 0, imageConfig.modules.Len())
|
||||||
|
for i := 0; i < imageConfig.modules.Len(); i++ {
|
||||||
|
found := false
|
||||||
|
for _, module := range b.configuredModules {
|
||||||
|
name := android.RemoveOptionalPrebuiltPrefix(module.Name())
|
||||||
|
if name == imageConfig.modules.Jar(i) {
|
||||||
|
modules = append(modules, module)
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !found && !ctx.Config().AllowMissingDependencies() {
|
||||||
|
ctx.ModuleErrorf(
|
||||||
|
"Boot image '%s' module '%s' not added as a dependency of platform_bootclasspath",
|
||||||
|
imageConfig.name,
|
||||||
|
imageConfig.modules.Jar(i))
|
||||||
|
return []android.Module{}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return modules
|
||||||
|
}
|
||||||
|
@@ -18,14 +18,12 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
"android/soong/dexpreopt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Contains some simple tests for platform_bootclasspath.
|
// Contains some simple tests for platform_bootclasspath.
|
||||||
|
|
||||||
var prepareForTestWithPlatformBootclasspath = android.GroupFixturePreparers(
|
var prepareForTestWithPlatformBootclasspath = android.GroupFixturePreparers(
|
||||||
PrepareForTestWithJavaDefaultModules,
|
PrepareForTestWithJavaDefaultModules,
|
||||||
dexpreopt.PrepareForTestByEnablingDexpreopt,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPlatformBootclasspath(t *testing.T) {
|
func TestPlatformBootclasspath(t *testing.T) {
|
||||||
|
@@ -80,9 +80,7 @@ var prepareForTestWithFrameworkDeps = android.GroupFixturePreparers(
|
|||||||
}.AddToFixture(),
|
}.AddToFixture(),
|
||||||
)
|
)
|
||||||
|
|
||||||
// Test fixture preparer that will define all default java modules except the
|
var prepareForTestWithJavaDefaultModulesBase = android.GroupFixturePreparers(
|
||||||
// fake_tool_binary for dex2oatd.
|
|
||||||
var PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd = android.GroupFixturePreparers(
|
|
||||||
// Make sure that all the module types used in the defaults are registered.
|
// Make sure that all the module types used in the defaults are registered.
|
||||||
PrepareForTestWithJavaBuildComponents,
|
PrepareForTestWithJavaBuildComponents,
|
||||||
prepareForTestWithFrameworkDeps,
|
prepareForTestWithFrameworkDeps,
|
||||||
@@ -92,13 +90,21 @@ var PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd = android.GroupFixtu
|
|||||||
|
|
||||||
// Test fixture preparer that will define default java modules, e.g. standard prebuilt modules.
|
// Test fixture preparer that will define default java modules, e.g. standard prebuilt modules.
|
||||||
var PrepareForTestWithJavaDefaultModules = android.GroupFixturePreparers(
|
var PrepareForTestWithJavaDefaultModules = android.GroupFixturePreparers(
|
||||||
PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd,
|
prepareForTestWithJavaDefaultModulesBase,
|
||||||
dexpreopt.PrepareForTestWithFakeDex2oatd,
|
dexpreopt.FixtureDisableDexpreoptBootImages(true),
|
||||||
|
dexpreopt.FixtureDisableDexpreopt(true),
|
||||||
)
|
)
|
||||||
|
|
||||||
// Provides everything needed by dexpreopt.
|
// Provides everything needed by dexpreopt.
|
||||||
var PrepareForTestWithDexpreopt = android.GroupFixturePreparers(
|
var PrepareForTestWithDexpreopt = android.GroupFixturePreparers(
|
||||||
PrepareForTestWithJavaDefaultModules,
|
prepareForTestWithJavaDefaultModulesBase,
|
||||||
|
dexpreopt.PrepareForTestWithFakeDex2oatd,
|
||||||
|
dexpreopt.PrepareForTestByEnablingDexpreopt,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Provides everything needed by dexpreopt except the fake_tool_binary for dex2oatd.
|
||||||
|
var PrepareForTestWithDexpreoptWithoutFakeDex2oatd = android.GroupFixturePreparers(
|
||||||
|
prepareForTestWithJavaDefaultModulesBase,
|
||||||
dexpreopt.PrepareForTestByEnablingDexpreopt,
|
dexpreopt.PrepareForTestByEnablingDexpreopt,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -604,9 +610,9 @@ func FixtureModifyBootImageConfig(name string, configModifier func(*bootImageCon
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets the value of `installDirOnDevice` of the boot image config with the given name.
|
// Sets the value of `installDir` of the boot image config with the given name.
|
||||||
func FixtureSetBootImageInstallDirOnDevice(name string, installDir string) android.FixturePreparer {
|
func FixtureSetBootImageInstallDirOnDevice(name string, installDir string) android.FixturePreparer {
|
||||||
return FixtureModifyBootImageConfig(name, func(config *bootImageConfig) {
|
return FixtureModifyBootImageConfig(name, func(config *bootImageConfig) {
|
||||||
config.installDirOnDevice = installDir
|
config.installDir = installDir
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@@ -74,7 +74,7 @@ func fixtureAddPrebuiltApexForBootclasspathFragment(apex, fragment string) andro
|
|||||||
func TestSnapshotWithBootclasspathFragment_ImageName(t *testing.T) {
|
func TestSnapshotWithBootclasspathFragment_ImageName(t *testing.T) {
|
||||||
result := android.GroupFixturePreparers(
|
result := android.GroupFixturePreparers(
|
||||||
prepareForSdkTestWithJava,
|
prepareForSdkTestWithJava,
|
||||||
java.PrepareForTestWithJavaDefaultModules,
|
java.PrepareForTestWithDexpreopt,
|
||||||
prepareForSdkTestWithApex,
|
prepareForSdkTestWithApex,
|
||||||
|
|
||||||
// Some additional files needed for the art apex.
|
// Some additional files needed for the art apex.
|
||||||
|
Reference in New Issue
Block a user