# Copyright 2021-2022 Fairphone B.V.
#
# 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.
#

FP_PATH := device/fairphone/FP3

# Disable data roaming by default
PRODUCT_VENDOR_PROPERTIES += \
	ro.com.android.dataroaming=false

# Call the vendor setup
$(call inherit-product-if-exists, vendor/fairphone/fp3-common/device-vendor.mk)

$(call inherit-product, build/make/target/product/product_launched_with_p.mk)

$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)

# Inherit generic AOSP content for telephony based 64-bit devices
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)

PRODUCT_NAME := FP3
PRODUCT_DEVICE := FP3
PRODUCT_MODEL := FP3
PRODUCT_MANUFACTURER := Fairphone
PRODUCT_BRAND := Fairphone


# Allow using custom and expressive names for our Android flavors while in fact
# targeting the same model with all of them.
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_MODEL=FP3 PRODUCT_NAME=FP3 TARGET_PRODUCT=FP3


TARGET_SYSTEM_PROP := $(FP_PATH)/system.prop

# Define the build number based on the product flavour and on the build manifest
# revision
ifneq (,$(strip $(PRODUCT_FLAVOR)))
  _BUILD_MANIFEST_REV := $(shell (git -C $(TOPDIR).repo/manifests rev-parse --short=8 HEAD))
  BUILD_NUMBER := $(PRODUCT_FLAVOR)-$(_BUILD_MANIFEST_REV)
  HAS_BUILD_NUMBER := true
else
  $(error PRODUCT_FLAVOR must be defined)
endif


# Define SPL for boot & vendor
BOOT_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)
VENDOR_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)


# Set system properties identifying the chipset
PRODUCT_VENDOR_PROPERTIES += ro.soc.manufacturer=QTI
PRODUCT_VENDOR_PROPERTIES += ro.soc.model=SDM450


# We don't have the calibration data as this sort of
# data can only be generated at the factory so don't generate persist.img
FP3_SKIP_PERSIST_IMG := true


# Operator specific overlays
DEVICE_PACKAGE_OVERLAYS += \
	$(LOCAL_PATH)/overlay-operators

# Overlays
DEVICE_PACKAGE_OVERLAYS += \
	$(LOCAL_PATH)/overlay


# A/B related defines
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS := \
	aboot \
	cmnlib64 \
	cmnlib \
	devcfg \
	dsp \
	dtbo \
	keymaster \
	lksecapp \
	mdtp \
	modem \
	rpm \
	sbl1 \
	tz \
	vbmeta \
	boot \
	system \
	vendor


PRODUCT_PACKAGES += \
	update_engine_sideload

# Dynamic Partition
# Enable retrofit dynamic partitions for FP3
PRODUCT_USE_DYNAMIC_PARTITIONS := true
PRODUCT_RETROFIT_DYNAMIC_PARTITIONS := true

# Additional OTA partitions
ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS), true)
AB_OTA_PARTITIONS += \
	odm \
	product \
	system_ext

# Check OTA update status
PRODUCT_PACKAGES += check_dynamic_partitions

# Ramdisk fstab file
PRODUCT_PACKAGES += fstab_ramdisk.qcom

AB_OTA_POSTINSTALL_CONFIG += \
	RUN_POSTINSTALL_product=true \
	POSTINSTALL_PATH_product=bin/check_dynamic_partitions \
	FILESYSTEM_TYPE_product=ext4 \
	POSTINSTALL_OPTIONAL_product=false

endif

# APN
PRODUCT_COPY_FILES += \
	$(LOCAL_PATH)/apns-conf.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/apns-conf.xml


# AVB
BOARD_AVB_ENABLE := true


# Additional native libraries
PRODUCT_COPY_FILES += \
	$(FP_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt


# OEM Unlock reporting
PRODUCT_VENDOR_PROPERTIES += \
	ro.oem_unlock_supported=1


# Atrace HAL
PRODUCT_PACKAGES += \
	android.hardware.atrace@1.0-service


# Audio
PRODUCT_PACKAGES += \
	android.hardware.audio@7.0 \
	android.hardware.audio.common@7.0 \
	android.hardware.audio.common@7.0-util \
	android.hardware.audio@7.0-impl \
	android.hardware.audio.effect@7.0 \
	android.hardware.audio.effect@7.0-impl \
	android.hardware.audio.service \
	android.hardware.soundtrigger@2.1-impl \
	audio.primary.msm8953 \
	audio.r_submix.default \
	audio.usb.default \
	libaacwrapper \
	libaudio-resampler \
	libautohal \
	libqcompostprocbundle \
	libqcomvisualizer \
	libqcomvoiceprocessing \
	libvolumelistener \
	tinymix


AUDIO_HAL_PATH := hardware/qcom/audio

# Audio files
PRODUCT_COPY_FILES += \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_sku3_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_sku3_tasha.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_sku4.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_sku4.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tasha.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tashalite.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \
	$(AUDIO_HAL_PATH)/configs/msm8953/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
	$(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_mtp.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_sku3_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_sku3_tasha.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_sku4.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_sku4.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tashalite.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_mixer_paths_wcd9306.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9306.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_mixer_paths_wcd9330.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9330.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
	$(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml


# Audio config files
PRODUCT_COPY_FILES += \
	frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration_7_0.xml \
	frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
	frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml \
	frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
	frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
	frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml

# Custom config files
PRODUCT_COPY_FILES += \
	$(FP_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml


# Audio firmware files
PRODUCT_COPY_FILES += \
	$(FP_PATH)/aw/aw8898_cfg.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/aw8898_cfg.bin \
	$(FP_PATH)/tas2557_fw/OBO_0617_music.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/tas2557_uCDSP.bin \
	$(FP_PATH)/tas2557_fw/tas2557evm_OBO_0617.ftcfg:$(TARGET_COPY_OUT_VENDOR)/firmware/tas2557evm_aacspk_a.ftcfg


# Audio Specific device overlays
DEVICE_PACKAGE_OVERLAYS += $(AUDIO_HAL_PATH)/configs/common/overlay


# Audio Specific properties
# Properties
-include $(LOCAL_PATH)/audio_properties.mk


# Audio Kernel modules
AUDIO_DLKM := audio_apr.ko
AUDIO_DLKM += audio_q6_notifier.ko
AUDIO_DLKM += audio_adsp_loader.ko
AUDIO_DLKM += audio_q6.ko
AUDIO_DLKM += audio_usf.ko
AUDIO_DLKM += audio_pinctrl_wcd.ko
AUDIO_DLKM += audio_swr.ko
AUDIO_DLKM += audio_wcd_core.ko
AUDIO_DLKM += audio_swr_ctrl.ko
AUDIO_DLKM += audio_wsa881x.ko
AUDIO_DLKM += audio_wsa881x_analog.ko
AUDIO_DLKM += audio_platform.ko
AUDIO_DLKM += audio_cpe_lsm.ko
AUDIO_DLKM += audio_hdmi.ko
AUDIO_DLKM += audio_stub.ko
AUDIO_DLKM += audio_wcd9xxx.ko
AUDIO_DLKM += audio_mbhc.ko
AUDIO_DLKM += audio_wcd9335.ko
AUDIO_DLKM += audio_wcd_cpe.ko
AUDIO_DLKM += audio_digital_cdc.ko
AUDIO_DLKM += audio_analog_cdc.ko
AUDIO_DLKM += audio_native.ko
AUDIO_DLKM += audio_machine_sdm450.ko
AUDIO_DLKM += audio_machine_ext_sdm450.ko
PRODUCT_PACKAGES += $(AUDIO_DLKM)


# Automation/ATS
PRODUCT_PACKAGES += \
	automation_setup \
	automation_adb_setup


# ANT
PRODUCT_PACKAGES += \
	AntHalService \
	antradio_app \
	com.dsi.ant@1.0 \
	com.dsi.ant@1.0.vendor \
	libantradio

# Bluetooth
PRODUCT_PACKAGES += \
	audio.bluetooth.default \
	android.hardware.bluetooth.audio@2.0-impl \
	android.hardware.bluetooth@1.0 \
	vendor.qti.hardware.bluetooth_audio@2.0 \
	vendor.qti.hardware.bluetooth_audio@2.1.vendor

# Bluetooth Permissions
PRODUCT_COPY_FILES += \
	frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \
	frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml

# Bluetooth Properties
# Hearing Aid Audio Support Using Bluetooth LE
PRODUCT_PRODUCT_PROPERTIES += \
	bluetooth.profile.asha.central.enabled=true


# Board platforms lists to be used for
# TARGET_BOARD_PLATFORM specific featurization
QCOM_BOARD_PLATFORMS += msm8953


# Boot
PRODUCT_PACKAGES += \
	android.hardware.boot@1.0-impl \
	android.hardware.boot@1.0-impl.recovery \
	android.hardware.boot@1.0-service \
	bootctrl.msm8953 \
	bootctrl.msm8953.recovery \
	update_engine \
	update_engine_client \
	update_engine_sideload \
	update_verifier

# MSM updater library
PRODUCT_PACKAGES += librecovery_updater_msm


# Skip boot jars check
SKIP_BOOT_JARS_CHECK := true


# Boot animation
TARGET_SCREEN_HEIGHT := 2160
TARGET_SCREEN_WIDTH := 1080


PRODUCT_COPY_FILES += \
	vendor/fairphone/media/bootanimation/bootanimation.zip:$(TARGET_COPY_OUT_PRODUCT)/media/bootanimation.zip


# Camera
PRODUCT_PACKAGES += \
	android.frameworks.displayservice@1.0.vendor \
	android.hidl.base@1.0.vendor \
	android.hardware.camera.device@3.5 \
	android.hardware.camera.provider@2.4 \
	android.hardware.camera.provider@2.4-external \
	android.hardware.camera.provider@2.4-impl \
	android.hardware.camera.provider@2.4-legacy \
	android.hardware.camera.provider@2.4-service \
	android.hardware.camera.provider@2.6 \
	camera.device@1.0-impl \
	camera.device@3.5-impl \
	camera.device@3.6-external-impl \
	camera.msm8953 \
	libcamera2ndk_vendor \
	libhal_dbg \
	libjni_burstpmk \
	libjni_imageutil \
	libjni_snapcammosaic \
	libjni_snapcamtinyplanet \
	libmm-qcamera \
	libmmcamera_interface \
	libmmjpeg_interface \
	libmmlib2d_interface \
	libqomx_core \
	libxml2 \
	mm-qcamera-app \
	vendor.qti.hardware.camera.device@1.0 \
	vendor.qti.hardware.camera.device@1.0.vendor

# Fairphone Camera
PRODUCT_PACKAGES += \
	FairphoneCamera

# Arcsoft camera libraries
PRODUCT_PACKAGES += \
	libarcimageprocess \
	libarcsoft_aiscenedetection \
	libarcsoft_hdr_detection \
	libarcsoft_high_dynamic_range \
	libarcsoft_low_light_hdr \
	libarcsoft_low_light_shot \
	libarcsoft_object_tracking \
	libarcsoft_panorama_burstcapture \
	libarcsoft_singlecam_bokeh \
	libarcsoft_videoautozoom \
	libarcsoft_videostabs \
	libmpbase \
	libmpbase.vendor

# Feature flags for camera
PRODUCT_COPY_FILES += \
	frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
	frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
	frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
	frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml


# Component overrides
PRODUCT_COPY_FILES += \
	$(FP_PATH)/configs/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml


# Charger
PRODUCT_PACKAGES += \
	charger \
	charger_res_images


# Chromium
PRODUCT_PACKAGES += \
	libwebviewchromium_loader \
	libwebviewchromium_plat_support


# Curl
PRODUCT_PACKAGES += \
	curl \
	libcurl


# Data/rmnetctrl
PRODUCT_PACKAGES += \
	librmnetctl

# IPV4
PRODUCT_VENDOR_PROPERTIES += \
	persist.vendor.data.profile_update=true

PRODUCT_VENDOR_PROPERTIES += ro.telephony.iwlan_operation_mode=legacy


# Display
PRODUCT_PACKAGES += \
	android.hardware.graphics.allocator@2.0-impl \
	android.hardware.graphics.allocator@2.0-service \
	android.hardware.graphics.composer@2.1-service \
	android.hardware.graphics.mapper@2.0-impl-2.1 \
	android.hardware.memtrack@1.0-impl \
	android.hardware.memtrack@1.0-service \
	gralloc.default \
	gralloc.msm8953 \
	hwcomposer.msm8953 \
	libdisplayconfig \
	libdisplayconfig.qti \
	libdrm \
	libgralloc.qti \
	libqdMetaData \
	libqdutils \
	libvulkan \
	memtrack.msm8953 \
	vendor.qti.hardware.display.composer@3.0


# Vendor Display
# Disable skip validate
PRODUCT_VENDOR_PROPERTIES += \
	vendor.display.disable_skip_validate=1

PRODUCT_VENDOR_PROPERTIES += ro.hardware.vulkan=adreno
PRODUCT_VENDOR_PROPERTIES += ro.hardware.egl=adreno


# Display Properties
PRODUCT_AAPT_CONFIG := normal
PRODUCT_AAPT_PREF_CONFIG := xxhdpi


# DRM
PRODUCT_PACKAGES += \
	android.hardware.drm@1.4-service.clearkey


# Elabel
PRODUCT_PACKAGES += \
	eLabel.html.gz \
	eLabel1.png \
	eLabel2.png \
	FAIRPHONE.html.gz \
	FAIRPHONE.png


# Enable vndk-sp Libraries
PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true
TARGET_USES_MKE2FS := true

PRODUCT_PACKAGES += \
	vndk_package


# Encryption
PRODUCT_VENDOR_PROPERTIES += ro.crypto.allow_encrypt_override=true
PRODUCT_VENDOR_PROPERTIES += ro.crypto.volume.filenames_mode=aes-256-cts


# E2fsck
PRODUCT_PACKAGES += \
	e2fsck


# Fastbootd
PRODUCT_PACKAGES += fastbootd


# FBE support
PRODUCT_COPY_FILES += \
	$(FP_PATH)/init.qti.qseecomd.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qti.qseecomd.sh


# Feature flags and permissions
PRODUCT_COPY_FILES += \
	frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
	frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \
	frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \
	frameworks/native/data/etc/android.hardware.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.xml \
	frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
	frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
	frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
	frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \
	frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level-0.xml \
	frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_1.xml \
	frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
	frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
	frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
	frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \
	frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \
	frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \
	frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml \
	frameworks/native/data/etc/android.software.vulkan.deqp.level-2019-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
	frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml

# Fingerprint
PRODUCT_PACKAGES += \
	android.hardware.biometrics.fingerprint@2.1 \
	android.hardware.biometrics.fingerprint@2.1-service \
	elan_device.rc \
	fingerprint.default

# Fingerprint files
include $(FP_PATH)/elan_lib/fingerprint/elan_lib.mk

# Fingerprint feature flag
PRODUCT_COPY_FILES += \
	frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/android.hardware.fingerprint.xml


# Framework Detect
PRODUCT_PACKAGES += \
	libqti_vndfwk_detect \
	libqti_vndfwk_detect.vendor \
	libvndfwk_detect_jni.qti \
	libvndfwk_detect_jni.qti.vendor \
	vndservicemanager

# FRP
PRODUCT_VENDOR_PROPERTIES += ro.frp.pst=/dev/block/bootdevice/by-name/config


# HIDL
PRODUCT_PACKAGES += \
	android.hidl.base@1.0 \
	libhidltransport \
	libhidltransport.vendor \
	libhwbinder \
	libhwbinder.vendor


# GPS
BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := default
LOC_HIDL_VERSION := 4.0

PRODUCT_PACKAGES += \
	android.hardware.gnss@2.1-impl-qti \
	android.hardware.gnss@2.1-service-qti \
	libbatching \
	libgeofencing \
	libgnss \
	libjson \
	libwifi-hal-ctrl \
	libgps.utils

PRODUCT_PACKAGES += \
	flp.conf \
	gps.conf

# gps/location secuity configuration file
PRODUCT_COPY_FILES += \
	$(FP_PATH)/configs/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config

# Permissions
PRODUCT_COPY_FILES += \
	frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml

PRODUCT_VENDOR_PROPERTIES += \
	persist.backup.ntpServer=0.pool.ntp.org


# Health
PRODUCT_PACKAGES += \
	android.hardware.health@2.1-impl \
	android.hardware.health@2.1-impl.recovery \
	android.hardware.health@2.1-service

# IMS
PRODUCT_PACKAGES += \
	ims-ext-common \
	ims_ext_common.xml \
	ConfURIDialer


# Init
PRODUCT_PACKAGES += \
	fstab.qcom \
	init.class_main.sh \
	init.crda.sh \
	init.legacy_prop.rc \
	init.mdm.sh \
	init.qcom.class_core.sh \
	init.qcom.coex.sh \
	init.qcom.early_boot.sh \
	init.qcom.efs.sync.sh \
	init.qcom.factory.rc \
	init.qcom.post_boot.sh \
	init.qcom.rc \
	init.qcom.sdio.sh \
	init.qcom.sensors.sh \
	init.qcom.sh \
	init.qcom.usb.rc \
	init.qcom.usb.sh \
	init.recovery.qcom.rc \
	init.target.rc \
	init.veth_ipa_config.sh \
	qca6234-service.sh \
	ueventd.qcom.rc \
	vold.fstab

#intialise PRODUCT_PACKAGES_DEBUG list for debug modules
PRODUCT_PACKAGES_DEBUG += init.qcom.testscripts.sh

#Add init.qcom.test.rc to PRODUCT_PACKAGES_DEBUG list
PRODUCT_PACKAGES_DEBUG += init.qcom.test.rc
PRODUCT_PACKAGES_DEBUG += init.qcom.debug.sh

ifneq ($(strip $(TARGET_BUILD_VARIANT)),user)
PRODUCT_COPY_FILES += \
	$(FP_PATH)/rootdir/etc/init.qcom.testscripts.sh:$(TARGET_COPY_OUT_PRODUCT)/etc/init.qcom.testscripts.sh
endif

PRODUCT_PACKAGES_DEBUG += \
	init.qcom.debug.sh \
	init.qcom.debug-sdm660.sh \
	init.qcom.debug-sdm710.sh \
	init.qti.debug-msmnile-apps.sh \
	init.qti.debug-msmnile-modem.sh \
	init.qti.debug-msmnile-slpi.sh \
	init.qti.debug-talos.sh \
	init.qti.debug-msmnile.sh \
	init.qti.debug-kona.sh \
	init.qti.debug-lito.sh \
	init.qti.debug-trinket.sh \
	init.qti.debug-atoll.sh \
	init.qti.debug-lagoon.sh \
	init.qti.debug-bengal.sh


# IP and iptables
PRODUCT_PACKAGES += \
	ip \
	libiprouteutil \
	iptables \
	ip-up-vpn \
	libext


# IPACM
PRODUCT_PACKAGES += \
	ipacm \
	IPACM_cfg.xml \
	libipanat \
	liboffloadhal \
	libqsap_sdk

# IRQ
PRODUCT_COPY_FILES += \
	$(FP_PATH)/configs/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf \
	$(FP_PATH)/configs/msm_irqbalance_little_big.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance_little_big.conf


# Kernel modules
# Kernel modules install path
KERNEL_MODULES_INSTALL := dlkm
KERNEL_MODULES_OUT := out/target/product/$(PRODUCT_NAME)/$(KERNEL_MODULES_INSTALL)/lib/modules
KERNEL_TO_BUILD_ROOT_OFFSET := ../../


# Key layouts
PRODUCT_PACKAGES += \
	ft5x06_ts.kl \
	gpio-keys.kl \
	synaptics_dsx.kl \
	synaptics_dsxv26.kl \
	synaptics_rmi4_i2c.kl


# Keystore
PRODUCT_VENDOR_PROPERTIES += ro.hardware.keystore_desede=true


# LED packages
PRODUCT_PACKAGES += \
	android.hardware.light@2.0-impl \
	android.hardware.light@2.0-service \
	lights.msm8953


# Media / StagefrightCodec 2.0
PRODUCT_VENDOR_PROPERTIES += debug.stagefright.omx_default_rank=0

# Enable features in video HAL that can compile only on this platform
MSM_VIDC_TARGET_LIST := msm8953
TARGET_USES_MEDIA_EXTENSIONS := true


#
# media profiles and media codecs xmls
#
# We select non-default xmls in system partition with the properties.
PRODUCT_SYSTEM_PROPERTIES += \
	ro.media.xml_variant.codecs=_vendor \
	ro.media.xml_variant.profiles=_8953_v1

PRODUCT_COPY_FILES += \
	$(FP_PATH)/media/media_codecs_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor.xml \
	$(FP_PATH)/media/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \
	$(FP_PATH)/media/media_profiles_8953_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_8953_v1.xml

# media files for GSI - using default paths
PRODUCT_COPY_FILES += \
	$(FP_PATH)/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
	$(FP_PATH)/media/media_codecs_performance_8953.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
	$(FP_PATH)/media/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml

PRODUCT_COPY_FILES += \
	frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
	frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
	frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
	frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml \
	frameworks/av/media/libstagefright/data/media_codecs_google_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \
	frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
	frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.xml


# Disable media transcoding
PRODUCT_VENDOR_PROPERTIES += \
	persist.sys.fuse.transcode_user_control=true \
	persist.sys.fuse.transcode_enabled=false


# NFC
PRODUCT_PACKAGES += \
	NQNfcNci \
	Tag \
	com.android.nfc_extras \
	com.nxp.nfc.nq \
	com.nxp.nfc.nq.xml \
	libnqnfc-nci \
	libnqnfc_nci_jni \
	nfc_nci.nqx.default.hw \
	vendor.nxp.hardware.nfc@2.0-service

# Permissions
PRODUCT_COPY_FILES += \
	frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \
	frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.nfc_extras.xml \
	frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
	frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \
	frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \
	frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml \
	frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.xml \
	vendor/nxp/opensource/halimpl/halimpl/libnfc-nci.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nci.conf \
	vendor/nxp/opensource/halimpl/SN100x/halimpl/libnfc-nci.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nci_SN100.conf


# OMX
PRODUCT_PACKAGES += \
	libavservices_minijail.vendor \
	libc2dcolorconvert \
	libOmxAacEnc \
	libOmxAmrEnc \
	libOmxCore \
	libOmxEvrcEnc \
	libOmxQcelp13Enc \
	libOmxVdec \
	libOmxVenc \
	libqomx_core \
	libaacwrapper \
	libmm-omxcore \
	libstagefrighthw \
	libstagefright_softomx.vendor


#
# system prop for opengles version
#
# 196608 is decimal for 0x30000 to report major/minor versions as 3/0
# 196609 is decimal for 0x30001 to report major/minor versions as 3/1
# 196610 is decimal for 0x30002 to report major/minor versions as 3/2
PRODUCT_VENDOR_PROPERTIES += \
	ro.opengles.version=196610


# AOSP Packages
PRODUCT_PACKAGES += \
	DeskClock \
	Calendar \
	CalendarProvider \
	Camera2 \
	CertInstaller \
	Gallery2 \
	LatinIME \
	Launcher3 \
	LiveWallpapersPicker \
	Music \
	netutils-wrapper-1.0 \
	Provision \
	Protips \
	QuickSearchBox \
	Settings \
	Stk \
	SystemUI \


# Perf
PRODUCT_COPY_FILES += \
	$(FP_PATH)/configs/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml

PRODUCT_VENDOR_PROPERTIES += \
	persist.vendor.qcomsysd.enabled=1 \
	ro.vendor.extension_library=libqti-perfd-client.so \
	sys.vendor.shutdown.waittime=500


# Power
PRODUCT_PACKAGES += \
	android.hardware.power@1.0-impl \
	android.hardware.power@1.0-service \
	power.qcom


# privapp-permissions whitelisting
PRODUCT_VENDOR_PROPERTIES += ro.control_privapp_permissions=enforce


# Protobuf
PRODUCT_PACKAGES += \
	libprotobuf-cpp-full \
	libprotobuf-cpp-full-vendorcompat \
	libprotobuf-cpp-lite-vendorcompat


# include additional QCOM build utilities
include $(FP_PATH)/utils.mk

# RIL properties
PRODUCT_VENDOR_PROPERTIES += vendor.rild.libpath=/vendor/lib64/libril-qc-qmi-1.so
#vendor prop to disable advanced network scanning
PRODUCT_VENDOR_PROPERTIES += \
    persist.vendor.radio.enableadvancedscan=false

# Enable Dual SIM by default
PRODUCT_VENDOR_PROPERTIES += persist.radio.multisim.config=dsds

PRODUCT_VENDOR_PROPERTIES += \
	persist.vendor.radio.apm_sim_not_pwdn=1 \
	persist.vendor.radio.sib16_support=1 \
	persist.vendor.radio.custom_ecc=1 \
	persist.vendor.radio.rat_on=combine \
	persist.vendor.radio.procedure_bytes=SKIP


# RenderScript
PRODUCT_PACKAGES += \
	android.hardware.renderscript@1.0-impl


# SDCard
# default is nosdcard, S/W button enabled in resource
PRODUCT_CHARACTERISTICS := nosdcard


# Seccomp
PRODUCT_COPY_FILES += \
	$(FP_PATH)/seccomp/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
	$(FP_PATH)/seccomp/mediaextractor-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy


# Secure Element
PRODUCT_PACKAGES += \
	android.hardware.secure_element@1.2


# Sound Recorder
PRODUCT_PACKAGES += \
	QtiSoundRecorder


# System helper
PRODUCT_PACKAGES += \
	vendor.qti.hardware.systemhelper@1.0


# Service tracker
PRODUCT_PACKAGES += \
	vendor.qti.hardware.servicetracker@1.2.vendor


# Sensors
PRODUCT_PACKAGES += \
	sensors.FP3 \
	android.hardware.sensors@1.0-impl \
	android.hardware.sensors@1.0-service \
	libsensorndkbridge

# Sensor HAL conf file
PRODUCT_COPY_FILES += \
	$(FP_PATH)/configs/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf

# Feature definition files for msm8953
PRODUCT_COPY_FILES += \
	frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
	frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
	frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
	frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \
	frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \
	frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
	frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml


# Telephony Permissions
# whitelisted app
PRODUCT_COPY_FILES += \
	$(FP_PATH)/configs/qti_whitelist.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/sysconfig/qti_whitelist.xml

PRODUCT_COPY_FILES += \
	$(FP_PATH)/configs/privapp-permissions-qti.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/privapp-permissions-qti.xml

# Telephony wrappers
PRODUCT_PACKAGES += \
	qti-telephony-hidl-wrapper \
	qti_telephony_hidl_wrapper.xml \
	qti-telephony-utils \
	qti_telephony_utils.xml


# Thermal
PRODUCT_PACKAGES += \
	android.hardware.thermal@1.0-impl \
	android.hardware.thermal@1.0-service


# Tinyxml
PRODUCT_PACKAGES += \
	libtinyxml

# USB
PRODUCT_PACKAGES += \
	android.hardware.usb@1.0-service

-include vendor/qcom/opensource/usb/vendor_product.mk


# Vendor move
PRODUCT_VENDOR_MOVE_ENABLED := true


# Vibrator
PRODUCT_PACKAGES += \
	android.hardware.vibrator@1.0-impl \
	android.hardware.vibrator@1.0-service \
	vendor.qti.hardware.vibrator.service

PRODUCT_COPY_FILES += \
	vendor/qcom/opensource/vibrator/excluded-input-devices.xml:$(TARGET_COPY_OUT_VENDOR)/etc/excluded-input-devices.xml


# WiFi
# WLAN drivers
PRODUCT_COPY_FILES += \
	$(FP_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini \
	$(FP_PATH)/wifi/WCNSS_wlan_dictionary.dat:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_wlan_dictionary.dat \
	$(FP_PATH)/wifi/WCNSS_qcom_wlan_nv.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin # From Android 10

# Flag to check if wcnss_service is built from source
TARGET_USE_WCNSS_HAL := false

# If building from source then drop proprietary dependency
ifeq ($(TARGET_USE_WCNSS_HAL),true)
TARGET_USES_QCOM_WCNSS_QMI := false

PRODUCT_PACKAGES += \
	libwcnss_qmi \
	wcnss_service
endif

# WiFi HAL
PRODUCT_PACKAGES += \
	android.hardware.wifi@1.0-service

# WLAN DLKM
PRODUCT_PACKAGES += \
	pronto_wlan.ko

# WiFi Components
PRODUCT_PACKAGES += \
	hostapd \
	hostapd.accept \
	hostapd.deny \
	hostapd_cli \
	hostapd_default.conf \
	libnl \
	libqsap_sdk \
	libwifi-hal-qcom \
	libwpa_client \
	p2p_supplicant_overlay.conf \
	vendor.qti.hardware.wifi.supplicant@1.0.vendor \
	wificond \
	wpa_cli \
	wpa_supplicant.conf \
	wpa_supplicant \
	wpa_supplicant_overlay.conf \
	WifiOverlay \
	TetheringConfigOverlay


# Zlib
PRODUCT_HOST_PACKAGES += minigzip


# Enable zygote critical window.
PRODUCT_VENDOR_OVERRIDES += \
	zygote.critical_window.minute=10


#soong namespace for qssi vs vendor differentiation
SOONG_CONFIG_NAMESPACES += qssi_vs_vendor
SOONG_CONFIG_qssi_vs_vendor += qssi_or_vendor
SOONG_CONFIG_qssi_vs_vendor_qssi_or_vendor := vendor

SOONG_CONFIG_NAMESPACES += aosp_vs_qva
SOONG_CONFIG_aosp_vs_qva += aosp_or_qva
ifeq ($(TARGET_FWK_SUPPORTS_FULL_VALUEADDS),true)
SOONG_CONFIG_aosp_vs_qva_aosp_or_qva := qva
else
SOONG_CONFIG_aosp_vs_qva_aosp_or_qva := aosp
endif

SOONG_CONFIG_NAMESPACES += qtidisplaycommonsys
# Soong Keys
SOONG_CONFIG_qtidisplaycommonsys := displayconfig_enabled
# Soong Values
SOONG_CONFIG_qtidisplaycommonsys_displayconfig_enabled := true


# Call the proprietary setup
FP3_PROPRIETARY_PATH := device/fairphone/fp3-proprietary

DEVICE_BLOB_VERSION := 4.A.0017.2

GET_BLOBS_CMD = vendor/fairphone/tools/bin/get_blobs.py --device FP3 --build-id $(DEVICE_BLOB_VERSION) --blobs-dir $(FP3_PROPRIETARY_PATH)

# Check the presence of proprietary blobs
ifeq ("$(wildcard $(FP3_PROPRIETARY_PATH)/device-vendor.mk)","")
define BLOBS_INSTRUCTION
Cannot find FP3 binary blobs.
Please run
  $(GET_BLOBS_CMD)
and accept the terms of agreement.
endef
$(error $(BLOBS_INSTRUCTION))
endif

# Call this in the end so that flags if required can be utilized.
$(call inherit-product, $(FP3_PROPRIETARY_PATH)/device-vendor.mk)

# Build some more display components to vendor
$(call inherit-product, vendor/qcom/opensource/commonsys-intf/display/config/display-interfaces-product.mk)
###################################################################################
