blob: 29a2e944a37e9dc90ec79c5e1dafe321d9c27b1e [file] [log] [blame]
#For QSSI, we build only the system image. Here we explicitly set the images
#we build so there is no confusion.
TARGET_BOARD_PLATFORM := qssi
TARGET_BOOTLOADER_BOARD_NAME := qssi
# Skip VINTF checks for kernel configs since we do not have kernel source
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false
#Enable product partition Native I/F. It is automatically set to current if
#the shipping API level for the target is greater than 29
PRODUCT_PRODUCT_VNDK_VERSION := current
RELAX_USES_LIBRARY_CHECK := true
NEED_AIDL_NDK_PLATFORM_BACKEND := true
#Enable product partition Java I/F. It is automatically set to true if
#the shipping API level for the target is greater than 29
PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE := true
PRODUCT_BUILD_SYSTEM_IMAGE := true
PRODUCT_BUILD_SYSTEM_OTHER_IMAGE := false
PRODUCT_BUILD_VENDOR_IMAGE := false
PRODUCT_BUILD_SYSTEM_EXT_IMAGE := false
PRODUCT_BUILD_ODM_IMAGE := false
PRODUCT_BUILD_CACHE_IMAGE := false
PRODUCT_BUILD_USERDATA_IMAGE := false
# Enable debugfs restrictions
PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
#Also, there is no need to build an OTA package as this will be done later
#when we combine this system build with the non-system images.
TARGET_SKIP_OTA_PACKAGE := true
# Enable AVB 2.0
BOARD_AVB_ENABLE := true
#### Dynamic Partition Handling
####
# Retain the earlier default behavior i.e. ota config (dynamic partition was disabled if not set explicitly), so set
# SHIPPING_API_LEVEL to 28 if it was not set earlier (this is generally set earlier via build.sh per-target)
SHIPPING_API_LEVEL := 33
$(call inherit-product-if-exists, vendor/qcom/defs/product-defs/system/cne_url*.mk)
#### Turning BOARD_DYNAMIC_PARTITION_ENABLE flag to TRUE will enable dynamic partition/super image creation.
# Enable Dynamic partitions only for Q new launch devices and beyond.
ifeq (true,$(call math_gt_or_eq,$(SHIPPING_API_LEVEL),29))
BOARD_DYNAMIC_PARTITION_ENABLE ?= true
PRODUCT_SHIPPING_API_LEVEL := $(SHIPPING_API_LEVEL)
else ifeq ($(SHIPPING_API_LEVEL),28)
BOARD_DYNAMIC_PARTITION_ENABLE ?= false
$(call inherit-product, build/make/target/product/product_launched_with_p.mk)
endif
ifneq ($(strip $(BOARD_DYNAMIC_PARTITION_ENABLE)),true)
# Enable chain partition for system, to facilitate system-only OTA in Treble.
BOARD_AVB_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
BOARD_AVB_SYSTEM_ALGORITHM := SHA256_RSA2048
BOARD_AVB_SYSTEM_ROLLBACK_INDEX := 0
BOARD_AVB_SYSTEM_ROLLBACK_INDEX_LOCATION := 2
PRODUCT_BUILD_RAMDISK_IMAGE := false
PRODUCT_BUILD_PRODUCT_IMAGE := false
else
PRODUCT_USE_DYNAMIC_PARTITIONS := true
# Disable building the SUPER partition in this build. SUPER should be built
# after QSSI has been merged with the SoC build.
PRODUCT_BUILD_SYSTEM_EXT_IMAGE := true
PRODUCT_BUILD_PRODUCT_IMAGE := true
PRODUCT_BUILD_SUPER_PARTITION := false
PRODUCT_BUILD_RAMDISK_IMAGE := true
BOARD_AVB_VBMETA_SYSTEM := system system_ext product
BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 2
endif
#### Dynamic Partition Handling
PRODUCT_SOONG_NAMESPACES += \
hardware/google/av \
hardware/google/interfaces
VENDOR_QTI_PLATFORM := qssi
VENDOR_QTI_DEVICE := qssi
#QSSI configuration
#Single system image project structure
TARGET_USES_QSSI := true
TARGET_USES_NEW_ION := true
ENABLE_AB ?= true
# Enable virtual-ab by default. liquan.zhou.t2m. 20220507.
ENABLE_VIRTUAL_AB := true
TARGET_DEFINES_DALVIK_HEAP := true
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, device/qcom/qssi/common64.mk)
#Inherit all except heap growth limit from phone-xhdpi-2048-dalvik-heap.mk
PRODUCT_PROPERTY_OVERRIDES += \
dalvik.vm.heapstartsize=8m \
dalvik.vm.heapsize=512m \
dalvik.vm.heaptargetutilization=0.75 \
dalvik.vm.heapminfree=512k \
dalvik.vm.heapmaxfree=8m
PRODUCT_NAME := $(VENDOR_QTI_DEVICE)
PRODUCT_DEVICE := $(VENDOR_QTI_DEVICE)
PRODUCT_BRAND := Fairphone
PRODUCT_MODEL := FP4
PRODUCT_MANUFACTURER := Fairphone
MAINLINE_PATCH_LEVEL_1 := true
# MODIFIED-BEGIN by Gu xiaocong, 2019-12-04,BUG-8671753
# OVERRIDE_TARGET_PRODUCT change
OVERRIDE_TARGET_PRODUCT := FP4eea
OVERRIDE_TARGET_DEVICE := FP4
# MODIFIED-END by Gu xiaocong,BUG-8671753
PRODUCT_EXTRA_VNDK_VERSIONS := 30 31 32
ifeq ($(TARGET_BUILD_VARIANT),user)
PRODUCT_DEFAULT_DEV_CERTIFICATE := build/make/target/product/security_release/releasekey
else
PRODUCT_DEFAULT_DEV_CERTIFICATE := build/make/target/product/security/testkey
endif
#Initial bringup flags
TARGET_USES_AOSP := false
TARGET_USES_AOSP_FOR_AUDIO := false
TARGET_USES_QCOM_BSP := false
# RRO configuration
TARGET_USES_RRO := true
# change density to 400
ro.sf.lcd_density=400
#[BUGFIX]-MOD-BEGIN by T2M.ZhangJie,12/08/2020,10277814,
TARGET_USES_NQ_NFC := false
#[BUGFIX]-MOD-END by T2M.ZhangJie
# default is nosdcard, S/W button enabled in resource
PRODUCT_CHARACTERISTICS := nosdcard
BOARD_FRP_PARTITION_NAME := frp
#Android EGL implementation
PRODUCT_PACKAGES += libGLES_android
PRODUCT_PACKAGES += fsck.exfat
PRODUCT_PACKAGES += mkfs.exfat
PRODUCT_BOOT_JARS += tcmiface
PRODUCT_BOOT_JARS += telephony-ext
PRODUCT_PACKAGES += telephony-ext
TARGET_ENABLE_QC_AV_ENHANCEMENTS := false
TARGET_SYSTEM_PROP += device/qcom/qssi/system.prop
TARGET_DISABLE_DASH := true
TARGET_DISABLE_QTI_VPP := true
ifneq ($(TARGET_DISABLE_DASH), true)
PRODUCT_BOOT_JARS += qcmediaplayer
endif
#Project is missing on sdm845, comment it for now
#ifneq ($(strip $(QCPATH)),)
# PRODUCT_BOOT_JARS += libprotobuf-java_mls
#endif
PRODUCT_PACKAGES += android.hardware.media.omx@1.0-impl
# Audio configuration file
-include $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/qssi/qssi.mk
-include $(TOPDIR)vendor/qcom/opensource/commonsys/audio/configs/qssi/qssi.mk
-include $(TOPDIR)vendor/st/nfc/st21nfc/NfcDeviceConfig.mk
AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true
USE_LIB_PROCESS_GROUP := true
PRODUCT_PACKAGES += fs_config_files
# [TCT-NB][FOTA] MODIFIED-BEGIN by JI.Chen,2021/07/21, add update_engine_sideload for recovery mode
ifeq ($(ENABLE_AB), true)
#A/B related packages
PRODUCT_PACKAGES += update_engine \
update_engine_client \
update_engine_sideload \
update_verifier \
bootctrl.msmnile \
android.hardware.boot@1.0-impl \
android.hardware.boot@1.0-service
PRODUCT_HOST_PACKAGES += \
brillo_update_payload
#Boot control HAL test app
PRODUCT_PACKAGES_DEBUG += bootctl
endif
#Healthd packages
PRODUCT_PACKAGES += \
android.hardware.health@1.0-impl \
android.hardware.health@1.0-convert \
android.hardware.health@1.0-service \
libhealthd.msm
DEVICE_FRAMEWORK_MANIFEST_FILE := device/qcom/qssi/framework_manifest.xml
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := vendor/qcom/opensource/core-utils/vendor_framework_compatibility_matrix.xml
#audio related module
PRODUCT_PACKAGES += libvolumelistener
# Display/Graphics
PRODUCT_PACKAGES += \
android.hardware.configstore@1.0-service \
android.hardware.broadcastradio@1.0-impl
# Camera configuration file. Shared by passthrough/binderized camera HAL
PRODUCT_PACKAGES += camera.device@3.2-impl
PRODUCT_PACKAGES += camera.device@1.0-impl
PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-impl
# Enable binderized camera HAL
PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-service_64
# Context hub HAL
PRODUCT_PACKAGES += \
android.hardware.contexthub@1.0-impl.generic \
android.hardware.contexthub@1.0-service
# system prop for enabling QFS (QTI Fingerprint Solution)
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.qfp=true
PRODUCT_SYSTEM_PROPERTIES += \
persist.device_config.runtime_native_boot.iorap_perfetto_enable=true
#FP4-263, mfg_util, liquan.zhou.t2m, 20210510
PRODUCT_PACKAGES += mfg_util
PRODUCT_PACKAGES += mfg_utild
PRODUCT_PACKAGES += fpconfig_util
# add for mmitest in user version
ifeq ($(TARGET_BUILD_VARIANT),user)
PRODUCT_PACKAGES += mm-audio-ftm
endif
# end
#MMITest
#PRODUCT_PACKAGES += MMITest
#EmailPartnerProvider
PRODUCT_PACKAGES += EmailPartnerProvider
ifeq ($(TARGET_BUILD_MMITEST),false)
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.telephony.euicc.xml:system/etc/permissions/android.hardware.telephony.euicc.xml \
frameworks/native/data/etc/com_google_lens_feature.xml:system/etc/permissions/com_google_lens_feature.xml
PRODUCT_PACKAGES += EuiccGoogle T2mEuiccOverlay
endif
PRODUCT_COPY_FILES += device/qcom/qssi/fp4/google_clientidbase_config/google_clientidbase.rc:$(TARGET_COPY_OUT_SYSTEM)/etc/init/google_clientidbase.rc
#MMITest
PRODUCT_PACKAGES += MMITest
#Iris
PRODUCT_PACKAGES += Iris
# USB default HAL
PRODUCT_PACKAGES += \
android.hardware.usb@1.0-service
#PASR HAL and APP
PRODUCT_PACKAGES += \
vendor.qti.power.pasrmanager@1.0-service \
vendor.qti.power.pasrmanager@1.0-impl \
pasrservice
# Kernel modules install path
KERNEL_MODULES_INSTALL := dlkm
KERNEL_MODULES_OUT := out/target/product/$(PRODUCT_NAME)/$(KERNEL_MODULES_INSTALL)/lib/modules
ifneq ($(strip $(TARGET_BUILD_VARIANT)),user)
PRODUCT_COPY_FILES += \
device/qcom/qssi/init.qcom.testscripts.sh:$(TARGET_COPY_OUT_PRODUCT)/etc/init.qcom.testscripts.sh
endif
PRODUCT_COPY_FILES += \
device/qcom/qssi/public.libraries.product-qti.txt:$(TARGET_COPY_OUT_PRODUCT)/etc/public.libraries-qti.txt
# copy system_ext specific whitelisted libraries to system_ext/etc
PRODUCT_COPY_FILES += \
device/qcom/qssi/public.libraries.system_ext-qti.txt:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/public.libraries-qti.txt
#ThemePicker permissions
PRODUCT_COPY_FILES +=\
device/qcom/qssi/privapp-permissions-wallpaper.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/privapp-permissions-wallpaper.xml
#PRODUCT_COPY_FILES += \
#device/qcom/qssi/aw882xx_cali:system/bin/aw882xx_cali
#zxz add for qnovo qns 3rd part charge algorithm service
#PRODUCT_COPY_FILES += \
#device/qcom/lito/fp4/qnovo/qns:system/bin/qns
#Enable full treble flag
PRODUCT_FULL_TREBLE_OVERRIDE := true
PRODUCT_VENDOR_MOVE_ENABLED := true
PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true
#ifneq ($(strip $(TARGET_USES_RRO)),true)
DEVICE_PACKAGE_OVERLAYS += device/qcom/qssi/overlay
#endif
PRODUCT_PACKAGES += FairphoneActivator
PRODUCT_PACKAGES += privapp_permissions_FairphoneActivator
PRODUCT_PACKAGES += FAIRPHONE.html.gz
PRODUCT_PACKAGES += FAIRPHONE.png
#Enable vndk-sp Libraries
PRODUCT_PACKAGES += vndk_package
#Enable sysrilcmd
PRODUCT_PACKAGES += \
qcrilhook \
qcrilhook.xml \
sysrilcmd \
sysrilcmd.xml
PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE:=true
TARGET_MOUNT_POINTS_SYMLINKS := false
TARGET_USES_MKE2FS := true
PRODUCT_PROPERTY_OVERRIDES += \
ro.crypto.volume.filenames_mode = "aes-256-cts" \
ro.crypto.allow_encrypt_override = true
TARGET_USES_QCOM_DISPLAY_BSP := true
ifeq ($(TARGET_USES_NEW_ION),true)
AUDIO_FEATURE_ENABLED_DLKM := true
else
AUDIO_FEATURE_ENABLED_DLKM := false
endif
ifeq ($(TARGET_BUILD_MMITEST),false)
$(call inherit-product-if-exists, vendor/partner_gms/products/gms_eea_v2_type4c.mk)
$(call inherit-product-if-exists, vendor/partner_modules/build/mainline_modules.mk)
endif
# Enable virtual A/B compression
$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/android_t_baseline.mk)
PRODUCT_VIRTUAL_AB_COMPRESSION_METHOD := gz
PRODUCT_PACKAGES += WallpaperPicker
PRODUCT_PACKAGES += ThemePicker
PRODUCT_PACKAGES += ThemesStub
PRODUCT_PACKAGES += FPCamera
PRODUCT_PACKAGES += PlayAutoInstallStub
PRODUCT_PACKAGES += MyFairPhone
PRODUCT_PACKAGES += EuiccOverlay
PRODUCT_PACKAGES += SetupWizardOverlay
# Include mainline components and QSSI whitelist
ifeq (true,$(call math_gt_or_eq,$(SHIPPING_API_LEVEL),29))
$(call inherit-product, device/qcom/qssi/qssi_whitelist.mk)
PRODUCT_ARTIFACT_PATH_REQUIREMENT_IGNORE_PATHS := /system/system_ext/
PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := true
endif
ifeq ($(TARGET_BUILD_MMITEST),true)
PRODUCT_PACKAGES += Robust \
robustd \
memtester \
libwifi_robust_jni \
libwifitestmodejni \
TctWlanTestMode
endif
PRODUCT_PACKAGES += libexif
PRODUCT_PACKAGES += \
smcd \
OneTouchFeedback
#PRODUCT_COPY_FILES +=\
#device/qcom/lito/tuxera/exfatck:system/bin/exfatck \
#device/qcom/lito/tuxera/exfatdebug:system/bin/exfatdebug \
#device/qcom/lito/tuxera/exfatlabel:system/bin/exfatlabel \
#device/qcom/lito/tuxera/exfatvsn:system/bin/exfatvsn \
#device/qcom/lito/tuxera/mkexfat:system/bin/mkexfat
PRODUCT_PACKAGES += \
exfatck \
exfatdebug \
exfatlabel \
exfatvsn \
mkexfat \
aw882xx_cali
#ifeq ($(TARGET_BUILD_VARIANT),user)
#$(warning "exFat kernel module in user Build")
#$(shell cp -f device/qcom/lito/tuxera/texfat.user.unsigned.ko device/qcom/lito/tuxera/texfat.unsigned.ko)
#else
#$(warning "exFat kernel module in userdebug Build")
#$(shell cp -f device/qcom/lito/tuxera/texfat.userdebug.unsigned.ko device/qcom/lito/tuxera/texfat.unsigned.ko)
#endif
#PSI config
PRODUCT_PACKAGES += \
PSI \
psi_config.json
PRODUCT_PACKAGES += \
smcd \
OneTouchFeedback
PRODUCT_COPY_FILES += \
device/qcom/qssi/splash/bootanimation.zip:system/media/bootanimation.zip
PRODUCT_COPY_FILES += \
device/qcom/qssi/default-permissions-fp4t.xml:system_ext/etc/default-permissions/default-permissions-fp4t.xml
###################################################################################
# This is the End of target.mk file.
# Now, Pickup other split product.mk files:
###################################################################################
$(call inherit-product-if-exists, vendor/qcom/defs/product-defs/system/*.mk)
###################################################################################
$(call inherit-product-if-exists, device/t2m/common/qssi.mk)
$(call inherit-product-if-exists, vendor/customer_carrier/customer_carrier.mk)