• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2016 The Android Open-Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17# This file includes all definitions that apply to ALL marlin and sailfish devices
18#
19# Everything in this directory will become public
20
21ifeq ($(TARGET_PREBUILT_KERNEL),)
22    LOCAL_KERNEL := device/google/marlin-kernel/Image.lz4-dtb
23else
24LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
25endif
26
27PRODUCT_SHIPPING_API_LEVEL := 25
28
29PRODUCT_COPY_FILES += \
30    $(LOCAL_KERNEL):kernel
31
32DEVICE_PACKAGE_OVERLAYS += device/google/marlin/overlay
33
34PRODUCT_ENFORCE_RRO_TARGETS := \
35    framework-res
36
37# Input device files
38PRODUCT_COPY_FILES += \
39    device/google/marlin/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl \
40    device/google/marlin/qpnp_pon.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/qpnp_pon.kl \
41    device/google/marlin/uinput-fpc.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/uinput-fpc.kl \
42    device/google/marlin/uinput-fpc.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/uinput-fpc.idc \
43    device/google/marlin/synaptics_dsxv26.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/synaptics_dsxv26.idc \
44    device/google/marlin/vr-virtual-touchpad-1.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/vr-virtual-touchpad-1.idc
45
46# copy customized media_profiles and media_codecs xmls for msm8996
47PRODUCT_COPY_FILES += \
48    device/google/marlin/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \
49    device/google/marlin/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
50    device/google/marlin/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml
51
52# Override heap growth limit due to high display density on device
53PRODUCT_PROPERTY_OVERRIDES += \
54    dalvik.vm.heapgrowthlimit=256m \
55    ro.telephony.default_cdma_sub=0
56
57$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
58$(call inherit-product, device/google/marlin/common/common64.mk)
59
60#Android EGL implementation
61PRODUCT_PACKAGES += libGLES_android
62PRODUCT_PACKAGES += SSRestartDetector
63
64ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
65PRODUCT_PACKAGES += TelephonyMonitor
66endif
67
68# graphics
69PRODUCT_PROPERTY_OVERRIDES += \
70    ro.opengles.version=196610
71
72# HWUI common settings
73PRODUCT_PROPERTY_OVERRIDES += \
74    ro.hwui.gradient_cache_size=1 \
75    ro.hwui.drop_shadow_cache_size=6 \
76    ro.hwui.r_buffer_cache_size=8 \
77    ro.hwui.texture_cache_flushrate=0.4 \
78    ro.hwui.text_small_cache_width=1024 \
79    ro.hwui.text_small_cache_height=1024 \
80    ro.hwui.text_large_cache_width=2048 \
81    ro.hwui.text_large_cache_height=1024
82
83# For android_filesystem_config.h
84PRODUCT_PACKAGES += fs_config_files \
85                    fs_config_dirs
86
87# TextClassifier smart selection models files
88PRODUCT_PACKAGES += \
89    textclassifier.smartselection.bundle1
90
91# Audio configuration
92USE_XML_AUDIO_POLICY_CONF := 1
93PRODUCT_COPY_FILES += \
94    device/google/marlin/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf \
95    device/google/marlin/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
96    device/google/marlin/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
97    device/google/marlin/mixer_paths_tasha_t50.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha_t50.xml \
98    device/google/marlin/aanc_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/aanc_tuning_mixer.txt \
99    device/google/marlin/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
100    device/google/marlin/sound_trigger_mixer_paths_tasha_t50.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_tasha_t50.xml \
101    device/google/marlin/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
102    device/google/marlin/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
103    device/google/marlin/audio_platform_info_tasha_t50.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tasha_t50.xml \
104    device/google/marlin/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
105    device/google/marlin/audio_policy_volumes_drc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes_drc.xml \
106    frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
107    frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
108    frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
109    frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
110    frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
111    frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml
112
113PRODUCT_FULL_TREBLE_OVERRIDE := true
114PRODUCT_PACKAGES += \
115    android.hardware.audio@2.0-service \
116    android.hardware.bluetooth@1.0-service \
117    android.hardware.contexthub@1.0-service \
118    android.hardware.gnss@1.0-service \
119    android.hardware.drm@1.0-service \
120    android.hardware.light@2.0-service \
121    android.hardware.memtrack@1.0-service \
122    android.hardware.nfc@1.0-service \
123    android.hardware.power@1.0-service \
124    android.hardware.sensors@1.0-service \
125    android.hardware.thermal@1.0-service \
126    android.hardware.vr@1.0-service \
127
128PRODUCT_PROPERTY_OVERRIDES += ro.hardware.power=marlin
129
130# RenderScript HAL
131PRODUCT_PACKAGES += \
132    android.hardware.renderscript@1.0-impl
133
134# Light HAL
135PRODUCT_PACKAGES += \
136    android.hardware.light@2.0-impl
137
138# Keymaster HAL
139PRODUCT_PACKAGES += \
140    android.hardware.keymaster@3.0-impl \
141    android.hardware.keymaster@3.0-service
142
143# Usb HAL
144PRODUCT_PACKAGES += \
145    android.hardware.usb@1.0-service.marlin
146
147# Audio effects
148PRODUCT_PACKAGES += \
149    libqcomvisualizer \
150    libqcomvoiceprocessing \
151    libqcomvoiceprocessingdescriptors \
152    libqcompostprocbundle
153
154PRODUCT_PACKAGES += \
155    sound_trigger.primary.msm8996
156
157PRODUCT_PACKAGES += \
158    android.hardware.audio@2.0-impl \
159    android.hardware.audio.effect@2.0-impl \
160    android.hardware.soundtrigger@2.0-impl
161
162PRODUCT_PACKAGES += \
163    android.hardware.drm@1.0-impl
164
165PRODUCT_PACKAGES += \
166    netutils-wrapper-1.0
167
168# set audio fluence, ns, aec property
169PRODUCT_PROPERTY_OVERRIDES += \
170    ro.qc.sdk.audio.fluencetype=fluencepro \
171    persist.audio.fluence.voicecall=true \
172    persist.audio.fluence.speaker=true \
173    persist.audio.fluence.voicecomm=true \
174    persist.audio.fluence.voicerec=false
175
176# WLAN driver configuration files
177PRODUCT_COPY_FILES += \
178    device/google/marlin/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf     \
179    device/google/marlin/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf     \
180    device/google/marlin/WCNSS_cfg.dat:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_cfg.dat \
181    device/google/marlin/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
182
183# MIDI feature
184PRODUCT_COPY_FILES += \
185    frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml
186
187# Audio low latency feature
188PRODUCT_COPY_FILES += \
189    frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml
190
191# Pro audio feature
192PRODUCT_COPY_FILES += \
193    frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml
194
195# Camera
196PRODUCT_COPY_FILES += \
197    frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
198    frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
199    frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
200    frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml
201
202# Dumpstate HAL
203PRODUCT_PACKAGES += \
204    android.hardware.dumpstate@1.0-service.marlin
205
206# Wi-Fi
207PRODUCT_PACKAGES += \
208    android.hardware.wifi@1.0-service \
209    libwpa_client \
210    hostapd \
211    wificond \
212    wifilogd \
213    wpa_supplicant \
214    wpa_supplicant.conf
215
216#ANT+ stack
217PRODUCT_PACKAGES += \
218    AntHalService \
219    libantradio \
220    antradio_app \
221    libvolumelistener
222
223# Sensor features
224PRODUCT_COPY_FILES += \
225    frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
226    frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
227    frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
228    frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \
229    frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \
230    frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \
231    frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
232    frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml \
233    frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml
234
235# VR features
236PRODUCT_COPY_FILES += \
237    frameworks/native/data/etc/android.hardware.vr.high_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vr.high_performance.xml \
238    frameworks/native/data/etc/android.hardware.vr.headtracking-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vr.headtracking.xml \
239
240# For SPN display
241PRODUCT_COPY_FILES += \
242    device/google/marlin/spn-conf.xml:system/etc/spn-conf.xml
243
244# new gatekeeper HAL
245PRODUCT_PACKAGES += \
246    android.hardware.gatekeeper@1.0-impl \
247    android.hardware.gatekeeper@1.0-service
248
249# Common sensor packages
250TARGET_USES_NANOHUB_SENSORHAL := true
251NANOHUB_SENSORHAL_LID_STATE_ENABLED := true
252NANOHUB_SENSORHAL_SENSORLIST := $(LOCAL_PATH)/sensorhal/sensorlist.cpp
253NANOHUB_SENSORHAL_DIRECT_REPORT_ENABLED := true
254NANOHUB_SENSORHAL_DYNAMIC_SENSOR_EXT_ENABLED := true
255
256PRODUCT_PACKAGES += \
257    context_hub.default \
258    android.hardware.sensors@1.0-impl \
259    android.hardware.contexthub@1.0-impl \
260
261PRODUCT_PACKAGES += \
262    nanoapp_cmd
263
264# sensor utilities (only for userdebug and eng builds)
265ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
266PRODUCT_PACKAGES += \
267    nanotool \
268    sensortest
269endif
270
271PRODUCT_COPY_FILES += \
272    device/google/marlin/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config
273
274PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/624000.ufshc/by-name/system
275
276#FEATURE_OPENGLES_EXTENSION_PACK support string config file
277PRODUCT_COPY_FILES += \
278    frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml
279
280# MSM IRQ Balancer configuration file
281PRODUCT_COPY_FILES += \
282    device/google/marlin/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf
283
284# init scripts
285PRODUCT_COPY_FILES += \
286    device/google/marlin/init.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.rc \
287    device/google/marlin/init.common.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.usb.rc \
288    device/google/marlin/init.common.nanohub.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.nanohub.rc \
289    device/google/marlin/ueventd.common.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
290    device/google/marlin/init.radio.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.radio.sh \
291    device/google/marlin/init.power.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.power.sh \
292    device/google/marlin/init.mid.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.mid.sh \
293    device/google/marlin/init.foreground.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.foreground.sh \
294    device/google/marlin/init.qcom.devstart.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.devstart.sh
295
296# Reduce client buffer size for fast audio output tracks
297PRODUCT_PROPERTY_OVERRIDES += \
298    af.fast_track_multiplier=1
299
300# Low latency audio buffer size in frames
301PRODUCT_PROPERTY_OVERRIDES += \
302    audio_hal.period_size=192
303
304# Write Manufacturer & Model information in created media files.
305# IMPORTANT: ONLY SET THIS PROPERTY TO TRUE FOR PUBLIC DEVICES
306ifneq ($(filter aosp_sailfish% sailfish% aosp_marlin% marlin%, $(TARGET_PRODUCT)),)
307PRODUCT_PROPERTY_OVERRIDES += \
308    media.recorder.show_manufacturer_and_model=true
309else
310$(error "you must decide whether to write manufacturer and model information into created media files for this device. ONLY ENABLE IT FOR PUBLIC DEVICE.")
311endif  #TARGET_PRODUCT
312
313PRODUCT_PROPERTY_OVERRIDES += \
314    persist.camera.gyro.android=4 \
315    persist.camera.tof.direct=1 \
316    persist.camera.tnr.preview=1 \
317    persist.camera.tnr.video=1
318
319# Set bluetooth soc to rome
320PRODUCT_PROPERTY_OVERRIDES += \
321    qcom.bluetooth.soc=rome
322
323PRODUCT_PROPERTY_OVERRIDES += \
324    persist.cne.feature=1 \
325    persist.radio.data_ltd_sys_ind=1 \
326    persist.radio.is_wps_enabled=true \
327    persist.radio.RATE_ADAPT_ENABLE=1 \
328    persist.radio.ROTATION_ENABLE=1 \
329    persist.radio.sw_mbn_update=1 \
330    persist.radio.videopause.mode=1 \
331    persist.radio.VT_ENABLE=1 \
332    persist.radio.VT_HYBRID_ENABLE=1 \
333    persist.radio.data_con_rprt=true \
334    persist.rcs.supported=1 \
335    rild.libpath=/vendor/lib64/libril-qc-qmi-1.so
336
337PRODUCT_PROPERTY_OVERRIDES += \
338    persist.data.mode=concurrent
339
340# Enable SM log mechanism by default
341ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
342PRODUCT_PROPERTY_OVERRIDES += \
343    persist.radio.smlog_switch=1 \
344    ro.radio.log_prefix="modem_log_" \
345    ro.radio.log_loc="/data/smlog_dump"
346endif
347
348# Disable snapshot feature
349PRODUCT_PROPERTY_OVERRIDES += \
350    persist.radio.snapshot_enabled=0 \
351    persist.radio.snapshot_timer=0
352
353# IMS over WiFi
354PRODUCT_PROPERTY_OVERRIDES += \
355    persist.data.iwlan.enable=true
356
357# LTE, CDMA, GSM/WCDMA
358PRODUCT_PROPERTY_OVERRIDES += \
359    ro.telephony.default_network=10 \
360    telephony.lteOnCdmaDevice=1
361
362PRODUCT_AAPT_CONFIG += xlarge large
363PRODUCT_CHARACTERISTICS := nosdcard
364
365# Enable camera EIS
366# eis.enable: enables electronic image stabilization
367# is_type: sets image stabilization type
368PRODUCT_PROPERTY_OVERRIDES += \
369    persist.camera.eis.enable=1 \
370    persist.camera.is_type=4
371
372# Fingerprint HIDL implementation
373PRODUCT_PACKAGES += \
374    android.hardware.biometrics.fingerprint@2.1-service
375
376PRODUCT_COPY_FILES += \
377    frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
378
379INIT_COMMON_DIAG_RC := $(TARGET_COPY_OUT_VENDOR)/etc/init/init.diag.rc
380
381# Modem debugger
382ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
383PRODUCT_COPY_FILES += \
384    device/google/marlin/init.common.diag.rc.userdebug:$(INIT_COMMON_DIAG_RC)
385
386# Subsystem ramdump
387PRODUCT_PROPERTY_OVERRIDES += \
388    persist.sys.ssr.enable_ramdumps=1
389else
390PRODUCT_COPY_FILES += \
391    device/google/marlin/init.common.diag.rc.user:$(INIT_COMMON_DIAG_RC)
392endif
393
394# Subsystem silent restart
395PRODUCT_PROPERTY_OVERRIDES += \
396    persist.sys.ssr.restart_level=venus,AR6320,slpi,modem,adsp
397
398PRODUCT_COPY_FILES += \
399    device/google/marlin/thermal-engine-marlin.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf \
400    device/google/marlin/thermal-engine-marlin-vr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-vr.conf
401
402$(call inherit-product-if-exists, hardware/qcom/msm8996/msm8996.mk)
403$(call inherit-product-if-exists, vendor/qcom/gpu/msm8996/msm8996-gpu-vendor.mk)
404
405# TODO:
406# setup dm-verity configs.
407# PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/7464900.sdhci/by-name/system
408# $(call inherit-product, build/target/product/verity.mk)
409
410#Property of the BDA module path for loading BDA
411PRODUCT_PROPERTY_OVERRIDES += \
412    ro.bt.bdaddr_path=/sys/module/bdaddress/parameters/bdaddress
413
414# Needed for encryption
415PRODUCT_PACKAGES += \
416    keystore.msm8996 \
417    gatekeeper.msm8996
418
419# Use the A/B updater.
420AB_OTA_UPDATER := true
421PRODUCT_PACKAGES += \
422    update_engine \
423    update_verifier
424
425# Enable update engine sideloading by including the static version of the
426# boot_control HAL and its dependencies.
427PRODUCT_STATIC_BOOT_CONTROL_HAL := \
428    bootctrl.msm8996 \
429    libgptutils \
430    libsparse
431PRODUCT_PACKAGES += \
432    update_engine_sideload
433
434# Tell the system to enable copying odexes from other partition.
435PRODUCT_PACKAGES += \
436	cppreopts.sh
437
438PRODUCT_PROPERTY_OVERRIDES += \
439    ro.cp_system_other_odex=1
440
441# Script that copies preloads directory from system_other to data partition
442PRODUCT_COPY_FILES += \
443    device/google/marlin/preloads_copy.sh:system/bin/preloads_copy.sh
444
445PRODUCT_PACKAGES_DEBUG += \
446    update_engine_client
447
448# A/B updater updatable partitions list. Keep in sync with the partition list
449# with "_a" and "_b" variants in the device. Note that the vendor can add more
450# more partitions to this list for the bootloader and radio.
451AB_OTA_PARTITIONS += \
452    boot \
453    system
454
455# Bluetooth HAL
456PRODUCT_PACKAGES += \
457    libbt-vendor \
458    android.hardware.bluetooth@1.0-impl
459
460# NFC packages
461PRODUCT_PACKAGES += \
462    NfcNci \
463    Tag \
464    android.hardware.nfc@1.0-impl
465
466# Thermal HAL
467PRODUCT_PACKAGES += \
468    android.hardware.thermal@1.0-impl
469
470#GNSS HAL
471PRODUCT_PACKAGES += \
472    android.hardware.gnss@1.0-impl
473
474# Vibrator
475PRODUCT_PACKAGES += \
476    android.hardware.vibrator@1.0-service.marlin \
477
478# VR
479PRODUCT_PACKAGES += \
480    android.hardware.vr@1.0-impl
481
482# Gralloc
483PRODUCT_PACKAGES += \
484    android.hardware.graphics.allocator@2.0-impl \
485    android.hardware.graphics.allocator@2.0-service \
486    android.hardware.graphics.mapper@2.0-impl
487
488# HW Composer
489PRODUCT_PACKAGES += \
490    android.hardware.graphics.composer@2.1-impl \
491    android.hardware.graphics.composer@2.1-service
492
493# Boot control
494PRODUCT_PACKAGES += \
495    android.hardware.boot@1.0-impl \
496    android.hardware.boot@1.0-service
497
498# Library used for VTS tests  (only for userdebug and eng builds)
499ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
500# Test HAL for hwbinder performance benchmark.
501PRODUCT_PACKAGES += \
502     android.hardware.tests.libhwbinder@1.0-impl
503
504# Test HAL for FMQ performance benchmark.
505PRODUCT_PACKAGES += \
506     android.hardware.tests.msgq@1.0-impl
507
508# For VTS profiling.
509PRODUCT_PACKAGES += \
510     libvts_profiling \
511     libvts_multidevice_proto
512endif
513
514# NFC/camera interaction workaround - DO NOT COPY TO NEW DEVICES
515PRODUCT_PROPERTY_OVERRIDES += \
516    ro.camera.notify_nfc=1
517
518PRODUCT_COPY_FILES += \
519    device/google/marlin/nfc/libnfc-brcm.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-brcm.conf \
520    device/google/marlin/nfc/libpn551_fw.so:$(TARGET_COPY_OUT_VENDOR)/firmware/libpn551_fw.so
521
522# Bootloader HAL used for A/B updates.
523PRODUCT_PACKAGES += \
524    bootctrl.msm8996
525PRODUCT_PACKAGES_DEBUG += \
526    bootctl
527
528# Storage: for factory reset protection feature
529PRODUCT_PROPERTY_OVERRIDES += \
530    ro.frp.pst=/dev/block/platform/soc/624000.ufshc/by-name/frp
531
532PRODUCT_PROPERTY_OVERRIDES += \
533    sdm.debug.disable_rotator_split=1 \
534    qdcm.only_pcc_for_trans=1 \
535    qdcm.diagonal_matrix_mode=1
536
537# Enable low power video mode for 4K encode
538PRODUCT_PROPERTY_OVERRIDES += \
539    vidc.debug.perf.mode=2
540
541# OEM Unlock reporting
542PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
543    ro.oem_unlock_supported=1
544
545# Setup dm-verity configs
546PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/624000.ufshc/by-name/system
547PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/platform/soc/624000.ufshc/by-name/vendor
548$(call inherit-product, build/target/product/verity.mk)
549
550# Partitions (listed in the file) to be wiped under recovery.
551TARGET_RECOVERY_WIPE := \
552    device/google/marlin/recovery.wipe.common
553
554# GPS configuration file
555PRODUCT_COPY_FILES += \
556    device/google/marlin/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf
557
558# Default permission grant exceptions
559PRODUCT_COPY_FILES += \
560    device/google/marlin/default-permissions.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default-permissions/default-permissions.xml
561
562# A/B OTA dexopt package
563PRODUCT_PACKAGES += otapreopt_script
564
565# A/B OTA dexopt update_engine hookup
566AB_OTA_POSTINSTALL_CONFIG += \
567    RUN_POSTINSTALL_system=true \
568    POSTINSTALL_PATH_system=system/bin/otapreopt_script \
569    FILESYSTEM_TYPE_system=ext4 \
570    POSTINSTALL_OPTIONAL_system=true
571
572#Reduce cost of scrypt for FBE CE decryption
573PRODUCT_PROPERTY_OVERRIDES += \
574    ro.crypto.scrypt_params=13:3:1
575
576# Set if a device image has the VTS coverage instrumentation.
577ifeq ($(NATIVE_COVERAGE),true)
578PRODUCT_PROPERTY_OVERRIDES += \
579    ro.vts.coverage=1
580PRODUCT_SUPPORTS_VERITY_FEC := false
581endif
582
583# Add minidebug info to the system server to support diagnosing native crashes.
584ifneq (,$(filter user userdebug, $(TARGET_BUILD_VARIANT)))
585    # System server and some of its services.
586    # Note: we cannot use PRODUCT_SYSTEM_SERVER_JARS, as it has not been expanded at this point.
587    $(call add-product-dex-preopt-module-config,services,--generate-mini-debug-info)
588    $(call add-product-dex-preopt-module-config,wifi-service,--generate-mini-debug-info)
589endif
590
591# b/35633646
592# Statically linked toybox for modprobe in recovery mode
593PRODUCT_PACKAGES += \
594    toybox_static
595
596ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
597ifeq (,$(filter aosp_marlin aosp_sailfish, $(TARGET_PRODUCT)))
598PRODUCT_PACKAGES += \
599    NexusLogger
600endif # filter it out for aosp build
601endif
602
603# b/30349163
604# Set Marlin/Sailfish default log size on userdebug/eng build to 1M
605ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
606PRODUCT_PROPERTY_OVERRIDES += ro.logd.size=1M
607endif
608
609# b/32109329
610# Workaround for audio glitches
611PRODUCT_PROPERTY_OVERRIDES += \
612    audio.adm.buffering.ms=3
613
614# Vendor seccomp policy files for media components:
615PRODUCT_COPY_FILES += \
616    device/google/marlin/seccomp_policy/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy
617
618# whitelisted app
619PRODUCT_COPY_FILES += \
620    device/google/marlin/qti_whitelist.xml:system/etc/sysconfig/qti_whitelist.xml
621
622PRODUCT_PROPERTY_OVERRIDES += \
623    ro.vendor.vndk.version=26.1.0 \
624
625PRODUCT_PACKAGES += \
626    android.hardware.renderscript@1.0.vndk-sp\
627    android.hardware.graphics.allocator@2.0.vndk-sp\
628    android.hardware.graphics.mapper@2.0.vndk-sp\
629    android.hardware.graphics.common@1.0.vndk-sp\
630    android.hidl.base@1.0.vndk-sp\
631    libhwbinder.vndk-sp\
632    libbase.vndk-sp\
633    libcutils.vndk-sp\
634    libhardware.vndk-sp\
635    libhidlbase.vndk-sp\
636    libhidltransport.vndk-sp\
637    libutils.vndk-sp\
638    libc++.vndk-sp\
639    libRS_internal.vndk-sp\
640    libRSDriver.vndk-sp\
641    libRSCpuRef.vndk-sp\
642    libbcinfo.vndk-sp\
643    libblas.vndk-sp\
644    libft2.vndk-sp\
645    libpng.vndk-sp\
646    libcompiler_rt.vndk-sp\
647    libbacktrace.vndk-sp\
648    libunwind.vndk-sp\
649    liblzma.vndk-sp\
650