xref: /aosp_15_r20/build/make/target/product/base_system.mk (revision 9e94795a3d4ef5c1d47486f9a02bb378756cea8a)
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-system \
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-connectivity-b \
100    framework-graphics \
101    framework-location \
102    framework-minus-apex \
103    framework-minus-apex-install-dependencies \
104    framework-sysconfig.xml \
105    fsck.erofs \
106    fsck_msdos \
107    fsverity-release-cert-der \
108    fs_config_files_system \
109    fs_config_dirs_system \
110    gpu_counter_producer \
111    group_system \
112    gsid \
113    gsi_tool \
114    heapprofd \
115    heapprofd_client \
116    gatekeeperd \
117    gpuservice \
118    hid \
119    idmap2 \
120    idmap2d \
121    ime \
122    ims-common \
123    incident \
124    incidentd \
125    incident_helper \
126    incident-helper-cmd \
127    init.environ.rc \
128    init_system \
129    initial-package-stopped-states.xml \
130    input \
131    installd \
132    IntentResolver \
133    ip \
134    iptables \
135    javax.obex \
136    kcmdlinectrl \
137    keystore2 \
138    credstore \
139    ld.mc \
140    libaaudio \
141    libalarm_jni \
142    libamidi \
143    libandroid \
144    libandroidfw \
145    libandroid_runtime \
146    libandroid_servers \
147    libartpalette-system \
148    libaudioeffect_jni \
149    libbinder \
150    libbinder_ndk \
151    libbinder_rpc_unstable \
152    libc.bootstrap \
153    libcamera2ndk \
154    libcutils \
155    libdl.bootstrap \
156    libdl_android.bootstrap \
157    libdrmframework \
158    libdrmframework_jni \
159    libEGL \
160    libETC1 \
161    libfdtrack \
162    libFFTEm \
163    libfilterfw \
164    libgatekeeper \
165    libGLESv1_CM \
166    libGLESv2 \
167    libGLESv3 \
168    libgui \
169    libhardware \
170    libhardware_legacy \
171    libincident \
172    libinput \
173    libinputflinger \
174    libiprouteutil \
175    libjnigraphics \
176    libjpeg \
177    liblog \
178    libm.bootstrap \
179    libmedia \
180    libmedia_jni \
181    libmediandk \
182    libmonkey_jni \
183    libmtp \
184    libnetd_client \
185    libnetlink \
186    libnetutils \
187    libneuralnetworks_packageinfo \
188    libOpenMAXAL \
189    libOpenSLES \
190    libpdfium \
191    libpower \
192    libpowermanager \
193    libradio_metadata \
194    librtp_jni \
195    libsensorservice \
196    libsfplugin_ccodec \
197    libskia \
198    libsonic \
199    libsonivox \
200    libsoundpool \
201    libspeexresampler \
202    libsqlite \
203    libstagefright \
204    libstagefright_foundation \
205    libstagefright_omx \
206    libstdc++ \
207    libsysutils \
208    libui \
209    libusbhost \
210    libutils \
211    libvintf_jni \
212    libvulkan \
213    libwilhelm \
214    linker \
215    llkd \
216    llndk_libs \
217    lmkd \
218    LocalTransport \
219    locksettings \
220    logcat \
221    logd \
222    lpdump \
223    lshal \
224    mdnsd \
225    mediacodec.policy \
226    mediaextractor \
227    mediametrics \
228    media_profiles_V1_0.dtd \
229    MediaProviderLegacy \
230    mediaserver \
231    mke2fs \
232    mkfs.erofs \
233    monkey \
234    misctrl \
235    mtectrl \
236    ndc \
237    netd \
238    NetworkStack \
239    odsign \
240    org.apache.http.legacy \
241    otacerts \
242    PackageInstaller \
243    package-shareduid-allowlist.xml \
244    passwd_system \
245    perfetto \
246    perfetto-extras \
247    ping \
248    ping6 \
249    pintool \
250    platform.xml \
251    pm \
252    prefetch \
253    preinstalled-packages-asl-files.xml \
254    preinstalled-packages-platform.xml \
255    preinstalled-packages-strict-signature.xml \
256    printflags \
257    privapp-permissions-platform.xml \
258    prng_seeder \
259    recovery-persist \
260    resize2fs \
261    rss_hwm_reset \
262    run-as \
263    sanitizer.libraries.txt \
264    schedtest \
265    screencap \
266    sdcard \
267    secdiscard \
268    SecureElement \
269    selinux_policy_system \
270    sensorservice \
271    service \
272    servicemanager \
273    services \
274    settings \
275    SettingsProvider \
276    sfdo \
277    sgdisk \
278    Shell \
279    shell_and_utilities_system \
280    sm \
281    snapuserd \
282    storaged \
283    surfaceflinger \
284    svc \
285    system-build.prop \
286    task_profiles.json \
287    tc \
288    telecom \
289    telephony-common \
290    tombstoned \
291    traced \
292    traced_probes \
293    tradeinmode \
294    tune2fs \
295    uiautomator \
296    uinput \
297    uncrypt \
298    usbd \
299    vdc \
300    vintf \
301    voip-common \
302    vold \
303    watchdogd \
304    wificond \
305    wifi.rc \
306    wm \
307
308# When we release crashrecovery module
309ifeq ($(RELEASE_CRASHRECOVERY_MODULE),true)
310  PRODUCT_PACKAGES += \
311        com.android.crashrecovery \
312
313else
314  PRODUCT_PACKAGES += \
315    framework-platformcrashrecovery \
316
317endif
318
319# When we release ondeviceintelligence in neuralnetworks module
320ifneq ($(RELEASE_ONDEVICE_INTELLIGENCE_MODULE),true)
321  PRODUCT_PACKAGES += \
322        framework-ondeviceintelligence-platform
323
324endif
325
326
327# When we release uprobestats module
328ifeq ($(RELEASE_UPROBESTATS_MODULE),true)
329    PRODUCT_PACKAGES += \
330        com.android.uprobestats \
331
332else
333    PRODUCT_PACKAGES += \
334        uprobestats \
335        libuprobestats_client \
336
337endif
338
339# These packages are not used on Android TV
340ifneq ($(PRODUCT_IS_ATV),true)
341  PRODUCT_PACKAGES += \
342      $(RELEASE_PACKAGE_SOUND_PICKER) \
343
344endif
345
346# Product does not support Dynamic System Update
347ifneq ($(PRODUCT_NO_DYNAMIC_SYSTEM_UPDATE),true)
348    PRODUCT_PACKAGES += \
349        DynamicSystemInstallationService \
350
351endif
352
353# Check if the build supports NFC apex or not
354ifeq ($(RELEASE_PACKAGE_NFC_STACK),NfcNci)
355    PRODUCT_PACKAGES += \
356        framework-nfc \
357        NfcNci
358else
359    PRODUCT_PACKAGES += \
360        com.android.nfcservices
361endif
362
363# Check if the build supports Profiling module
364ifeq ($(RELEASE_PACKAGE_PROFILING_MODULE),true)
365    PRODUCT_PACKAGES += \
366       com.android.profiling
367endif
368
369ifeq ($(RELEASE_USE_WEBVIEW_BOOTSTRAP_MODULE),true)
370    PRODUCT_PACKAGES += \
371        com.android.webview.bootstrap
372endif
373
374ifneq (,$(RELEASE_RANGING_STACK))
375    PRODUCT_PACKAGES += \
376        com.android.ranging
377endif
378
379ifeq ($(RELEASE_MEMORY_MANAGEMENT_DAEMON),true)
380  PRODUCT_PACKAGES += \
381        mm_daemon
382endif
383
384# VINTF data for system image
385PRODUCT_PACKAGES += \
386    system_manifest.xml \
387    system_compatibility_matrix.xml \
388
389# Base modules when shipping api level is less than or equal to 34
390PRODUCT_PACKAGES_SHIPPING_API_LEVEL_34 += \
391    android.hidl.memory@1.0-impl \
392
393# hwservicemanager is now installed on system_ext, but apexes might be using
394# old libraries that are expecting it to be installed on system. This allows
395# those apexes to continue working. The symlink can be removed once we are sure
396# there are no devices using hwservicemanager (when Android V launching devices
397# are no longer supported for dessert upgrades).
398PRODUCT_PACKAGES += \
399    hwservicemanager_compat_symlink_module \
400
401PRODUCT_PACKAGES_ARM64 := libclang_rt.hwasan \
402 libclang_rt.hwasan.bootstrap \
403 libc_hwasan \
404
405# Jacoco agent JARS to be built and installed, if any.
406ifeq ($(EMMA_INSTRUMENT),true)
407  ifneq ($(EMMA_INSTRUMENT_STATIC),true)
408    # For instrumented build, if Jacoco is not being included statically
409    # in instrumented packages then include Jacoco classes in the product
410    # packages.
411    PRODUCT_PACKAGES += jacocoagent
412    ifneq ($(EMMA_INSTRUMENT_FRAMEWORK),true)
413      # For instrumented build, if Jacoco is not being included statically
414      # in instrumented packages and has not already been included in the
415      # bootclasspath via ART_APEX_JARS then include Jacoco classes into the
416      # bootclasspath.
417      PRODUCT_BOOT_JARS += jacocoagent
418    endif # EMMA_INSTRUMENT_FRAMEWORK
419  endif # EMMA_INSTRUMENT_STATIC
420endif # EMMA_INSTRUMENT
421
422ifeq (,$(DISABLE_WALLPAPER_BACKUP))
423  PRODUCT_PACKAGES += \
424    WallpaperBackup
425endif
426
427PRODUCT_PACKAGES += \
428    libEGL_angle \
429    libGLESv1_CM_angle \
430    libGLESv2_angle
431
432# For testing purposes
433ifeq ($(FORCE_AUDIO_SILENT), true)
434    PRODUCT_SYSTEM_PROPERTIES += ro.audio.silent=1
435endif
436
437# Host tools to install
438PRODUCT_HOST_PACKAGES += \
439    BugReport \
440    adb \
441    adevice \
442    atest \
443    bcc \
444    bit \
445    dump.erofs \
446    e2fsck \
447    fastboot \
448    flags_health_check \
449    fsck.erofs \
450    icu-data_host_i18n_apex \
451    tzdata_icu_res_files_host_prebuilts \
452    idmap2 \
453    incident_report \
454    ld.mc \
455    lpdump \
456    mke2fs \
457    mkfs.erofs \
458    pbtombstone \
459    resize2fs \
460    sgdisk \
461    sqlite3 \
462    tinyplay \
463    tune2fs \
464    unwind_info \
465    unwind_reg_info \
466    unwind_symbols \
467    tzdata_host \
468    tzdata_host_tzdata_apex \
469    tzlookup.xml_host_tzdata_apex \
470    tz_version_host \
471    tz_version_host_tzdata_apex \
472
473# For art-tools, if the dependencies have changed, please sync them to art/Android.bp as well.
474PRODUCT_HOST_PACKAGES += \
475    ahat \
476    dexdump \
477    hprof-conv
478# A subset of the tools are disabled when HOST_PREFER_32_BIT is defined as make reports that
479# they are not supported on host (b/129323791). This is likely due to art_apex disabling host
480# APEX builds when HOST_PREFER_32_BIT is set (b/120617876).
481ifneq ($(HOST_PREFER_32_BIT),true)
482PRODUCT_HOST_PACKAGES += \
483    dexlist \
484    oatdump
485endif
486
487
488PRODUCT_PACKAGES += init.usb.rc init.usb.configfs.rc
489
490PRODUCT_PACKAGES += etc_hosts
491
492PRODUCT_PACKAGES += init.zygote32.rc
493PRODUCT_VENDOR_PROPERTIES += ro.zygote?=zygote32
494
495PRODUCT_SYSTEM_PROPERTIES += debug.atrace.tags.enableflags=0
496PRODUCT_SYSTEM_PROPERTIES += persist.traced.enable=1
497
498# Include kernel configs.
499PRODUCT_PACKAGES += \
500    approved-ogki-builds.xml \
501    kernel-lifetimes.xml
502
503# Packages included only for eng or userdebug builds, previously debug tagged
504PRODUCT_PACKAGES_DEBUG := \
505    adevice_fingerprint \
506    arping \
507    dmuserd \
508    evemu-record \
509    idlcli \
510    init-debug.rc \
511    iotop \
512    iperf3 \
513    iw \
514    layertracegenerator \
515    libclang_rt.ubsan_standalone \
516    logpersist.start \
517    logtagd.rc \
518    ot-cli-ftd \
519    ot-ctl \
520    procrank \
521    profcollectd \
522    profcollectctl \
523    record_binder \
524    servicedispatcher \
525    showmap \
526    snapshotctl \
527    sqlite3 \
528    ss \
529    start_with_lockagent \
530    strace \
531    su \
532    sanitizer-status \
533    tracepath \
534    tracepath6 \
535    traceroute6 \
536    unwind_info \
537    unwind_reg_info \
538    unwind_symbols \
539
540# The set of packages whose code can be loaded by the system server.
541PRODUCT_SYSTEM_SERVER_APPS += \
542    SettingsProvider \
543
544ifeq (,$(DISABLE_WALLPAPER_BACKUP))
545  PRODUCT_SYSTEM_SERVER_APPS += \
546    WallpaperBackup
547endif
548
549PRODUCT_PACKAGES_DEBUG_JAVA_COVERAGE := \
550    libdumpcoverage
551
552PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
553    frameworks/base/config/preloaded-classes:system/etc/preloaded-classes)
554
555# Enable dirty image object binning to reduce dirty pages in the image.
556PRODUCT_PACKAGES += dirty-image-objects
557
558# Enable go/perfetto-persistent-tracing for eng builds
559ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
560    PRODUCT_PRODUCT_PROPERTIES += persist.debug.perfetto.persistent_sysui_tracing_for_bugreport=1
561endif
562
563$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk)
564
565# Ensure all trunk-stable flags are available.
566$(call inherit-product, $(SRC_TARGET_DIR)/product/build_variables.mk)
567
568# Use "image" APEXes always.
569$(call inherit-product,$(SRC_TARGET_DIR)/product/updatable_apex.mk)
570
571$(call soong_config_set, bionic, large_system_property_node, $(RELEASE_LARGE_SYSTEM_PROPERTY_NODE))
572$(call soong_config_set, Aconfig, read_from_new_storage, $(RELEASE_READ_FROM_NEW_STORAGE))
573$(call soong_config_set, SettingsLib, legacy_avatar_picker_app_enabled, $(if $(RELEASE_AVATAR_PICKER_APP),,true))
574