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