platform_build/target/product/base_system.mk
Luca Stefani a47c7368d7
build: Add tequila build support
Squashed also with the following changes:

  Author: Luca Stefani <luca020400@lineageos.org>
  Date:   Thu Aug 17 22:22:13 2017 +0200

    core: Include Lineage pathmap

  Change-Id: Ie25dee383cc5bc9bb6390cff2cb2460d526d80b6

  Author: Simon Shields <simon@lineageos.org>
  Date:   Fri Mar 2 12:55:47 2018 +1100

    build: unconditionally use lineage pathmap

    even if we're not building a lineage target, we need to
    use the lineage pathmap to make things like recovery and ril
    happy

  Change-Id: I974c30ad10d4ff5b7805c3df9c22010f1e002bf1

  Author: Luca Stefani <luca.stefani.ge1@gmail.com>
  Date:   Tue Jan 22 15:50:52 2019 +0100

    Don't export BUILD_NUMBER in envsetup

    * The value is meant to be set only before running an /official/ build
    * This allows us to execute consecutive make commands without
      running kati for every invocation

  Change-Id: Ifa94b839f30c7260009c8a3c91c202b50e28022e

  Author: Luca Stefani <luca020400@lineageos.org>
  Date:   Fri Aug 18 10:17:00 2017 +0200

    envsetup: Call fixup_common_out_dir

  Change-Id: I84e16b0df5822cfd8514c46d709109a13c20f86e

  Author: Adrian DC <radian.dc@gmail.com>
  Date:   Sat May 12 11:24:33 2018 +0200

    build: Include LineageOS specific properties in build.prop

     * Our properties were supposed to go to /system/etc/prop.default
        after the following commit:
        "lineage: Move to Google's method of defining system default props"
        Change-Id: I6cb0e28a7599b010b389cc541015a37010a00f4b

     * However if BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED is not true,
        only /default.prop will retain the properties contents of
        ADDITIONAL_DEFAULT_PROPERTIES and PRODUCT_SYSTEM_DEFAULT_PROPERTIES,
        and none of our versioning identification was held in the system

     * Enabling BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED globally would
        break all properties on devices that handle partitions usually
        at the device level rather than the kernel due to mounting races

     * Include the vendor/lineage/config/main.mk entrypoint to be allowed
        to extend ADDITION_BUILD_PROPERTIES as we need to define our releases

  Change-Id: I19918eece0f0dd3ee967db0339b4d09c9a6d540e
  Signed-off-by: Adrian DC <radian.dc@gmail.com>

  Author: Rashed Abdel-Tawab <rashed@linux.com>
  Date:   Thu Sep 5 21:35:38 2019 -0700

    core: Only include Lineage SE policy if repo exists

  Change-Id: If799106d2da6d8c303430e316edff365a22f7c99

  Author: dianlujitao <dianlujitao@lineageos.org>
  Date:   Thu Sep 5 21:56:36 2019 +0800

    product: Exclude AOSP apn list on Lineage build

    Change-Id: I1fd10089421a2e4b57ef565d87ad1f6036bd1898

  Author: Michael Bestas <mkbestas@lineageos.org>
  Date:   Fri Apr 12 02:10:12 2019 +0300

    build: Conditionally include AudioPackage14.mk instead of AllAudio.mk

    * AllAudio.mk doesn't contain latest material files and also
      contains multiple duplicate files. Just copy the latest
      material ones and we'll include the older files in vendor/lineage

    Change-Id: Ic7353216a3f3dc3c51006d951ac932cfd6e5f3b5

  Author: dhacker29 <dhackerdvm@gmail.com>
  Date:   Sat Jun 6 22:22:05 2015 -0400

    Remove LatinIME as it is included per target in vendor/lineage

    Change-Id: Ibce4a244ec0653a7c7798d864047ac667866a1dc

  Author: razorloves <razorloves@gmail.com>
  Date:   Mon Oct 7 05:10:56 2019 -0500

    build: Remove su inclusion

    This stops including su in all lineage userdebug/eng builds.
    Inclusion of su is conditionally handled in /vendor/lineage.

    Change-Id: Ia3ad978146f170a2b260d77afe9eb580d4b4f823

  Author: Michael Bestas <mkbestas@lineageos.org>
  Date:   Sat Nov 7 22:45:12 2020 +0200

    Stop including vendor specific clear_vars.mk

    vendor/lineage/build/core/clear_vars.mk is no-op since 16.0

    Change-Id: I7e159cc9ed5a838c9a04c1a8b7dcf925d83f0e20

Change-Id: Iab8b2ef8b644a7bea10bfd28b99d9e69539b1357
2024-10-24 19:25:10 +02:00

519 lines
12 KiB
Makefile

#
# Copyright (C) 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Base modules and settings for the system partition.
PRODUCT_PACKAGES += \
abx \
aconfigd \
adbd_system_api \
aflags \
am \
android.hidl.base-V1.0-java \
android.hidl.manager-V1.0-java \
android.system.suspend-service \
android.test.base \
android.test.mock \
android.test.runner \
apexd \
appops \
app_process \
appwidget \
atrace \
audioserver \
BackupRestoreConfirmation \
bcc \
blank_screen \
blkid \
bmgr \
bootanimation \
bootstat \
boringssl_self_test \
bpfloader \
bu \
bugreport \
bugreportz \
build_flag_system \
cgroups.json \
charger \
cmd \
com.android.adbd \
com.android.adservices \
com.android.appsearch \
com.android.btservices \
com.android.configinfrastructure \
com.android.conscrypt \
com.android.devicelock \
com.android.extservices \
com.android.healthfitness \
com.android.i18n \
com.android.ipsec \
com.android.location.provider \
com.android.media \
com.android.media.swcodec \
com.android.mediaprovider \
com.android.ondevicepersonalization \
com.android.os.statsd \
com.android.permission \
com.android.resolv \
com.android.rkpd \
com.android.neuralnetworks \
com.android.scheduling \
com.android.sdkext \
com.android.tethering \
$(RELEASE_PACKAGE_TZDATA_MODULE) \
com.android.uwb \
com.android.virt \
com.android.wifi \
ContactsProvider \
content \
CtsShimPrebuilt \
CtsShimPrivPrebuilt \
debuggerd\
device_config \
dmctl \
dnsmasq \
dmesgd \
DownloadProvider \
dpm \
dump.erofs \
dumpstate \
dumpsys \
E2eeContactKeysProvider \
e2fsck \
enhanced-confirmation.xml \
ExtShared \
flags_health_check \
framework-graphics \
framework-location \
framework-minus-apex \
framework-minus-apex-install-dependencies \
framework-sysconfig.xml \
fsck.erofs \
fsck_msdos \
fsverity-release-cert-der \
fs_config_files_system \
fs_config_dirs_system \
gpu_counter_producer \
group_system \
gsid \
gsi_tool \
heapprofd \
heapprofd_client \
gatekeeperd \
gpuservice \
hid \
idmap2 \
idmap2d \
ime \
ims-common \
incident \
incidentd \
incident_helper \
incident-helper-cmd \
init.environ.rc \
init_system \
initial-package-stopped-states.xml \
input \
installd \
IntentResolver \
ip \
iptables \
javax.obex \
kcmdlinectrl \
keystore2 \
credstore \
ld.mc \
libaaudio \
libalarm_jni \
libamidi \
libandroid \
libandroidfw \
libandroid_runtime \
libandroid_servers \
libartpalette-system \
libaudioeffect_jni \
libbinder \
libbinder_ndk \
libbinder_rpc_unstable \
libc.bootstrap \
libcamera2ndk \
libcutils \
libdl.bootstrap \
libdl_android.bootstrap \
libdrmframework \
libdrmframework_jni \
libEGL \
libETC1 \
libfdtrack \
libFFTEm \
libfilterfw \
libgatekeeper \
libGLESv1_CM \
libGLESv2 \
libGLESv3 \
libgui \
libhardware \
libhardware_legacy \
libincident \
libinput \
libinputflinger \
libiprouteutil \
libjnigraphics \
libjpeg \
liblog \
libm.bootstrap \
libmedia \
libmedia_jni \
libmediandk \
libmtp \
libnetd_client \
libnetlink \
libnetutils \
libneuralnetworks_packageinfo \
libOpenMAXAL \
libOpenSLES \
libpdfium \
libpower \
libpowermanager \
libradio_metadata \
librtp_jni \
libsensorservice \
libsfplugin_ccodec \
libskia \
libsonic \
libsonivox \
libsoundpool \
libspeexresampler \
libsqlite \
libstagefright \
libstagefright_foundation \
libstagefright_omx \
libstdc++ \
libsysutils \
libui \
libusbhost \
libutils \
libvintf_jni \
libvulkan \
libwilhelm \
linker \
llkd \
lmkd \
LocalTransport \
locksettings \
logcat \
logd \
lpdump \
lshal \
mdnsd \
mediacodec.policy \
mediaextractor \
mediametrics \
media_profiles_V1_0.dtd \
MediaProviderLegacy \
mediaserver \
mke2fs \
mkfs.erofs \
monkey \
misctrl \
mtectrl \
ndc \
netd \
NetworkStack \
odsign \
org.apache.http.legacy \
otacerts \
PackageInstaller \
package-shareduid-allowlist.xml \
passwd_system \
perfetto \
perfetto-extras \
ping \
ping6 \
pintool \
platform.xml \
pm \
preinstalled-packages-asl-files.xml \
preinstalled-packages-platform.xml \
preinstalled-packages-strict-signature.xml \
printflags \
privapp-permissions-platform.xml \
prng_seeder \
recovery-persist \
resize2fs \
rss_hwm_reset \
run-as \
sanitizer.libraries.txt \
schedtest \
screencap \
sdcard \
secdiscard \
SecureElement \
selinux_policy_system \
sensorservice \
service \
servicemanager \
services \
settings \
SettingsProvider \
sfdo \
sgdisk \
Shell \
shell_and_utilities_system \
sm \
snapshotctl \
snapuserd \
storaged \
surfaceflinger \
svc \
task_profiles.json \
tc \
telecom \
telephony-common \
tombstoned \
traced \
traced_probes \
tune2fs \
uiautomator \
uinput \
uncrypt \
uprobestats \
usbd \
vdc \
vintf \
voip-common \
vold \
watchdogd \
wificond \
wifi.rc \
wm \
# When we release crashrecovery module
ifeq ($(RELEASE_CRASHRECOVERY_MODULE),true)
PRODUCT_PACKAGES += \
com.android.crashrecovery \
endif
# These packages are not used on Android TV
ifneq ($(PRODUCT_IS_ATV),true)
PRODUCT_PACKAGES += \
$(RELEASE_PACKAGE_SOUND_PICKER) \
endif
# Product does not support Dynamic System Update
ifneq ($(PRODUCT_NO_DYNAMIC_SYSTEM_UPDATE),true)
PRODUCT_PACKAGES += \
DynamicSystemInstallationService \
endif
# Check if the build supports NFC apex or not
ifeq ($(RELEASE_PACKAGE_NFC_STACK),NfcNci)
PRODUCT_PACKAGES += \
framework-nfc \
NfcNci
else
PRODUCT_PACKAGES += \
com.android.nfcservices
endif
# Check if the build supports Profiling module
ifeq ($(RELEASE_PACKAGE_PROFILING_MODULE),true)
PRODUCT_PACKAGES += \
com.android.profiling \
trace_redactor
endif
ifeq ($(RELEASE_USE_WEBVIEW_BOOTSTRAP_MODULE),true)
PRODUCT_PACKAGES += \
com.android.webview.bootstrap
endif
# VINTF data for system image
PRODUCT_PACKAGES += \
system_manifest.xml \
system_compatibility_matrix.xml \
# Base modules when shipping api level is less than or equal to 34
PRODUCT_PACKAGES_SHIPPING_API_LEVEL_34 += \
android.hidl.memory@1.0-impl \
# hwservicemanager is now installed on system_ext, but apexes might be using
# old libraries that are expecting it to be installed on system. This allows
# those apexes to continue working. The symlink can be removed once we are sure
# there are no devices using hwservicemanager (when Android V launching devices
# are no longer supported for dessert upgrades).
PRODUCT_PACKAGES += \
hwservicemanager_compat_symlink_module \
PRODUCT_PACKAGES_ARM64 := libclang_rt.hwasan \
libclang_rt.hwasan.bootstrap \
libc_hwasan \
# Jacoco agent JARS to be built and installed, if any.
ifeq ($(EMMA_INSTRUMENT),true)
ifneq ($(EMMA_INSTRUMENT_STATIC),true)
# For instrumented build, if Jacoco is not being included statically
# in instrumented packages then include Jacoco classes in the product
# packages.
PRODUCT_PACKAGES += jacocoagent
ifneq ($(EMMA_INSTRUMENT_FRAMEWORK),true)
# For instrumented build, if Jacoco is not being included statically
# in instrumented packages and has not already been included in the
# bootclasspath via ART_APEX_JARS then include Jacoco classes into the
# bootclasspath.
PRODUCT_BOOT_JARS += jacocoagent
endif # EMMA_INSTRUMENT_FRAMEWORK
endif # EMMA_INSTRUMENT_STATIC
endif # EMMA_INSTRUMENT
ifeq (,$(DISABLE_WALLPAPER_BACKUP))
PRODUCT_PACKAGES += \
WallpaperBackup
endif
PRODUCT_PACKAGES += \
libEGL_angle \
libGLESv1_CM_angle \
libGLESv2_angle
# For testing purposes
ifeq ($(FORCE_AUDIO_SILENT), true)
PRODUCT_SYSTEM_PROPERTIES += ro.audio.silent=1
endif
# Host tools to install
PRODUCT_HOST_PACKAGES += \
BugReport \
adb \
adevice \
art-tools \
atest \
bcc \
bit \
dump.erofs \
e2fsck \
fastboot \
flags_health_check \
fsck.erofs \
icu-data_host_i18n_apex \
icu_tzdata.dat_host_tzdata_apex \
idmap2 \
incident_report \
ld.mc \
lpdump \
mke2fs \
mkfs.erofs \
resize2fs \
sgdisk \
sqlite3 \
tinyplay \
tune2fs \
unwind_info \
unwind_reg_info \
unwind_symbols \
tzdata_host \
tzdata_host_tzdata_apex \
tzlookup.xml_host_tzdata_apex \
tz_version_host \
tz_version_host_tzdata_apex \
PRODUCT_PACKAGES += init.usb.rc init.usb.configfs.rc
PRODUCT_PACKAGES += etc_hosts
PRODUCT_PACKAGES += init.zygote32.rc
PRODUCT_VENDOR_PROPERTIES += ro.zygote?=zygote32
PRODUCT_SYSTEM_PROPERTIES += debug.atrace.tags.enableflags=0
PRODUCT_SYSTEM_PROPERTIES += persist.traced.enable=1
# Packages included only for eng or userdebug builds, previously debug tagged
PRODUCT_PACKAGES_DEBUG := \
adb_keys \
adevice_fingerprint \
arping \
dmuserd \
evemu-record \
idlcli \
init-debug.rc \
iotop \
iperf3 \
iw \
layertracegenerator \
libclang_rt.ubsan_standalone \
logpersist.start \
logtagd.rc \
ot-cli-ftd \
ot-ctl \
procrank \
profcollectd \
profcollectctl \
record_binder \
servicedispatcher \
showmap \
sqlite3 \
ss \
start_with_lockagent \
strace \
sanitizer-status \
tracepath \
tracepath6 \
traceroute6 \
unwind_info \
unwind_reg_info \
unwind_symbols \
ifeq ($(TEQUILA_BUILD),)
PRODUCT_PACKAGES_DEBUG += \
su
endif
# The set of packages whose code can be loaded by the system server.
PRODUCT_SYSTEM_SERVER_APPS += \
SettingsProvider \
ifeq (,$(DISABLE_WALLPAPER_BACKUP))
PRODUCT_SYSTEM_SERVER_APPS += \
WallpaperBackup
endif
PRODUCT_PACKAGES_DEBUG_JAVA_COVERAGE := \
libdumpcoverage
PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
frameworks/base/config/preloaded-classes:system/etc/preloaded-classes)
# Enable dirty image object binning to reduce dirty pages in the image.
PRODUCT_PACKAGES += dirty-image-objects
# Enable go/perfetto-persistent-tracing for eng builds
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PRODUCT_PROPERTIES += persist.debug.perfetto.persistent_sysui_tracing_for_bugreport=1
endif
$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk)
# Ensure all trunk-stable flags are available.
$(call inherit-product, $(SRC_TARGET_DIR)/product/build_variables.mk)
# Use "image" APEXes always.
$(call inherit-product,$(SRC_TARGET_DIR)/product/updatable_apex.mk)
$(call soong_config_set, bionic, large_system_property_node, $(RELEASE_LARGE_SYSTEM_PROPERTY_NODE))
$(call soong_config_set, SettingsLib, legacy_avatar_picker_app_enabled, $(if $(RELEASE_AVATAR_PICKER_APP),,true))