1# 2# Copyright (C) 2020 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17# This file contains product config for the ART module that is common for 18# platform and unbundled builds. 19 20ifeq ($(ART_APEX_JARS),) 21 $(error ART_APEX_JARS is empty; cannot initialize PRODUCT_BOOT_JARS variable) 22endif 23 24# Order of the jars on BOOTCLASSPATH follows: 25# 1. ART APEX jars 26# 2. System jars 27# 3. System_ext jars 28# 4. Non-updatable APEX jars 29# 5. Updatable APEX jars 30# 31# ART APEX jars (1) are defined in ART_APEX_JARS. System and system_ext boot jars are defined below 32# in PRODUCT_BOOT_JARS. All other non-art APEX boot jars are part of the PRODUCT_APEX_BOOT_JARS. 33# 34# The actual runtime ordering matching above is determined by derive_classpath service at runtime. 35# See packages/modules/SdkExtensions/README.md for more details. 36 37# The order of PRODUCT_BOOT_JARS matters for runtime class lookup performance. 38PRODUCT_BOOT_JARS := \ 39 $(ART_APEX_JARS) 40 41# /system and /system_ext boot jars. 42PRODUCT_BOOT_JARS += \ 43 framework-minus-apex \ 44 framework-graphics \ 45 ext \ 46 telephony-common \ 47 voip-common \ 48 ims-common 49 50# APEX boot jars. Keep the list sorted by module names and then library names. 51# Note: core-icu4j is moved back to PRODUCT_BOOT_JARS in product_config.mk at a later stage. 52# Note: For modules available in Q, DO NOT add new entries here. 53PRODUCT_APEX_BOOT_JARS := \ 54 com.android.adservices:framework-adservices \ 55 com.android.adservices:framework-sdksandbox \ 56 com.android.appsearch:framework-appsearch \ 57 com.android.btservices:framework-bluetooth \ 58 com.android.conscrypt:conscrypt \ 59 com.android.i18n:core-icu4j \ 60 com.android.ipsec:android.net.ipsec.ike \ 61 com.android.media:updatable-media \ 62 com.android.mediaprovider:framework-mediaprovider \ 63 com.android.ondevicepersonalization:framework-ondevicepersonalization \ 64 com.android.os.statsd:framework-statsd \ 65 com.android.permission:framework-permission \ 66 com.android.permission:framework-permission-s \ 67 com.android.scheduling:framework-scheduling \ 68 com.android.sdkext:framework-sdkextensions \ 69 com.android.tethering:framework-connectivity \ 70 com.android.tethering:framework-connectivity-t \ 71 com.android.tethering:framework-tethering \ 72 com.android.uwb:framework-uwb \ 73 com.android.wifi:framework-wifi \ 74 75# List of system_server classpath jars delivered via apex. 76# Keep the list sorted by module names and then library names. 77# Note: For modules available in Q, DO NOT add new entries here. 78PRODUCT_APEX_SYSTEM_SERVER_JARS := \ 79 com.android.adservices:service-adservices \ 80 com.android.adservices:service-sdksandbox \ 81 com.android.appsearch:service-appsearch \ 82 com.android.art:service-art \ 83 com.android.media:service-media-s \ 84 com.android.permission:service-permission \ 85 86PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION += art/build/boot/boot-image-profile.txt 87 88# List of jars on the platform that system_server loads dynamically using separate classloaders. 89# Keep the list sorted library names. 90PRODUCT_STANDALONE_SYSTEM_SERVER_JARS := \ 91 92# List of jars delivered via apex that system_server loads dynamically using separate classloaders. 93# Keep the list sorted by module names and then library names. 94# Note: For modules available in Q, DO NOT add new entries here. 95PRODUCT_APEX_STANDALONE_SYSTEM_SERVER_JARS := \ 96 com.android.btservices:service-bluetooth \ 97 com.android.os.statsd:service-statsd \ 98 com.android.scheduling:service-scheduling \ 99 com.android.tethering:service-connectivity \ 100 com.android.uwb:service-uwb \ 101 com.android.wifi:service-wifi \ 102 103# Minimal configuration for running dex2oat (default argument values). 104# PRODUCT_USES_DEFAULT_ART_CONFIG must be true to enable boot image compilation. 105PRODUCT_USES_DEFAULT_ART_CONFIG := true 106PRODUCT_SYSTEM_PROPERTIES += \ 107 dalvik.vm.image-dex2oat-Xms=64m \ 108 dalvik.vm.image-dex2oat-Xmx=64m \ 109 dalvik.vm.dex2oat-Xms=64m \ 110 dalvik.vm.dex2oat-Xmx=512m \ 111