From 7eebb4f4e8ef40ddd5bbcd87daacff715cceefc7 Mon Sep 17 00:00:00 2001 From: Ulya Trafimovich Date: Wed, 22 Jan 2020 13:41:06 +0000 Subject: [PATCH] For JIT-zygote config, add "apex" boot image files to the ART apex. JIT-zygote boot image was split into primary and framework extension in CL I5493e575ebf90bad1d5ad2850004d54590bbc079, but that CL forgot to add JIT-zygote boot image files to the ART apex. Add them now. Test: Steps 1-3: 1. Temporarily enable Jit zygote in the product device config (in this case device/google/muskie/aosp_walleye.mk): +# System server should not contain compiled code. +PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := verify + +# Use the apex image for preopting. +DEXPREOPT_USE_APEX_IMAGE := true + +# Have the runtime pick up the apex image. +PRODUCT_PROPERTY_OVERRIDES += \ + dalvik.vm.boot-image=/apex/com.android.art/javalib/apex.art:/system/framework/apex-framework.art 2. Build and flash: $ lunch aosp_walleye-userdebug && m \ && adb reboot bootloader && fastboot flashall -w 3. Ensure that apex.art and apex-framework.art are mapped in the JIT-zygote address space: $ adb shell cat /proc/`adb shell ps | grep zygote64 | awk {'print $2'}`/maps | grep apex.art 6ffde000-70102000 rw-p 00000000 00:00 0 [anon:dalvik-/apex/com.android.art/javalib/apex.art] 701e5000-70262000 rw-p 00000000 00:00 0 [anon:dalvik-/apex/com.android.art/javalib/apex.art] 72715cf000-72715d4000 r--p 000ba000 07:98 93 /apex/com.android.art/javalib/arm64/apex.art $ adb shell cat /proc/`adb shell ps | grep zygote64 | awk {'print $2'}`/maps | grep apex-framework.art 7084b000-70cc2000 rw-p 00000000 00:00 0 [anon:dalvik-/system/framework/apex-framework.art] 70fd8000-71109000 rw-p 00000000 00:00 0 [anon:dalvik-/system/framework/apex-framework.art] 7271517000-7271526000 r--p 00295000 fc:00 1268 /system/framework/arm64/apex-framework.art Change-Id: I985e15de9f38f345ba3e99451c6d9b8e2cb5d698 --- java/dexpreopt_bootjars.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/java/dexpreopt_bootjars.go b/java/dexpreopt_bootjars.go index 66840b503..c6aa7fe0d 100644 --- a/java/dexpreopt_bootjars.go +++ b/java/dexpreopt_bootjars.go @@ -190,7 +190,18 @@ func DexpreoptedArtApexJars(ctx android.BuilderContext) map[android.ArchType]and if skipDexpreoptBootJars(ctx) { return nil } - return artBootImageConfig(ctx).imagesDeps + + // Include dexpreopt files for the primary boot image. + files := artBootImageConfig(ctx).imagesDeps + + // For JIT-zygote config, also include dexpreopt files for the primary JIT-zygote image. + if dexpreoptGlobalConfig(ctx).UseApexImage { + for arch, paths := range artJZBootImageConfig(ctx).imagesDeps { + files[arch] = append(files[arch], paths...) + } + } + + return files } // dexpreoptBoot singleton rules