1#
2# Copyright (C) 2018 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# Base modules and settings for the system partition.
18PRODUCT_PACKAGES += \
19    abx \
20    aconfigd \
21    adbd_system_api \
22    aflags \
23    am \
24    android.hidl.base-V1.0-java \
25    android.hidl.manager-V1.0-java \
26    android.system.suspend-service \
27    android.test.base \
28    android.test.mock \
29    android.test.runner \
30    apexd \
31    appops \
32    app_process \
33    appwidget \
34    atrace \
35    audioserver \
36    BackupRestoreConfirmation \
37    bcc \
38    blank_screen \
39    blkid \
40    bmgr \
41    bootanimation \
42    bootstat \
43    boringssl_self_test \
44    bpfloader \
45    bu \
46    bugreport \
47    bugreportz \
48    build_flag_system \
49    cgroups.json \
50    charger \
51    cmd \
52    com.android.adbd \
53    com.android.adservices \
54    com.android.appsearch \
55    com.android.btservices \
56    com.android.configinfrastructure \
57    com.android.conscrypt \
58    com.android.devicelock \
59    com.android.extservices \
60    com.android.healthfitness \
61    com.android.i18n \
62    com.android.ipsec \
63    com.android.location.provider \
64    com.android.media \
65    com.android.media.swcodec \
66    com.android.mediaprovider \
67    com.android.ondevicepersonalization \
68    com.android.os.statsd \
69    com.android.permission \
70    com.android.resolv \
71    com.android.rkpd \
72    com.android.neuralnetworks \
73    com.android.scheduling \
74    com.android.sdkext \
75    com.android.tethering \
76    $(RELEASE_PACKAGE_TZDATA_MODULE) \
77    com.android.uwb \
78    com.android.virt \
79    com.android.wifi \
80    ContactsProvider \
81    content \
82    CtsShimPrebuilt \
83    CtsShimPrivPrebuilt \
84    debuggerd\
85    device_config \
86    dmctl \
87    dnsmasq \
88    dmesgd \
89    DownloadProvider \
90    dpm \
91    dump.erofs \
92    dumpstate \
93    dumpsys \
94    E2eeContactKeysProvider \
95    e2fsck \
96    enhanced-confirmation.xml \
97    ExtShared \
98    flags_health_check \
99    framework-graphics \
100    framework-location \
101    framework-minus-apex \
102    framework-minus-apex-install-dependencies \
103    framework-sysconfig.xml \
104    fsck.erofs \
105    fsck_msdos \
106    fsverity-release-cert-der \
107    fs_config_files_system \
108    fs_config_dirs_system \
109    gpu_counter_producer \
110    group_system \
111    gsid \
112    gsi_tool \
113    heapprofd \
114    heapprofd_client \
115    gatekeeperd \
116    gpuservice \
117    hid \
118    idmap2 \
119    idmap2d \
120    ime \
121    ims-common \
122    incident \
123    incidentd \
124    incident_helper \
125    incident-helper-cmd \
126    init.environ.rc \
127    init_system \
128    initial-package-stopped-states.xml \
129    input \
130    installd \
131    IntentResolver \
132    ip \
133    iptables \
134    javax.obex \
135    kcmdlinectrl \
136    keystore2 \
137    credstore \
138    ld.mc \
139    libaaudio \
140    libalarm_jni \
141    libamidi \
142    libandroid \
143    libandroidfw \
144    libandroid_runtime \
145    libandroid_servers \
146    libartpalette-system \
147    libaudioeffect_jni \
148    libbinder \
149    libbinder_ndk \
150    libbinder_rpc_unstable \
151    libc.bootstrap \
152    libcamera2ndk \
153    libcutils \
154    libdl.bootstrap \
155    libdl_android.bootstrap \
156    libdrmframework \
157    libdrmframework_jni \
158    libEGL \
159    libETC1 \
160    libfdtrack \
161    libFFTEm \
162    libfilterfw \
163    libgatekeeper \
164    libGLESv1_CM \
165    libGLESv2 \
166    libGLESv3 \
167    libgui \
168    libhardware \
169    libhardware_legacy \
170    libincident \
171    libinput \
172    libinputflinger \
173    libiprouteutil \
174    libjnigraphics \
175    libjpeg \
176    liblog \
177    libm.bootstrap \
178    libmedia \
179    libmedia_jni \
180    libmediandk \
181    libmtp \
182    libnetd_client \
183    libnetlink \
184    libnetutils \
185    libneuralnetworks_packageinfo \
186    libOpenMAXAL \
187    libOpenSLES \
188    libpdfium \
189    libpower \
190    libpowermanager \
191    libradio_metadata \
192    librtp_jni \
193    libsensorservice \
194    libsfplugin_ccodec \
195    libskia \
196    libsonic \
197    libsonivox \
198    libsoundpool \
199    libspeexresampler \
200    libsqlite \
201    libstagefright \
202    libstagefright_foundation \
203    libstagefright_omx \
204    libstdc++ \
205    libsysutils \
206    libui \
207    libusbhost \
208    libutils \
209    libvintf_jni \
210    libvulkan \
211    libwilhelm \
212    linker \
213    llkd \
214    lmkd \
215    LocalTransport \
216    locksettings \
217    logcat \
218    logd \
219    lpdump \
220    lshal \
221    mdnsd \
222    mediacodec.policy \
223    mediaextractor \
224    mediametrics \
225    media_profiles_V1_0.dtd \
226    MediaProviderLegacy \
227    mediaserver \
228    mke2fs \
229    mkfs.erofs \
230    monkey \
231    misctrl \
232    mtectrl \
233    ndc \
234    netd \
235    NetworkStack \
236    odsign \
237    org.apache.http.legacy \
238    otacerts \
239    PackageInstaller \
240    package-shareduid-allowlist.xml \
241    passwd_system \
242    perfetto \
243    perfetto-extras \
244    ping \
245    ping6 \
246    pintool \
247    platform.xml \
248    pm \
249    preinstalled-packages-asl-files.xml \
250    preinstalled-packages-platform.xml \
251    preinstalled-packages-strict-signature.xml \
252    printflags \
253    privapp-permissions-platform.xml \
254    prng_seeder \
255    recovery-persist \
256    resize2fs \
257    rss_hwm_reset \
258    run-as \
259    sanitizer.libraries.txt \
260    schedtest \
261    screencap \
262    sdcard \
263    secdiscard \
264    SecureElement \
265    selinux_policy_system \
266    sensorservice \
267    service \
268    servicemanager \
269    services \
270    settings \
271    SettingsProvider \
272    sfdo \
273    sgdisk \
274    Shell \
275    shell_and_utilities_system \
276    sm \
277    snapshotctl \
278    snapuserd \
279    storaged \
280    surfaceflinger \
281    svc \
282    task_profiles.json \
283    tc \
284    telecom \
285    telephony-common \
286    tombstoned \
287    traced \
288    traced_probes \
289    tune2fs \
290    uiautomator \
291    uinput \
292    uncrypt \
293    uprobestats \
294    usbd \
295    vdc \
296    vintf \
297    voip-common \
298    vold \
299    watchdogd \
300    wificond \
301    wifi.rc \
302    wm \
303
304# When we release crashrecovery module
305ifeq ($(RELEASE_CRASHRECOVERY_MODULE),true)
306  PRODUCT_PACKAGES += \
307        com.android.crashrecovery \
308
309endif
310
311# These packages are not used on Android TV
312ifneq ($(PRODUCT_IS_ATV),true)
313  PRODUCT_PACKAGES += \
314      $(RELEASE_PACKAGE_SOUND_PICKER) \
315
316endif
317
318# Product does not support Dynamic System Update
319ifneq ($(PRODUCT_NO_DYNAMIC_SYSTEM_UPDATE),true)
320    PRODUCT_PACKAGES += \
321        DynamicSystemInstallationService \
322
323endif
324
325# Check if the build supports NFC apex or not
326ifeq ($(RELEASE_PACKAGE_NFC_STACK),NfcNci)
327    PRODUCT_PACKAGES += \
328        framework-nfc \
329        NfcNci
330else
331    PRODUCT_PACKAGES += \
332        com.android.nfcservices
333endif
334
335# Check if the build supports Profiling module
336ifeq ($(RELEASE_PACKAGE_PROFILING_MODULE),true)
337    PRODUCT_PACKAGES += \
338       com.android.profiling \
339       trace_redactor
340endif
341
342ifeq ($(RELEASE_USE_WEBVIEW_BOOTSTRAP_MODULE),true)
343    PRODUCT_PACKAGES += \
344        com.android.webview.bootstrap
345endif
346
347# VINTF data for system image
348PRODUCT_PACKAGES += \
349    system_manifest.xml \
350    system_compatibility_matrix.xml \
351
352# Base modules when shipping api level is less than or equal to 34
353PRODUCT_PACKAGES_SHIPPING_API_LEVEL_34 += \
354    android.hidl.memory@1.0-impl \
355
356# hwservicemanager is now installed on system_ext, but apexes might be using
357# old libraries that are expecting it to be installed on system. This allows
358# those apexes to continue working. The symlink can be removed once we are sure
359# there are no devices using hwservicemanager (when Android V launching devices
360# are no longer supported for dessert upgrades).
361PRODUCT_PACKAGES += \
362    hwservicemanager_compat_symlink_module \
363
364PRODUCT_PACKAGES_ARM64 := libclang_rt.hwasan \
365 libclang_rt.hwasan.bootstrap \
366 libc_hwasan \
367
368# Jacoco agent JARS to be built and installed, if any.
369ifeq ($(EMMA_INSTRUMENT),true)
370  ifneq ($(EMMA_INSTRUMENT_STATIC),true)
371    # For instrumented build, if Jacoco is not being included statically
372    # in instrumented packages then include Jacoco classes in the product
373    # packages.
374    PRODUCT_PACKAGES += jacocoagent
375    ifneq ($(EMMA_INSTRUMENT_FRAMEWORK),true)
376      # For instrumented build, if Jacoco is not being included statically
377      # in instrumented packages and has not already been included in the
378      # bootclasspath via ART_APEX_JARS then include Jacoco classes into the
379      # bootclasspath.
380      PRODUCT_BOOT_JARS += jacocoagent
381    endif # EMMA_INSTRUMENT_FRAMEWORK
382  endif # EMMA_INSTRUMENT_STATIC
383endif # EMMA_INSTRUMENT
384
385ifeq (,$(DISABLE_WALLPAPER_BACKUP))
386  PRODUCT_PACKAGES += \
387    WallpaperBackup
388endif
389
390PRODUCT_PACKAGES += \
391    libEGL_angle \
392    libGLESv1_CM_angle \
393    libGLESv2_angle
394
395# For testing purposes
396ifeq ($(FORCE_AUDIO_SILENT), true)
397    PRODUCT_SYSTEM_PROPERTIES += ro.audio.silent=1
398endif
399
400# Host tools to install
401PRODUCT_HOST_PACKAGES += \
402    BugReport \
403    adb \
404    adevice \
405    art-tools \
406    atest \
407    bcc \
408    bit \
409    dump.erofs \
410    e2fsck \
411    fastboot \
412    flags_health_check \
413    fsck.erofs \
414    icu-data_host_i18n_apex \
415    icu_tzdata.dat_host_tzdata_apex \
416    idmap2 \
417    incident_report \
418    ld.mc \
419    lpdump \
420    mke2fs \
421    mkfs.erofs \
422    resize2fs \
423    sgdisk \
424    sqlite3 \
425    tinyplay \
426    tune2fs \
427    unwind_info \
428    unwind_reg_info \
429    unwind_symbols \
430    tzdata_host \
431    tzdata_host_tzdata_apex \
432    tzlookup.xml_host_tzdata_apex \
433    tz_version_host \
434    tz_version_host_tzdata_apex \
435
436PRODUCT_PACKAGES += init.usb.rc init.usb.configfs.rc
437
438PRODUCT_PACKAGES += etc_hosts
439
440PRODUCT_PACKAGES += init.zygote32.rc
441PRODUCT_VENDOR_PROPERTIES += ro.zygote?=zygote32
442
443PRODUCT_SYSTEM_PROPERTIES += debug.atrace.tags.enableflags=0
444PRODUCT_SYSTEM_PROPERTIES += persist.traced.enable=1
445
446# Packages included only for eng or userdebug builds, previously debug tagged
447PRODUCT_PACKAGES_DEBUG := \
448    adb_keys \
449    adevice_fingerprint \
450    arping \
451    dmuserd \
452    evemu-record \
453    idlcli \
454    init-debug.rc \
455    iotop \
456    iperf3 \
457    iw \
458    layertracegenerator \
459    libclang_rt.ubsan_standalone \
460    logpersist.start \
461    logtagd.rc \
462    ot-cli-ftd \
463    ot-ctl \
464    procrank \
465    profcollectd \
466    profcollectctl \
467    record_binder \
468    servicedispatcher \
469    showmap \
470    sqlite3 \
471    ss \
472    start_with_lockagent \
473    strace \
474    su \
475    sanitizer-status \
476    tracepath \
477    tracepath6 \
478    traceroute6 \
479    unwind_info \
480    unwind_reg_info \
481    unwind_symbols \
482
483# The set of packages whose code can be loaded by the system server.
484PRODUCT_SYSTEM_SERVER_APPS += \
485    SettingsProvider \
486
487ifeq (,$(DISABLE_WALLPAPER_BACKUP))
488  PRODUCT_SYSTEM_SERVER_APPS += \
489    WallpaperBackup
490endif
491
492PRODUCT_PACKAGES_DEBUG_JAVA_COVERAGE := \
493    libdumpcoverage
494
495PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
496    frameworks/base/config/preloaded-classes:system/etc/preloaded-classes)
497
498# Enable dirty image object binning to reduce dirty pages in the image.
499PRODUCT_PACKAGES += dirty-image-objects
500
501# Enable go/perfetto-persistent-tracing for eng builds
502ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
503    PRODUCT_PRODUCT_PROPERTIES += persist.debug.perfetto.persistent_sysui_tracing_for_bugreport=1
504endif
505
506$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk)
507
508# Ensure all trunk-stable flags are available.
509$(call inherit-product, $(SRC_TARGET_DIR)/product/build_variables.mk)
510
511# Use "image" APEXes always.
512$(call inherit-product,$(SRC_TARGET_DIR)/product/updatable_apex.mk)
513
514$(call soong_config_set, bionic, large_system_property_node, $(RELEASE_LARGE_SYSTEM_PROPERTY_NODE))
515$(call soong_config_set, SettingsLib, legacy_avatar_picker_app_enabled, $(if $(RELEASE_AVATAR_PICKER_APP),,true))
516