# Copyright 2018-2020 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.
#

# camera_detect
$(call inherit-product-if-exists, device/fairphone/fp2-common/camera_detect/camera_detect.mk)

# setup dalvik vm configs.
$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)

# we don't have the calibration data so don't generate persist.img
FP2_SKIP_PERSIST_IMG := true

# This is needed for the 2016 June official Nexus 5 driver's glsub
TARGET_USE_COMPAT_GRALLOC_PERFORM := true

# Common definitions to set undefined properties
$(call inherit-product, device/qcom/common/common.mk)


BLOBS_PATH = device/fairphone/fp2-proprietary

# Call the proprietary setup
$(call inherit-product, $(BLOBS_PATH)/device-vendor.mk)

TARGET_USES_QCOM_BSP := true
TARGET_USES_QCA_NFC := other

ifeq ($(TARGET_USES_QCOM_BSP), true)
# Add QC Video Enhancements flag
TARGET_ENABLE_QC_AV_ENHANCEMENTS := true
endif #TARGET_USES_QCOM_BSP

PRODUCT_DEVICE := FP2
PRODUCT_BRAND := Fairphone
PRODUCT_MANUFACTURER := Fairphone

# The product flavors will set PRODUCT_NAME and PRODUCT_MODEL to something else
# but really, we are not allowed to change it because it was certified like this.
# To not break the build system and still have some properties set with the fancy
# flavour name, we only override the variables in the generated build.prop file.
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_MODEL=FP2 PRODUCT_NAME=FP2

# 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
$(warning Build defined as $(BUILD_ID) ($(BUILD_NUMBER)))


PRODUCT_PROPERTY_OVERRIDES += ro.frp.pst=/dev/block/bootdevice/by-name/pad

DEVICE_PACKAGE_OVERLAYS += device/fairphone/fp2-common/overlay

# Do not enable data roaming by default
PRODUCT_PROPERTY_OVERRIDES := $(filter-out ro.com.android.dataroaming=%,\
	$(PRODUCT_PROPERTY_OVERRIDES)) \
	ro.com.android.dataroaming=false

# Set default alarm sound
PRODUCT_PROPERTY_OVERRIDES += \
	ro.config.alarm_alert=Cesium.ogg

# Allow mediaserver to allocate up to 75% of total RAM
PRODUCT_PROPERTY_OVERRIDES += \
	ro.media.maxmem=1451891712

# Enable strict operation
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
	persist.sys.strict_op_enable=false

PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
	persist.sys.whitelist=/system/etc/whitelist_appops.xml

PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
	camera2.portability.force_api=1


PRODUCT_COPY_FILES += \
	device/fairphone/fp2-common/rootdir/system/etc/old-apns-conf.xml:system/etc/old-apns-conf.xml \
	device/fairphone/fp2-common/rootdir/system/etc/apns-conf.xml:system/etc/apns-conf.xml

# MIDI feature
PRODUCT_COPY_FILES += \
	frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software.midi.xml

PRODUCT_COPY_FILES += \
	device/fairphone/FP2/whitelist_appops.xml:system/etc/whitelist_appops.xml

# WiFi driver
PRODUCT_COPY_FILES += \
	device/fairphone/FP2/wifi/WCNSS_qcom_cfg.ini:system/etc/wifi/WCNSS_qcom_cfg.ini

ifneq ($(strip $(FP2_SKIP_PERSIST_IMG)),true)
PRODUCT_COPY_FILES += \
	device/fairphone/FP2/wifi/WCNSS_qcom_wlan_nv.bin:persist/WCNSS_qcom_wlan_nv.bin
endif

# WiFi
PRODUCT_COPY_FILES += \
	device/fairphone/FP2/wifi/WCNSS_cfg.dat:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/prima/WCNSS_cfg.dat \
	device/fairphone/FP2/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/prima/WCNSS_qcom_cfg.ini \
	device/fairphone/FP2/wifi/WCNSS_qcom_wlan_nv.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin

# Features
PRODUCT_COPY_FILES += \
	external/ant-wireless/antradio-library/com.dsi.ant.antradio_library.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.dsi.ant.antradio_library.xml \
	frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
	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.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \
	frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
	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 \
	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.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.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.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.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/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \

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

PRODUCT_COPY_FILES += \
	device/fairphone/FP2/media/media_codecs_8974.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
	device/fairphone/FP2/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
	device/fairphone/FP2/media/media_profiles_8974.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml

# Audio
PRODUCT_COPY_FILES += \
	device/fairphone/FP2/audio/acdbdata/MTP/MTP_Bluetooth_cal.acdb:$(TARGET_COPY_OUT_SYSTEM)/etc/acdbdata/MTP/MTP_Bluetooth_cal.acdb \
	device/fairphone/FP2/audio/acdbdata/MTP/MTP_General_cal.acdb:$(TARGET_COPY_OUT_SYSTEM)/etc/acdbdata/MTP/MTP_General_cal.acdb \
	device/fairphone/FP2/audio/acdbdata/MTP/MTP_Global_cal.acdb:$(TARGET_COPY_OUT_SYSTEM)/etc/acdbdata/MTP/MTP_Global_cal.acdb \
	device/fairphone/FP2/audio/acdbdata/MTP/MTP_Handset_cal.acdb:$(TARGET_COPY_OUT_SYSTEM)/etc/acdbdata/MTP/MTP_Handset_cal.acdb \
	device/fairphone/FP2/audio/acdbdata/MTP/MTP_Hdmi_cal.acdb:$(TARGET_COPY_OUT_SYSTEM)/etc/acdbdata/MTP/MTP_Hdmi_cal.acdb \
	device/fairphone/FP2/audio/acdbdata/MTP/MTP_Headset_cal.acdb:$(TARGET_COPY_OUT_SYSTEM)/etc/acdbdata/MTP/MTP_Headset_cal.acdb \
	device/fairphone/FP2/audio/acdbdata/MTP/MTP_Speaker_cal.acdb:$(TARGET_COPY_OUT_SYSTEM)/etc/acdbdata/MTP/MTP_Speaker_cal.acdb

PRODUCT_COPY_FILES += \
	device/fairphone/FP2/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
	device/fairphone/FP2/audio/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \
	device/fairphone/FP2/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
	device/fairphone/FP2/audio/mixer_paths_auxpcm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_auxpcm.xml

# Seccomp
PRODUCT_COPY_FILES += \
	device/fairphone/FP2/seccomp/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
	device/fairphone/FP2/seccomp/mediaextractor.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy

# Boot animation
PRODUCT_COPY_FILES += \
	vendor/fairphone/media/bootanimation/fp2.zip:system/media/bootanimation.zip

# Display logo image file
PRODUCT_PACKAGES += \
	libqcomvisualizer \
	libqcomvoiceprocessing \
	libqcompostprocbundle

# battery_monitor
PRODUCT_PACKAGES += \
	battery_monitor \
	battery_shutdown

# fstab.qcom
PRODUCT_PACKAGES += fstab.qcom

# WiFi
PRODUCT_PACKAGES += \
	hostapd \
	wcnss_service \
	wpa_supplicant

PRODUCT_PACKAGES += \
	p2p_supplicant_overlay.conf \
	wpa_supplicant.conf \
	wpa_supplicant_overlay.conf

# ANT stack
PRODUCT_PACKAGES += \
	AntHalService \
	libantradio \
	ANTRadioService \
	antradio_app

# Radio
PRODUCT_PACKAGES += \
	libril-wrapper

# include an expanded selection of fonts for the SDK.
EXTENDED_FONT_FOOTPRINT := true

# remove /dev/diag in user version for CTS
ifeq ($(TARGET_BUILD_VARIANT),user)
PRODUCT_COPY_FILES += device/qcom/common/rootdir/etc/init.qcom.diag.rc.user:root/init.qcom.diag.rc
endif

# Enable the diagnostics interface by default in userdebug and eng builds
ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
	persist.sys.usb.config=diag
endif

ifeq ($(strip $(FP2_SKIP_BOOT_JARS_CHECK)),)
SKIP_BOOT_JARS_CHECK := true
endif

# display density
PRODUCT_PROPERTY_OVERRIDES += \
	ro.sf.lcd_density=480

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

# Media
PRODUCT_PACKAGES += \
	audio.a2dp.default \
	audio.primary.msm8974 \
	audio.r_submix.default \
	audio.usb.default \
	audio_policy.msm8974 \
	libqcompostprocbundle \
	libqcomvisualizer \
	libqcomvoiceprocessing \
	libqcomvoiceprocessingdescriptors \
	tinymix

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

# Boot animation
TARGET_SCREEN_HEIGHT := 1920
TARGET_SCREEN_WIDTH := 1080

# Bluetooth
PRODUCT_PACKAGES += \
	android.hardware.bluetooth@1.0-impl \
	android.hardware.bluetooth@1.0-service \
	libbt-vendor

# Camera
PRODUCT_PACKAGES += \
	android.hardware.camera.provider@2.4-impl \
	camera.device@1.0-impl \
	camera.msm8974

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

# Media
PRODUCT_PACKAGES += \
	libOmxAacEnc \
	libOmxAmrEnc \
	libOmxCore \
	libOmxEvrcEnc \
	libOmxQcelp13Enc \
	libOmxVdec \
	libOmxVenc \
	libc2dcolorconvert \
	libstagefrighthw


# Display
PRODUCT_AAPT_CONFIG := normal
PRODUCT_AAPT_PREF_CONFIG := xxhdpi

# Graphics
PRODUCT_PACKAGES += \
	copybit.msm8974 \
	gralloc.msm8974 \
	hwcomposer.msm8974 \
	liboverlay \
	memtrack.msm8974

# HAL Modules

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

PRODUCT_PACKAGES += \
	android.hardware.graphics.allocator@2.0-impl \
	android.hardware.graphics.allocator@2.0-service \
	android.hardware.graphics.composer@2.1-impl \
	android.hardware.graphics.mapper@2.0-impl \
	android.hardware.memtrack@1.0-impl \
	android.hardware.memtrack@1.0-service

PRODUCT_PACKAGES += \
	android.hardware.audio@2.0-impl \
	android.hardware.audio@2.0-service \
	android.hardware.audio.effect@2.0-impl

PRODUCT_PACKAGES += \
	android.hardware.graphics.allocator@2.1-impl \
	android.hardware.graphics.allocator@2.1-service \
	android.hardware.graphics.composer@2.0-impl \
	android.hardware.graphics.mapper@2.0-impl \
	android.hardware.memtrack@1.0-impl \
	android.hardware.memtrack@1.0-service \
	android.hardware.graphics.allocator@2.0-service \
	android.hardware.graphics.composer@2.1-service

# Keystore
PRODUCT_PACKAGES += \
	android.hardware.keymaster@3.0-impl \
	android.hardware.keymaster@3.0-service \
	keystore.msm8974

# Lights
PRODUCT_PACKAGES += \
	android.hardware.light@2.0-service.FP2

# Power
PRODUCT_PACKAGES += \
	android.hardware.power@1.1-service-qti

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

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

PRODUCT_PACKAGES += \
	libhealthd.FP2

PRODUCT_PACKAGES += xdivert

# Ship the ModuleDetect app to inform users of a successful camera swap
PRODUCT_PACKAGES += \
	ModuleDetect \
	CameraSwapInfo

# Ship the sound recorder app for backward compatibility with previous releases
PRODUCT_PACKAGES += SoundRecorder

# Ramdisk
PRODUCT_PACKAGES += \
	init.qcom.power.rc

# GPS
PRODUCT_PACKAGES += \
	android.hardware.gnss@1.0-impl \
	android.hardware.gnss@1.0-service \
	gps.msm8974 \
	izat.conf \
	flp.conf \
	gps.conf \
	sap.conf

PRODUCT_PACKAGES += senread

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