#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)
