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