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


# Compile SystemUI on device with `speed`.
PRODUCT_VENDOR_PROPERTIES += \
	dalvik.vm.systemuicompilerfilter=speed


# 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

# Ramdisk fstab file
PRODUCT_PACKAGES += fstab_ramdisk.qcom

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.1-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 \
	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
# Set supported Bluetooth profiles to enabled
PRODUCT_PRODUCT_PROPERTIES += \
	bluetooth.profile.asha.central.enabled?=false \
	bluetooth.profile.a2dp.source.enabled?=true \
	bluetooth.profile.avrcp.target.enabled?=true \
	bluetooth.profile.bas.client.enabled?=true \
	bluetooth.profile.gatt.enabled?=true \
	bluetooth.profile.hfp.ag.enabled?=true \
	bluetooth.profile.hid.device.enabled?=true \
	bluetooth.profile.hid.host.enabled?=true \
	bluetooth.profile.map.server.enabled?=true \
	bluetooth.profile.opp.enabled?=true \
	bluetooth.profile.pan.nap.enabled?=true \
	bluetooth.profile.pan.panu.enabled?=true \
	bluetooth.profile.pbap.server.enabled?=true \
	bluetooth.profile.sap.server.enabled?=true

# Set the Bluetooth Class of Device
# Service Field: 0x5A -> 90
#    Bit 17: Networking
#    Bit 19: Capturing
#    Bit 20: Object Transfer
#    Bit 22: Telephony
# MAJOR_CLASS: 0x02 -> 2 (Phone)
# MINOR_CLASS: 0x0C -> 12 (Smart Phone)
PRODUCT_PRODUCT_PROPERTIES += \
	bluetooth.device.class_of_device=90,2,12


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

# Arcsoft libraries segfault with scudo, use svelte for 32-bit only
MALLOC_SVELTE_FOR_LIBC32 := true

# 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_SYSTEM_EXT_PROPERTIES += \
	persist.vendor.data.profile_update=true

PRODUCT_VENDOR_PROPERTIES += ro.telephony.iwlan_operation_mode=legacy


# Preopt SystemUI
PRODUCT_DEXPREOPT_SPEED_APPS += SystemUI  # For AOSP


# 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.early_boot.sh \
	init.qcom.factory.rc \
	init.qcom.post_boot.sh \
	init.qcom.rc \
	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 \
	ueventd.qcom.rc \
	vold.fstab

#intialise PRODUCT_PACKAGES_DEBUG list for debug modules
#Add init.qcom.test.rc to PRODUCT_PACKAGES_DEBUG list
PRODUCT_PACKAGES_DEBUG += \
	init.qcom.test.rc \
	init.qcom.debug.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

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.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.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 += \
	NfcNci \
	Tag \
	com.android.nfc_extras \
	com.nxp.nfc.nq \
	com.nxp.nfc.nq.xml \
	libnqnfc-nci \
	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 \


# Set support one-handed mode
PRODUCT_PRODUCT_PROPERTIES += \
	ro.support_one_handed_mode=true


# 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

# Configure legacy Qualcomm wpa_supplicant_8_lib path for CFI
PRODUCT_CFI_INCLUDE_PATHS += \
	hardware/qcom/wlan/qcwcn/wpa_supplicant_8_lib

# Zlib
PRODUCT_HOST_PACKAGES += minigzip


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


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

DEVICE_BLOB_VERSION := 6.A.012.0

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