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