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
17ifeq ($(ART_APEX_JARS),)
18  $(error ART_APEX_JARS is empty; cannot initialize PRODUCT_BOOT_JARS variable)
19endif
20
21# Order of the jars on BOOTCLASSPATH follows:
22# 1. ART APEX jars
23# 2. System jars
24# 3. System_ext jars
25# 4. Non-updatable APEX jars
26# 5. Updatable APEX jars
27#
28# ART APEX jars (1) are defined in ART_APEX_JARS. System, system_ext, and non updatable boot jars
29# are defined below in PRODUCT_BOOT_JARS. All updatable APEX boot jars are part of
30# PRODUCT_UPDATABLE_BOOT_JARS.
31#
32# The actual runtime ordering matching above is determined by derive_classpath service at runtime.
33# See packages/modules/SdkExtensions/README.md for more details.
34
35# The order of PRODUCT_BOOT_JARS matters for runtime class lookup performance.
36PRODUCT_BOOT_JARS := \
37    $(ART_APEX_JARS)
38
39# /system and /system_ext boot jars.
40PRODUCT_BOOT_JARS += \
41    framework-minus-apex \
42    framework-graphics \
43    ext \
44    telephony-common \
45    voip-common \
46    ims-common
47
48# Non-updatable APEX jars. Keep the list sorted.
49PRODUCT_BOOT_JARS += \
50    com.android.i18n:core-icu4j
51
52# Updatable APEX boot jars. Keep the list sorted by module names and then library names.
53PRODUCT_UPDATABLE_BOOT_JARS := \
54    com.android.appsearch:framework-appsearch \
55    com.android.conscrypt:conscrypt \
56    com.android.ipsec:android.net.ipsec.ike \
57    com.android.media:updatable-media \
58    com.android.mediaprovider:framework-mediaprovider \
59    com.android.os.statsd:framework-statsd \
60    com.android.permission:framework-permission \
61    com.android.permission:framework-permission-s \
62    com.android.scheduling:framework-scheduling \
63    com.android.sdkext:framework-sdkextensions \
64    com.android.tethering:framework-connectivity \
65    com.android.tethering:framework-tethering \
66    com.android.wifi:framework-wifi
67
68# Updatable APEX system server jars. Keep the list sorted by module names and then library names.
69PRODUCT_UPDATABLE_SYSTEM_SERVER_JARS := \
70    com.android.appsearch:service-appsearch \
71    com.android.media:service-media-s \
72    com.android.permission:service-permission \
73
74# Minimal configuration for running dex2oat (default argument values).
75# PRODUCT_USES_DEFAULT_ART_CONFIG must be true to enable boot image compilation.
76PRODUCT_USES_DEFAULT_ART_CONFIG := true
77PRODUCT_SYSTEM_PROPERTIES += \
78    dalvik.vm.image-dex2oat-Xms=64m \
79    dalvik.vm.image-dex2oat-Xmx=64m \
80    dalvik.vm.dex2oat-Xms=64m \
81    dalvik.vm.dex2oat-Xmx=512m \
82