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     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
     47 PRODUCT_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
     53 PRODUCT_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
     61 PRODUCT_PACKAGES += libGLES_android
     62 PRODUCT_PACKAGES += SSRestartDetector
     63 
     64 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
     65 PRODUCT_PACKAGES += TelephonyMonitor
     66 endif
     67 
     68 # graphics
     69 PRODUCT_PROPERTY_OVERRIDES += \
     70     ro.opengles.version=196610
     71 
     72 # HWUI common settings
     73 PRODUCT_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
     84 PRODUCT_PACKAGES += fs_config_files \
     85                     fs_config_dirs
     86 
     87 # TextClassifier smart selection models files
     88 PRODUCT_PACKAGES += \
     89     textclassifier.smartselection.bundle1
     90 
     91 # Audio configuration
     92 USE_XML_AUDIO_POLICY_CONF := 1
     93 PRODUCT_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 
    113 PRODUCT_FULL_TREBLE_OVERRIDE := true
    114 PRODUCT_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 
    128 PRODUCT_PROPERTY_OVERRIDES += ro.hardware.power=marlin
    129 
    130 # RenderScript HAL
    131 PRODUCT_PACKAGES += \
    132     android.hardware.renderscript@1.0-impl
    133 
    134 # Light HAL
    135 PRODUCT_PACKAGES += \
    136     android.hardware.light@2.0-impl
    137 
    138 # Keymaster HAL
    139 PRODUCT_PACKAGES += \
    140     android.hardware.keymaster@3.0-impl \
    141     android.hardware.keymaster@3.0-service
    142 
    143 # Usb HAL
    144 PRODUCT_PACKAGES += \
    145     android.hardware.usb@1.0-service.marlin
    146 
    147 # Audio effects
    148 PRODUCT_PACKAGES += \
    149     libqcomvisualizer \
    150     libqcomvoiceprocessing \
    151     libqcomvoiceprocessingdescriptors \
    152     libqcompostprocbundle
    153 
    154 PRODUCT_PACKAGES += \
    155     sound_trigger.primary.msm8996
    156 
    157 PRODUCT_PACKAGES += \
    158     android.hardware.audio@2.0-impl \
    159     android.hardware.audio.effect@2.0-impl \
    160     android.hardware.soundtrigger@2.0-impl
    161 
    162 PRODUCT_PACKAGES += \
    163     android.hardware.drm@1.0-impl
    164 
    165 PRODUCT_PACKAGES += \
    166     netutils-wrapper-1.0
    167 
    168 # set audio fluence, ns, aec property
    169 PRODUCT_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
    177 PRODUCT_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
    184 PRODUCT_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
    188 PRODUCT_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
    192 PRODUCT_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
    196 PRODUCT_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
    203 PRODUCT_PACKAGES += \
    204     android.hardware.dumpstate@1.0-service.marlin
    205 
    206 # Wi-Fi
    207 PRODUCT_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
    217 PRODUCT_PACKAGES += \
    218     AntHalService \
    219     libantradio \
    220     antradio_app \
    221     libvolumelistener
    222 
    223 # Sensor features
    224 PRODUCT_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
    236 PRODUCT_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
    241 PRODUCT_COPY_FILES += \
    242     device/google/marlin/spn-conf.xml:system/etc/spn-conf.xml
    243 
    244 # new gatekeeper HAL
    245 PRODUCT_PACKAGES += \
    246     android.hardware.gatekeeper@1.0-impl \
    247     android.hardware.gatekeeper@1.0-service
    248 
    249 # Common sensor packages
    250 TARGET_USES_NANOHUB_SENSORHAL := true
    251 NANOHUB_SENSORHAL_LID_STATE_ENABLED := true
    252 NANOHUB_SENSORHAL_SENSORLIST := $(LOCAL_PATH)/sensorhal/sensorlist.cpp
    253 NANOHUB_SENSORHAL_DIRECT_REPORT_ENABLED := true
    254 NANOHUB_SENSORHAL_DYNAMIC_SENSOR_EXT_ENABLED := true
    255 
    256 PRODUCT_PACKAGES += \
    257     context_hub.default \
    258     android.hardware.sensors@1.0-impl \
    259     android.hardware.contexthub@1.0-impl \
    260 
    261 PRODUCT_PACKAGES += \
    262     nanoapp_cmd
    263 
    264 # sensor utilities (only for userdebug and eng builds)
    265 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
    266 PRODUCT_PACKAGES += \
    267     nanotool \
    268     sensortest
    269 endif
    270 
    271 PRODUCT_COPY_FILES += \
    272     device/google/marlin/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config
    273 
    274 PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/624000.ufshc/by-name/system
    275 
    276 #FEATURE_OPENGLES_EXTENSION_PACK support string config file
    277 PRODUCT_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
    281 PRODUCT_COPY_FILES += \
    282     device/google/marlin/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf
    283 
    284 # init scripts
    285 PRODUCT_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
    297 PRODUCT_PROPERTY_OVERRIDES += \
    298     af.fast_track_multiplier=1
    299 
    300 # Low latency audio buffer size in frames
    301 PRODUCT_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
    306 ifneq ($(filter aosp_sailfish% sailfish% aosp_marlin% marlin%, $(TARGET_PRODUCT)),)
    307 PRODUCT_PROPERTY_OVERRIDES += \
    308     media.recorder.show_manufacturer_and_model=true
    309 else
    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.")
    311 endif  #TARGET_PRODUCT
    312 
    313 PRODUCT_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
    320 PRODUCT_PROPERTY_OVERRIDES += \
    321     qcom.bluetooth.soc=rome
    322 
    323 PRODUCT_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 
    337 PRODUCT_PROPERTY_OVERRIDES += \
    338     persist.data.mode=concurrent
    339 
    340 # Enable SM log mechanism by default
    341 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
    342 PRODUCT_PROPERTY_OVERRIDES += \
    343     persist.radio.smlog_switch=1 \
    344     ro.radio.log_prefix="modem_log_" \
    345     ro.radio.log_loc="/data/smlog_dump"
    346 endif
    347 
    348 # Disable snapshot feature
    349 PRODUCT_PROPERTY_OVERRIDES += \
    350     persist.radio.snapshot_enabled=0 \
    351     persist.radio.snapshot_timer=0
    352 
    353 # IMS over WiFi
    354 PRODUCT_PROPERTY_OVERRIDES += \
    355     persist.data.iwlan.enable=true
    356 
    357 # LTE, CDMA, GSM/WCDMA
    358 PRODUCT_PROPERTY_OVERRIDES += \
    359     ro.telephony.default_network=10 \
    360     telephony.lteOnCdmaDevice=1
    361 
    362 PRODUCT_AAPT_CONFIG += xlarge large
    363 PRODUCT_CHARACTERISTICS := nosdcard
    364 
    365 # Enable camera EIS
    366 # eis.enable: enables electronic image stabilization
    367 # is_type: sets image stabilization type
    368 PRODUCT_PROPERTY_OVERRIDES += \
    369     persist.camera.eis.enable=1 \
    370     persist.camera.is_type=4
    371 
    372 # Fingerprint HIDL implementation
    373 PRODUCT_PACKAGES += \
    374     android.hardware.biometrics.fingerprint@2.1-service
    375 
    376 PRODUCT_COPY_FILES += \
    377     frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
    378 
    379 INIT_COMMON_DIAG_RC := $(TARGET_COPY_OUT_VENDOR)/etc/init/init.diag.rc
    380 
    381 # Modem debugger
    382 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
    383 PRODUCT_COPY_FILES += \
    384     device/google/marlin/init.common.diag.rc.userdebug:$(INIT_COMMON_DIAG_RC)
    385 
    386 # Subsystem ramdump
    387 PRODUCT_PROPERTY_OVERRIDES += \
    388     persist.sys.ssr.enable_ramdumps=1
    389 else
    390 PRODUCT_COPY_FILES += \
    391     device/google/marlin/init.common.diag.rc.user:$(INIT_COMMON_DIAG_RC)
    392 endif
    393 
    394 # Subsystem silent restart
    395 PRODUCT_PROPERTY_OVERRIDES += \
    396     persist.sys.ssr.restart_level=venus,AR6320,slpi,modem,adsp
    397 
    398 PRODUCT_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
    411 PRODUCT_PROPERTY_OVERRIDES += \
    412     ro.bt.bdaddr_path=/sys/module/bdaddress/parameters/bdaddress
    413 
    414 # Needed for encryption
    415 PRODUCT_PACKAGES += \
    416     keystore.msm8996 \
    417     gatekeeper.msm8996
    418 
    419 # Use the A/B updater.
    420 AB_OTA_UPDATER := true
    421 PRODUCT_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.
    427 PRODUCT_STATIC_BOOT_CONTROL_HAL := \
    428     bootctrl.msm8996 \
    429     libgptutils \
    430     libsparse
    431 PRODUCT_PACKAGES += \
    432     update_engine_sideload
    433 
    434 # Tell the system to enable copying odexes from other partition.
    435 PRODUCT_PACKAGES += \
    436 	cppreopts.sh
    437 
    438 PRODUCT_PROPERTY_OVERRIDES += \
    439     ro.cp_system_other_odex=1
    440 
    441 # Script that copies preloads directory from system_other to data partition
    442 PRODUCT_COPY_FILES += \
    443     device/google/marlin/preloads_copy.sh:system/bin/preloads_copy.sh
    444 
    445 PRODUCT_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.
    451 AB_OTA_PARTITIONS += \
    452     boot \
    453     system
    454 
    455 # Bluetooth HAL
    456 PRODUCT_PACKAGES += \
    457     libbt-vendor \
    458     android.hardware.bluetooth@1.0-impl
    459 
    460 # NFC packages
    461 PRODUCT_PACKAGES += \
    462     NfcNci \
    463     Tag \
    464     android.hardware.nfc@1.0-impl
    465 
    466 # Thermal HAL
    467 PRODUCT_PACKAGES += \
    468     android.hardware.thermal@1.0-impl
    469 
    470 #GNSS HAL
    471 PRODUCT_PACKAGES += \
    472     android.hardware.gnss@1.0-impl
    473 
    474 # Vibrator
    475 PRODUCT_PACKAGES += \
    476     android.hardware.vibrator@1.0-service.marlin \
    477 
    478 # VR
    479 PRODUCT_PACKAGES += \
    480     android.hardware.vr@1.0-impl
    481 
    482 # Gralloc
    483 PRODUCT_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
    489 PRODUCT_PACKAGES += \
    490     android.hardware.graphics.composer@2.1-impl \
    491     android.hardware.graphics.composer@2.1-service
    492 
    493 # Boot control
    494 PRODUCT_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)
    499 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
    500 # Test HAL for hwbinder performance benchmark.
    501 PRODUCT_PACKAGES += \
    502      android.hardware.tests.libhwbinder@1.0-impl
    503 
    504 # Test HAL for FMQ performance benchmark.
    505 PRODUCT_PACKAGES += \
    506      android.hardware.tests.msgq@1.0-impl
    507 
    508 # For VTS profiling.
    509 PRODUCT_PACKAGES += \
    510      libvts_profiling \
    511      libvts_multidevice_proto
    512 endif
    513 
    514 # NFC/camera interaction workaround - DO NOT COPY TO NEW DEVICES
    515 PRODUCT_PROPERTY_OVERRIDES += \
    516     ro.camera.notify_nfc=1
    517 
    518 PRODUCT_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.
    523 PRODUCT_PACKAGES += \
    524     bootctrl.msm8996
    525 PRODUCT_PACKAGES_DEBUG += \
    526     bootctl
    527 
    528 # Storage: for factory reset protection feature
    529 PRODUCT_PROPERTY_OVERRIDES += \
    530     ro.frp.pst=/dev/block/platform/soc/624000.ufshc/by-name/frp
    531 
    532 PRODUCT_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
    538 PRODUCT_PROPERTY_OVERRIDES += \
    539     vidc.debug.perf.mode=2
    540 
    541 # OEM Unlock reporting
    542 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
    543     ro.oem_unlock_supported=1
    544 
    545 # Setup dm-verity configs
    546 PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/624000.ufshc/by-name/system
    547 PRODUCT_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.
    551 TARGET_RECOVERY_WIPE := \
    552     device/google/marlin/recovery.wipe.common
    553 
    554 # GPS configuration file
    555 PRODUCT_COPY_FILES += \
    556     device/google/marlin/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf
    557 
    558 # Default permission grant exceptions
    559 PRODUCT_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
    563 PRODUCT_PACKAGES += otapreopt_script
    564 
    565 # A/B OTA dexopt update_engine hookup
    566 AB_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
    573 PRODUCT_PROPERTY_OVERRIDES += \
    574     ro.crypto.scrypt_params=13:3:1
    575 
    576 # Set if a device image has the VTS coverage instrumentation.
    577 ifeq ($(NATIVE_COVERAGE),true)
    578 PRODUCT_PROPERTY_OVERRIDES += \
    579     ro.vts.coverage=1
    580 PRODUCT_SUPPORTS_VERITY_FEC := false
    581 endif
    582 
    583 # Add minidebug info to the system server to support diagnosing native crashes.
    584 ifneq (,$(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)
    589 endif
    590 
    591 # b/35633646
    592 # Statically linked toybox for modprobe in recovery mode
    593 PRODUCT_PACKAGES += \
    594     toybox_static
    595 
    596 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
    597 ifeq (,$(filter aosp_marlin aosp_sailfish, $(TARGET_PRODUCT)))
    598 PRODUCT_PACKAGES += \
    599     NexusLogger
    600 endif # filter it out for aosp build
    601 endif
    602 
    603 # b/30349163
    604 # Set Marlin/Sailfish default log size on userdebug/eng build to 1M
    605 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
    606 PRODUCT_PROPERTY_OVERRIDES += ro.logd.size=1M
    607 endif
    608 
    609 # b/32109329
    610 # Workaround for audio glitches
    611 PRODUCT_PROPERTY_OVERRIDES += \
    612     audio.adm.buffering.ms=3
    613 
    614 # Vendor seccomp policy files for media components:
    615 PRODUCT_COPY_FILES += \
    616     device/google/marlin/seccomp_policy/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy
    617 
    618 # whitelisted app
    619 PRODUCT_COPY_FILES += \
    620     device/google/marlin/qti_whitelist.xml:system/etc/sysconfig/qti_whitelist.xml
    621 
    622 PRODUCT_PROPERTY_OVERRIDES += \
    623     ro.vendor.vndk.version=26.1.0 \
    624 
    625 PRODUCT_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