blob: 4e83d3b7398ee058785f81bbc4defafaa718af99 [file] [log] [blame]
Bharath756d7dd2021-08-07 23:53:55 +05301# Copyright 2021-2022 Fairphone B.V.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14#
15
16FP_PATH := device/fairphone/FP3
17
18# Call the vendor setup
19$(call inherit-product-if-exists, vendor/fairphone/fp3-common/device-vendor.mk)
20
21$(call inherit-product, build/make/target/product/product_launched_with_p.mk)
22
23$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)
24
25$(call inherit-product, device/fairphone/fp3-common/common/common64.mk)
26
27PRODUCT_NAME := FP3
28PRODUCT_DEVICE := FP3
29PRODUCT_MODEL := FP3
30PRODUCT_MANUFACTURER := Fairphone
31PRODUCT_BRAND := Fairphone
32
33
34# Allow using custom and expressive names for our Android flavors while in fact
35# targeting the same model with all of them.
36PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_MODEL=FP3 PRODUCT_NAME=FP3
37
38# vendor/qcom/proprietary/common/config/device-vendor.mk --> PRODUCT_LIST
39TARGET_BASE_PRODUCT := FP3
40TARGET_VENDOR := fairphone
41
42TARGET_SYSTEM_PROP := device/$(TARGET_VENDOR)/$(PRODUCT_NAME)/system.prop
43
44
45# We don't have the calibration data as this sort of
46# data can only be generated at the factory so don't generate persist.img
47FP3_SKIP_PERSIST_IMG := true
48
49# Overlays
50DEVICE_PACKAGE_OVERLAYS += \
51 $(LOCAL_PATH)/overlay
52
53
54# A/B related defines
55AB_OTA_UPDATER := true
56AB_OTA_PARTITIONS += \
57 boot \
58 dtbo \
59 system \
60 vbmeta \
61 vendor
62
63
64AB_OTA_POSTINSTALL_CONFIG += \
65 RUN_POSTINSTALL_vendor=true \
66 POSTINSTALL_PATH_vendor=bin/checkpoint_gc \
67 FILESYSTEM_TYPE_vendor=ext4 \
68 POSTINSTALL_OPTIONAL_vendor=true
69
70PRODUCT_PACKAGES += \
71 checkpoint_gc \
72 update_engine_sideload
73
74
75# AVB
76BOARD_AVB_ENABLE := true
77
78
79# Additional native libraries
80PRODUCT_COPY_FILES += \
81 $(FP_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt
82
83
84# Atrace HAL
85PRODUCT_PACKAGES += \
86 android.hardware.atrace@1.0-service
87
88
89# Audio
90# AV Enhancement
91TARGET_ENABLE_QC_AV_ENHANCEMENTS := true
92
93
94PRODUCT_PACKAGES += \
95 android.hardware.audio@6.0 \
96 android.hardware.audio.common@6.0 \
97 android.hardware.audio.common@6.0-util \
98 android.hardware.audio@6.0-impl:32 \
99 android.hardware.audio.effect@6.0 \
100 android.hardware.audio.effect@6.0-impl:32 \
101 android.hardware.audio.service \
102 android.hardware.soundtrigger@2.1-impl \
103 audio.a2dp.default \
104 audio.primary.msm8953 \
105 audio.r_submix.default \
106 audio.usb.default \
107 libaacwrapper \
108 libaudio-resampler \
109 libautohal \
110 libqcompostprocbundle \
111 libqcomvisualizer \
112 libqcomvoiceprocessing \
113 libvolumelistener \
114 tinymix
115
116
117AUDIO_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal
118
119# Audio files
120PRODUCT_COPY_FILES += \
121 frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \
122 $(AUDIO_HAL_PATH)/configs/msm8953/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
123 $(AUDIO_HAL_PATH)/configs/msm8953/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
124 $(AUDIO_HAL_PATH)/configs/msm8953/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf \
125 $(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
126 $(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_sku3_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_sku3_tasha.xml \
127 $(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_sku4.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_sku4.xml \
128 $(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tasha.xml \
129 $(AUDIO_HAL_PATH)/configs/msm8953/audio_platform_info_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tashalite.xml \
130 $(AUDIO_HAL_PATH)/configs/msm8953/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \
131 $(AUDIO_HAL_PATH)/configs/msm8953/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
132 $(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
133 $(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_mtp.xml \
134 $(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_sku3_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_sku3_tasha.xml \
135 $(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_sku4.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_sku4.xml \
136 $(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha.xml \
137 $(AUDIO_HAL_PATH)/configs/msm8953/mixer_paths_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tashalite.xml \
138 $(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
139 $(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_mixer_paths_wcd9306.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9306.xml \
140 $(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_mixer_paths_wcd9330.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9330.xml \
141 $(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
142 $(AUDIO_HAL_PATH)/configs/msm8953/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml
143
144
145# Audio config files
146PRODUCT_COPY_FILES += \
147 frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration.xml \
148 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
149 frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration.xml \
150 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
151 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
152 frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
153
154# Custom config files
155PRODUCT_COPY_FILES += \
156 $(FP_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml
157
158
159# Audio firmware files
160PRODUCT_COPY_FILES += \
161 $(FP_PATH)/aw/aw8898_cfg.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/aw8898_cfg.bin \
162 $(FP_PATH)/tas2557_fw/OBO_0617_music.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/tas2557_uCDSP.bin \
163 $(FP_PATH)/tas2557_fw/tas2557evm_OBO_0617.ftcfg:$(TARGET_COPY_OUT_VENDOR)/firmware/tas2557evm_aacspk_a.ftcfg
164
165
166# Audio Specific device overlays
167DEVICE_PACKAGE_OVERLAYS += $(AUDIO_HAL_PATH)/configs/common/overlay
168
169
170# Audio Specific properties
171# Properties
172-include $(LOCAL_PATH)/audio_properties.mk
173
174
175# Audio Kernel modules
176AUDIO_DLKM := audio_apr.ko
177AUDIO_DLKM += audio_q6_notifier.ko
178AUDIO_DLKM += audio_adsp_loader.ko
179AUDIO_DLKM += audio_q6.ko
180AUDIO_DLKM += audio_usf.ko
181AUDIO_DLKM += audio_pinctrl_wcd.ko
182AUDIO_DLKM += audio_swr.ko
183AUDIO_DLKM += audio_wcd_core.ko
184AUDIO_DLKM += audio_swr_ctrl.ko
185AUDIO_DLKM += audio_wsa881x.ko
186AUDIO_DLKM += audio_wsa881x_analog.ko
187AUDIO_DLKM += audio_platform.ko
188AUDIO_DLKM += audio_cpe_lsm.ko
189AUDIO_DLKM += audio_hdmi.ko
190AUDIO_DLKM += audio_stub.ko
191AUDIO_DLKM += audio_wcd9xxx.ko
192AUDIO_DLKM += audio_mbhc.ko
193AUDIO_DLKM += audio_wcd9335.ko
194AUDIO_DLKM += audio_wcd_cpe.ko
195AUDIO_DLKM += audio_digital_cdc.ko
196AUDIO_DLKM += audio_analog_cdc.ko
197AUDIO_DLKM += audio_native.ko
198AUDIO_DLKM += audio_machine_sdm450.ko
199AUDIO_DLKM += audio_machine_ext_sdm450.ko
200PRODUCT_PACKAGES += $(AUDIO_DLKM)
201
202
203# Bluetooth
204
205
206# Boot
207PRODUCT_PACKAGES += \
208 android.hardware.boot@1.0-impl \
209 android.hardware.boot@1.0-impl.recovery \
210 android.hardware.boot@1.0-service \
211 bootctrl.msm8953 \
212 update_engine \
213 update_engine_client \
214 update_engine_sideload \
215 update_verifier
216
217
218# Boot animation
219TARGET_SCREEN_HEIGHT := 2160
220TARGET_SCREEN_WIDTH := 1080
221
222
223PRODUCT_COPY_FILES += \
224 vendor/fairphone/media/bootanimation/bootanimation.zip:$(TARGET_COPY_OUT_PRODUCT)/media/bootanimation.zip
225
226
227# Camera
228
229
230# Component overrides
231# TODO: Check if this is required.
232#PRODUCT_COPY_FILES += \
233 $(FP_PATH)/configs/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml
234
235
236# Display
237PRODUCT_PACKAGES += \
238 android.hardware.graphics.allocator@2.0-impl \
239 android.hardware.graphics.allocator@2.0-service \
240 android.hardware.graphics.composer@2.1-service \
241 android.hardware.graphics.mapper@2.0-impl-2.1 \
242 android.hardware.memtrack@1.0-impl \
243 android.hardware.memtrack@1.0-service \
244 gralloc.default \
245 gralloc.msm8953 \
246 hwcomposer.msm8953 \
247 memtrack.msm8953 \
248 libdisplayconfig \
249 libqdutils \
250 libqdMetaData \
251 libvulkan \
252 vendor.qti.hardware.display.composer@3.0
253
254
255# Vendor Display
256# Disable skip validate
257PRODUCT_PROPERTY_OVERRIDES += \
258 vendor.display.disable_skip_validate=1
259
260
261# Display Properties
262PRODUCT_AAPT_CONFIG := normal
263PRODUCT_AAPT_PREF_CONFIG := xxhdpi
264
265
266# DRM
267PRODUCT_PACKAGES += \
268 android.hardware.drm@1.3-service.clearkey
269
270
271# Enable vndk-sp Libraries
272PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true
273TARGET_USES_MKE2FS := true
274
275PRODUCT_PACKAGES += \
276 vndk_package
277
278
279# Encryption
280PRODUCT_PROPERTY_OVERRIDES += ro.crypto.allow_encrypt_override=true
281PRODUCT_PROPERTY_OVERRIDES += ro.crypto.volume.filenames_mode=aes-256-cts
282
283
284# FBE support
285PRODUCT_COPY_FILES += \
286 $(FP_PATH)/init.qti.qseecomd.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qti.qseecomd.sh
287
288
289# Framework Detect
290PRODUCT_PACKAGES += \
291 libqti_vndfwk_detect \
292 libqti_vndfwk_detect.vendor \
293 libvndfwk_detect_jni.qti \
294 libvndfwk_detect_jni.qti.vendor \
295 vndservicemanager
296
297
298# HIDL
299PRODUCT_PACKAGES += \
300 android.hidl.base@1.0 \
301 libhidltransport \
302 libhidltransport.vendor \
303 libhwbinder \
304 libhwbinder.vendor
305
306
307# Health
308PRODUCT_PACKAGES += \
309 android.hardware.health@2.1-impl \
310 android.hardware.health@2.1-impl.recovery \
311 android.hardware.health@2.1-service
312
313# IMS
314PRODUCT_PACKAGES += \
315 ims-ext-common \
316 ims_ext_common.xml \
317 ConfURIDialer
318
319# IPACM
320PRODUCT_PACKAGES += \
321 ipacm \
322 IPACM_cfg.xml \
323 libipanat \
324 liboffloadhal \
325 libqsap_sdk
326
327# IRQ
328PRODUCT_COPY_FILES += \
329 $(FP_PATH)/configs/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf \
330 $(FP_PATH)/configs/msm_irqbalance_little_big.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance_little_big.conf
331
332
333# Kernel modules
334# Kernel modules install path
335KERNEL_MODULES_INSTALL := dlkm
336KERNEL_MODULES_OUT := out/target/product/$(PRODUCT_NAME)/$(KERNEL_MODULES_INSTALL)/lib/modules
337
338
339# LED packages
340PRODUCT_PACKAGES += \
341 android.hardware.light@2.0-impl \
342 android.hardware.light@2.0-service \
343 lights.msm8953
344
345
346# Media / StagefrightCodec 2.0
347PRODUCT_PROPERTY_OVERRIDES += debug.stagefright.omx_default_rank=0
348
349
350# NFC
351
352
353# OMX
354PRODUCT_PACKAGES += \
355 libavservices_minijail.vendor \
356 libc2dcolorconvert \
357 libOmxAacEnc \
358 libOmxAmrEnc \
359 libOmxCore \
360 libOmxEvrcEnc \
361 libOmxQcelp13Enc \
362 libOmxVdec \
363 libOmxVenc \
364 libqomx_core \
365 libaacwrapper \
366 libmm-omxcore \
367 libstagefrighthw \
368 libstagefright_softomx.vendor
369
370
371#
372# system prop for opengles version
373#
374# 196608 is decimal for 0x30000 to report major/minor versions as 3/0
375# 196609 is decimal for 0x30001 to report major/minor versions as 3/1
376# 196610 is decimal for 0x30002 to report major/minor versions as 3/2
377PRODUCT_PROPERTY_OVERRIDES += \
378 ro.opengles.version=196610
379
380
381# Perf
382PRODUCT_COPY_FILES += \
383 $(FP_PATH)/configs/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml
384
385
386# Power
387PRODUCT_PACKAGES += \
388 android.hardware.power@1.0-impl \
389 android.hardware.power@1.0-service \
390 power.qcom
391
392
393# Feature flags
394PRODUCT_COPY_FILES += \
395 frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
396 frameworks/native/data/etc/android.hardware.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.xml \
397 frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
398 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
399 frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
400 frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level-0.xml \
401 frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_0_3.xml \
402 frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \
403 frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/android.software.verified_boot.xml \
404 frameworks/native/data/etc/android.software.vulkan.deqp.level-2019-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level-2019-03-01.xml \
405 frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \
406 frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \
407 frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml
408
409
410# privapp-permissions whitelisting
411PRODUCT_PROPERTY_OVERRIDES += ro.control_privapp_permissions=enforce
412
413
414# Protobuf
415PRODUCT_PACKAGES += \
416 libprotobuf-cpp-full \
417 libprotobuf-cpp-full-vendorcompat \
418 libprotobuf-cpp-lite-vendorcompat
419
420
421# RIL properties
422PRODUCT_PROPERTY_OVERRIDES += rild.libpath=/vendor/lib64/libril-qc-qmi-1.so
423PRODUCT_PROPERTY_OVERRIDES += vendor.rild.libpath=/vendor/lib64/libril-qc-qmi-1.so
424#vendor prop to disable advanced network scanning
425PRODUCT_PROPERTY_OVERRIDES += \
426 persist.vendor.radio.enableadvancedscan=false
427
428
429# RenderScript
430PRODUCT_PACKAGES += \
431 android.hardware.renderscript@1.0-impl
432
433
434# SDCard
435# default is nosdcard, S/W button enabled in resource
436PRODUCT_CHARACTERISTICS := nosdcard
437
438
439# Seccomp
440PRODUCT_COPY_FILES += \
441 $(FP_PATH)/seccomp/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
442 $(FP_PATH)/seccomp/mediaextractor-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy
443
444
445# System helper
446PRODUCT_PACKAGES += \
447 vendor.qti.hardware.systemhelper@1.0
448
449
450# Service tracker
451PRODUCT_PACKAGES += \
452 vendor.qti.hardware.servicetracker@1.2.vendor
453
454
455# Telephony Permissions
456
457
458# Thermal
459PRODUCT_PACKAGES += \
460 android.hardware.thermal@1.0-impl \
461 android.hardware.thermal@1.0-service
462
463
464# Tinyxml
465PRODUCT_PACKAGES += \
466 libtinyxml
467
468# USB
469PRODUCT_PACKAGES += \
470 android.hardware.usb@1.0-service
471
472-include vendor/qcom/opensource/usb/vendor_product.mk
473
474
475# Vendor move
476PRODUCT_VENDOR_MOVE_ENABLED := true
477
478
479# Vibrator
480PRODUCT_PACKAGES += \
481 android.hardware.vibrator@1.0-impl \
482 android.hardware.vibrator@1.0-service
483
484
485# Call the proprietary setup
486# Call this in the end so that flags if required can be utilized.
487$(call inherit-product, device/fairphone/fp3-proprietary/device-vendor.mk)
488
489###################################################################################
490# This is the End of target.mk file.
491# Now, Pickup other split product.mk files:
492###################################################################################
493$(call inherit-product-if-exists, vendor/qcom/opensource/commonsys-intf/display/config/display-product-system.mk)
494$(call inherit-product-if-exists, vendor/qcom/opensource/commonsys-intf/display/config/display-interfaces-product.mk)
495$(call inherit-product-if-exists, vendor/qcom/opensource/usb/vendor_product.mk)
496$(call inherit-product-if-exists, vendor/qcom/opensource/vibrator/vibrator-vendor-product.mk)
497###################################################################################