Support dexpreopt against the primary boot image.
Framework and other dex files are used without image.
Test: taimen-userdebug boots when built with
DEXPREOPT_USE_ART_IMAGE=true
Test: Check logcat for checksum verification failures.
(Build ART with extra logging in OatFileAssistant.)
Test: Check that bootclasspath-checksums from some prebuilt
oat files (say input.odex) contain only one image
checksum followed by dex file checksums with
grep -az -A1 -E '^bootclasspath-checksums$' <oat-file> | \
xargs -0 echo | gawk '{print $2}'
Bug: 119800099
Change-Id: I65c2f247656e41f2c37df1ecb9e06af7dabab76e
diff --git a/java/dexpreopt.go b/java/dexpreopt.go
index da68660..5faec08 100644
--- a/java/dexpreopt.go
+++ b/java/dexpreopt.go
@@ -106,8 +106,18 @@
global := dexpreoptGlobalConfig(ctx)
bootImage := defaultBootImageConfig(ctx)
+ dexFiles := bootImage.dexPathsDeps.Paths()
+ dexLocations := bootImage.dexLocationsDeps
+ if global.UseArtImage {
+ bootImage = artBootImageConfig(ctx)
+ }
if global.UseApexImage {
bootImage = frameworkJZBootImageConfig(ctx)
+ dexFiles = bootImage.dexPathsDeps.Paths()
+ dexLocations = bootImage.dexLocationsDeps
+ if global.UseArtImage {
+ bootImage = artJZBootImageConfig(ctx)
+ }
}
var archs []android.ArchType
@@ -178,8 +188,8 @@
DexPreoptImagesDeps: imagesDeps,
DexPreoptImageLocations: bootImage.imageLocations,
- PreoptBootClassPathDexFiles: bootImage.dexPathsDeps.Paths(),
- PreoptBootClassPathDexLocations: bootImage.dexLocationsDeps,
+ PreoptBootClassPathDexFiles: dexFiles,
+ PreoptBootClassPathDexLocations: dexLocations,
PreoptExtractedApk: false,