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.bt \ 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 libmonkey_jni \ 182 libmtp \ 183 libnetd_client \ 184 libnetlink \ 185 libnetutils \ 186 libneuralnetworks_packageinfo \ 187 libOpenMAXAL \ 188 libOpenSLES \ 189 libpdfium \ 190 libpower \ 191 libpowermanager \ 192 libradio_metadata \ 193 librtp_jni \ 194 libsensorservice \ 195 libsfplugin_ccodec \ 196 libskia \ 197 libsonic \ 198 libsonivox \ 199 libsoundpool \ 200 libspeexresampler \ 201 libsqlite \ 202 libstagefright \ 203 libstagefright_foundation \ 204 libstagefright_omx \ 205 libstdc++ \ 206 libsysutils \ 207 libui \ 208 libusbhost \ 209 libutils \ 210 libvintf_jni \ 211 libvulkan \ 212 libwilhelm \ 213 linker \ 214 llkd \ 215 llndk_libs \ 216 lmkd \ 217 LocalTransport \ 218 locksettings \ 219 logcat \ 220 logd \ 221 lpdump \ 222 lshal \ 223 mdnsd \ 224 mediacodec.policy \ 225 mediaextractor \ 226 mediametrics \ 227 media_profiles_V1_0.dtd \ 228 MediaProviderLegacy \ 229 mediaserver \ 230 mke2fs \ 231 mkfs.erofs \ 232 monkey \ 233 misctrl \ 234 mtectrl \ 235 ndc \ 236 netd \ 237 NetworkStack \ 238 odsign \ 239 org.apache.http.legacy \ 240 otacerts \ 241 PackageInstaller \ 242 package-shareduid-allowlist.xml \ 243 passwd_system \ 244 pbtombstone \ 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 privapp-permissions-platform.xml \ 257 prng_seeder \ 258 recovery-persist \ 259 resize2fs \ 260 rss_hwm_reset \ 261 run-as \ 262 sanitizer.libraries.txt \ 263 schedtest \ 264 screencap \ 265 sdcard \ 266 secdiscard \ 267 SecureElement \ 268 selinux_policy_system \ 269 sensorservice \ 270 service \ 271 servicemanager \ 272 services \ 273 settings \ 274 SettingsProvider \ 275 sfdo \ 276 sgdisk \ 277 Shell \ 278 shell_and_utilities_system \ 279 sm \ 280 snapuserd \ 281 storaged \ 282 surfaceflinger \ 283 svc \ 284 system-build.prop \ 285 task_profiles.json \ 286 tc \ 287 telecom \ 288 telephony-common \ 289 tombstoned \ 290 traced \ 291 traced_probes \ 292 tradeinmode \ 293 tune2fs \ 294 uiautomator \ 295 uinput \ 296 uncrypt \ 297 usbd \ 298 vdc \ 299 vintf \ 300 voip-common \ 301 vold \ 302 watchdogd \ 303 wificond \ 304 wifi.rc \ 305 wm \ 306 307# When we release crashrecovery module 308ifeq ($(RELEASE_CRASHRECOVERY_MODULE),true) 309 PRODUCT_PACKAGES += \ 310 com.android.crashrecovery \ 311 312else 313 PRODUCT_PACKAGES += \ 314 framework-platformcrashrecovery \ 315 316endif 317 318# When we release ondeviceintelligence in neuralnetworks module 319ifneq ($(RELEASE_ONDEVICE_INTELLIGENCE_MODULE),true) 320 PRODUCT_PACKAGES += \ 321 framework-ondeviceintelligence-platform 322 323endif 324 325 326# When we release uprobestats module 327ifeq ($(RELEASE_UPROBESTATS_MODULE),true) 328 PRODUCT_PACKAGES += \ 329 com.android.uprobestats \ 330 331else 332 PRODUCT_PACKAGES += \ 333 uprobestats \ 334 libuprobestats_client \ 335 336endif 337 338# These packages are not used on Android TV 339ifneq ($(PRODUCT_IS_ATV),true) 340 PRODUCT_PACKAGES += \ 341 $(RELEASE_PACKAGE_SOUND_PICKER) \ 342 343endif 344 345# Product does not support Dynamic System Update 346ifneq ($(PRODUCT_NO_DYNAMIC_SYSTEM_UPDATE),true) 347 PRODUCT_PACKAGES += \ 348 DynamicSystemInstallationService \ 349 350endif 351 352# Check if the build supports NFC apex or not 353ifeq ($(RELEASE_PACKAGE_NFC_STACK),NfcNci) 354 PRODUCT_PACKAGES += \ 355 framework-nfc \ 356 NfcNci 357else 358 PRODUCT_PACKAGES += \ 359 com.android.nfcservices 360endif 361 362# Check if the build supports Profiling module 363ifeq ($(RELEASE_PACKAGE_PROFILING_MODULE),true) 364 PRODUCT_PACKAGES += \ 365 com.android.profiling 366endif 367 368ifeq ($(RELEASE_USE_WEBVIEW_BOOTSTRAP_MODULE),true) 369 PRODUCT_PACKAGES += \ 370 com.android.webview.bootstrap 371endif 372 373# Only add the jar when it is not in the Tethering module. Otherwise, 374# it will be added via com.android.tethering 375ifneq ($(RELEASE_MOVE_VCN_TO_MAINLINE),true) 376 PRODUCT_PACKAGES += \ 377 framework-connectivity-b 378endif 379 380ifneq (,$(RELEASE_RANGING_STACK)) 381 PRODUCT_PACKAGES += \ 382 com.android.ranging 383endif 384 385ifeq ($(RELEASE_MEMORY_MANAGEMENT_DAEMON),true) 386 PRODUCT_PACKAGES += \ 387 mm_daemon 388else 389 PRODUCT_PACKAGES += \ 390 init-mmd-prop.rc 391endif 392 393# VINTF data for system image 394PRODUCT_PACKAGES += \ 395 system_manifest.xml \ 396 system_compatibility_matrix.xml \ 397 398# hwservicemanager is now installed on system_ext, but apexes might be using 399# old libraries that are expecting it to be installed on system. This allows 400# those apexes to continue working. The symlink can be removed once we are sure 401# there are no devices using hwservicemanager (when Android V launching devices 402# are no longer supported for dessert upgrades). 403PRODUCT_PACKAGES += \ 404 hwservicemanager_compat_symlink_module \ 405 406PRODUCT_PACKAGES_ARM64 := libclang_rt.hwasan \ 407 libclang_rt.hwasan.bootstrap \ 408 libc_hwasan \ 409 410# Jacoco agent JARS to be built and installed, if any. 411ifeq ($(EMMA_INSTRUMENT),true) 412 ifneq ($(EMMA_INSTRUMENT_STATIC),true) 413 # For instrumented build, if Jacoco is not being included statically 414 # in instrumented packages then include Jacoco classes in the product 415 # packages. 416 PRODUCT_PACKAGES += jacocoagent 417 ifneq ($(EMMA_INSTRUMENT_FRAMEWORK),true) 418 # For instrumented build, if Jacoco is not being included statically 419 # in instrumented packages and has not already been included in the 420 # bootclasspath via ART_APEX_JARS then include Jacoco classes into the 421 # bootclasspath. 422 PRODUCT_BOOT_JARS += jacocoagent 423 endif # EMMA_INSTRUMENT_FRAMEWORK 424 endif # EMMA_INSTRUMENT_STATIC 425endif # EMMA_INSTRUMENT 426 427ifeq (,$(DISABLE_WALLPAPER_BACKUP)) 428 PRODUCT_PACKAGES += \ 429 WallpaperBackup 430endif 431 432PRODUCT_PACKAGES += \ 433 libEGL_angle \ 434 libGLESv1_CM_angle \ 435 libGLESv2_angle 436 437# For testing purposes 438ifeq ($(FORCE_AUDIO_SILENT), true) 439 PRODUCT_SYSTEM_PROPERTIES += ro.audio.silent=1 440endif 441 442# Host tools to install 443PRODUCT_HOST_PACKAGES += \ 444 BugReport \ 445 adb \ 446 adevice \ 447 atest \ 448 bcc \ 449 bit \ 450 dump.erofs \ 451 e2fsck \ 452 fastboot \ 453 flags_health_check \ 454 fsck.erofs \ 455 icu-data_host_i18n_apex \ 456 tzdata_icu_res_files_host_prebuilts \ 457 idmap2 \ 458 incident_report \ 459 ld.mc \ 460 lpdump \ 461 mke2fs \ 462 mkfs.erofs \ 463 pbtombstone \ 464 resize2fs \ 465 sgdisk \ 466 sqlite3 \ 467 tinyplay \ 468 tune2fs \ 469 unwind_info \ 470 unwind_reg_info \ 471 unwind_symbols \ 472 tzdata_host \ 473 tzdata_host_tzdata_apex \ 474 tzlookup.xml_host_tzdata_apex \ 475 tz_version_host \ 476 tz_version_host_tzdata_apex \ 477 478# For art-tools, if the dependencies have changed, please sync them to art/Android.bp as well. 479PRODUCT_HOST_PACKAGES += \ 480 ahat \ 481 dexdump \ 482 hprof-conv 483# A subset of the tools are disabled when HOST_PREFER_32_BIT is defined as make reports that 484# they are not supported on host (b/129323791). This is likely due to art_apex disabling host 485# APEX builds when HOST_PREFER_32_BIT is set (b/120617876). 486ifneq ($(HOST_PREFER_32_BIT),true) 487PRODUCT_HOST_PACKAGES += \ 488 dexlist \ 489 oatdump 490endif 491 492 493PRODUCT_PACKAGES += init.usb.rc init.usb.configfs.rc 494 495PRODUCT_PACKAGES += etc_hosts 496 497PRODUCT_PACKAGES += init.zygote32.rc 498PRODUCT_VENDOR_PROPERTIES += ro.zygote?=zygote32 499 500PRODUCT_SYSTEM_PROPERTIES += debug.atrace.tags.enableflags=0 501PRODUCT_SYSTEM_PROPERTIES += persist.traced.enable=1 502PRODUCT_SYSTEM_PROPERTIES += ro.surface_flinger.game_default_frame_rate_override=60 503 504# Include kernel configs. 505PRODUCT_PACKAGES += \ 506 approved-ogki-builds.xml \ 507 kernel-lifetimes.xml 508 509# Packages included only for eng or userdebug builds, previously debug tagged 510PRODUCT_PACKAGES_DEBUG := \ 511 adevice_fingerprint \ 512 arping \ 513 dmuserd \ 514 evemu-record \ 515 idlcli \ 516 init-debug.rc \ 517 iotop \ 518 iperf3 \ 519 iw \ 520 layertracegenerator \ 521 libclang_rt.ubsan_standalone \ 522 logpersist.start \ 523 logtagd.rc \ 524 ot-cli-ftd \ 525 ot-ctl \ 526 overlay_remounter \ 527 procrank \ 528 profcollectd \ 529 profcollectctl \ 530 record_binder \ 531 servicedispatcher \ 532 showmap \ 533 snapshotctl \ 534 sqlite3 \ 535 ss \ 536 start_with_lockagent \ 537 strace \ 538 su \ 539 sanitizer-status \ 540 tracepath \ 541 tracepath6 \ 542 traceroute6 \ 543 unwind_info \ 544 unwind_reg_info \ 545 unwind_symbols \ 546 547# The set of packages whose code can be loaded by the system server. 548PRODUCT_SYSTEM_SERVER_APPS += \ 549 SettingsProvider \ 550 551ifeq (,$(DISABLE_WALLPAPER_BACKUP)) 552 PRODUCT_SYSTEM_SERVER_APPS += \ 553 WallpaperBackup 554endif 555 556PRODUCT_PACKAGES_DEBUG_JAVA_COVERAGE := \ 557 libdumpcoverage 558 559PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\ 560 frameworks/base/config/preloaded-classes:system/etc/preloaded-classes) 561 562# Enable dirty image object binning to reduce dirty pages in the image. 563PRODUCT_PACKAGES += dirty-image-objects 564 565# Enable go/perfetto-persistent-tracing for eng builds 566ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT))) 567 PRODUCT_PRODUCT_PROPERTIES += persist.debug.perfetto.persistent_sysui_tracing_for_bugreport=1 568endif 569 570$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk) 571 572# Ensure all trunk-stable flags are available. 573$(call inherit-product, $(SRC_TARGET_DIR)/product/build_variables.mk) 574 575# Use "image" APEXes always. 576$(call inherit-product,$(SRC_TARGET_DIR)/product/updatable_apex.mk) 577 578$(call soong_config_set, bionic, large_system_property_node, $(RELEASE_LARGE_SYSTEM_PROPERTY_NODE)) 579$(call soong_config_set, Aconfig, read_from_new_storage, $(RELEASE_READ_FROM_NEW_STORAGE)) 580$(call soong_config_set, SettingsLib, legacy_avatar_picker_app_enabled, $(if $(RELEASE_AVATAR_PICKER_APP),,true)) 581$(call soong_config_set, appsearch, enable_isolated_storage, $(RELEASE_APPSEARCH_ENABLE_ISOLATED_STORAGE)) 582 583# Enable AppSearch Isolated Storage per BUILD flag 584PRODUCT_PRODUCT_PROPERTIES += ro.appsearch.feature.enable_isolated_storage=$(RELEASE_APPSEARCH_ENABLE_ISOLATED_STORAGE) 585