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