1# 2# Copyright (C) 2021 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 17ifdef RELEASE_GOOGLE_CAIMAN_RADIO_DIR 18RELEASE_GOOGLE_PRODUCT_RADIO_DIR := $(RELEASE_GOOGLE_CAIMAN_RADIO_DIR) 19endif 20ifdef RELEASE_GOOGLE_CAIMAN_RADIOCFG_DIR 21RELEASE_GOOGLE_PRODUCT_RADIOCFG_DIR := $(RELEASE_GOOGLE_CAIMAN_RADIOCFG_DIR) 22endif 23RELEASE_GOOGLE_BOOTLOADER_CAIMAN_DIR ?= 24D1# Keep this for pdk TODO: b/327119000 24RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/$(RELEASE_GOOGLE_BOOTLOADER_CAIMAN_DIR) 25$(call soong_config_set,caimito_bootloader,prebuilt_dir,$(RELEASE_GOOGLE_BOOTLOADER_CAIMAN_DIR)) 26 27ifdef RELEASE_KERNEL_CAIMAN_DIR 28TARGET_KERNEL_DIR ?= $(RELEASE_KERNEL_CAIMAN_DIR) 29TARGET_BOARD_KERNEL_HEADERS ?= $(RELEASE_KERNEL_CAIMAN_DIR)/kernel-headers 30else 31TARGET_KERNEL_DIR ?= device/google/caimito-kernels/6.1/24D1 32TARGET_BOARD_KERNEL_HEADERS ?= device/google/caimito-kernels/6.1/24D1/kernel-headers 33endif 34 35LOCAL_PATH := device/google/caimito 36 37ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 38 USE_UWBFIELDTESTQM := true 39endif 40ifeq ($(filter factory_caiman, $(TARGET_PRODUCT)),) 41 include device/google/caimito/caiman/uwb/uwb_calibration.mk 42endif 43 44$(call inherit-product-if-exists, vendor/google_devices/caimito/prebuilts/device-vendor-caiman.mk) 45$(call inherit-product-if-exists, vendor/google_devices/zumapro/prebuilts/device-vendor.mk) 46$(call inherit-product-if-exists, vendor/google_devices/zumapro/proprietary/device-vendor.mk) 47$(call inherit-product-if-exists, vendor/google_devices/caiman/proprietary/device-vendor.mk) 48$(call inherit-product-if-exists, vendor/google_devices/caimito/proprietary/caiman/device-vendor-caiman.mk) 49$(call inherit-product-if-exists, vendor/qorvo/uwb/qm35-hal/Device.mk) 50 51ifeq ($(filter factory_caiman, $(TARGET_PRODUCT)),) 52 $(call inherit-product-if-exists, vendor/google_devices/caimito/proprietary/WallpapersCaiman.mk) 53endif 54 55# display 56DEVICE_PACKAGE_OVERLAYS += device/google/caimito/caiman/overlay 57 58ifeq ($(RELEASE_PIXEL_AIDL_AUDIO_HAL),true) 59USE_AUDIO_HAL_AIDL := true 60endif 61 62include device/google/caimito/audio/caiman/audio-tables.mk 63include device/google/zumapro/device-shipping-common.mk 64include hardware/google/pixel/vibrator/cs40l26/device.mk 65include device/google/gs-common/bcmbt/bluetooth.mk 66include device/google/gs-common/touch/gti/predump_gti.mk 67include device/google/caimito/fingerprint/ultrasonic_udfps.mk 68include device/google/gs-common/modem/radio_ext/radio_ext.mk 69include device/google/gs-common/pixelsupport/pixelsupport.mk 70 71# Increment the SVN for any official public releases 72ifdef RELEASE_SVN_CAIMAN 73TARGET_SVN ?= $(RELEASE_SVN_CAIMAN) 74else 75# Set this for older releases that don't use build flag 76TARGET_SVN ?= 04 77endif 78 79PRODUCT_VENDOR_PROPERTIES += \ 80 ro.vendor.build.svn=$(TARGET_SVN) 81 82# go/lyric-soong-variables 83$(call soong_config_set,lyric,camera_hardware,caiman) 84$(call soong_config_set,lyric,tuning_product,caiman) 85$(call soong_config_set,google3a_config,target_device,caiman) 86 87PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.ignore_hdr_camera_layers=true 88 89# Init files 90PRODUCT_COPY_FILES += \ 91 device/google/caimito/conf/init.caiman.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.caiman.rc 92 93# Recovery files 94PRODUCT_COPY_FILES += \ 95 device/google/caimito/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.caiman.rc 96 97# NFC 98PRODUCT_COPY_FILES += \ 99 frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \ 100 frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \ 101 frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \ 102 frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \ 103 frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml \ 104 device/google/caimito/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \ 105 device/google/caimito/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf 106 107PRODUCT_PACKAGES += \ 108 $(RELEASE_PACKAGE_NFC_STACK) \ 109 Tag \ 110 android.hardware.nfc-service.st \ 111 NfcOverlayCaiman 112 113# SecureElement 114PRODUCT_PACKAGES += \ 115 android.hardware.secure_element-service.thales 116 117PRODUCT_COPY_FILES += \ 118 frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \ 119 frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \ 120 device/google/caimito/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf 121 122# Bluetooth HAL 123PRODUCT_COPY_FILES += \ 124 device/google/caimito/bluetooth/bt_vendor_overlay_caiman.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf 125PRODUCT_PROPERTY_OVERRIDES += \ 126 ro.bluetooth.a2dp_offload.supported=true \ 127 persist.bluetooth.a2dp_offload.disabled=false \ 128 persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac-opus 129 130# Coex Config 131PRODUCT_SOONG_NAMESPACES += device/google/caimito/radio/caiman/coex 132PRODUCT_PACKAGES += \ 133 camera_front_mipi_coex_table \ 134 camera_rear_main_dbr_coex_table \ 135 camera_rear_main_mipi_coex_table \ 136 camera_rear_tele_mipi_coex_table \ 137 camera_rear_wide_mipi_coex_table \ 138 display_primary_mipi_coex_table 139 140# Bluetooth Tx power caps 141PRODUCT_COPY_FILES += \ 142 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_caiman.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \ 143 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_caiman_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_JP.csv \ 144 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_caiman_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_CA.csv \ 145 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_caiman_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_EU.csv \ 146 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_caiman_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_US.csv 147 148# DCK properties based on target 149PRODUCT_PROPERTY_OVERRIDES += \ 150 ro.gms.dck.eligible_wcc=3 \ 151 ro.gms.dck.se_capability=1 152 153# POF 154PRODUCT_PRODUCT_PROPERTIES += \ 155 ro.bluetooth.finder.supported=true 156 157# Spatial Audio 158PRODUCT_PACKAGES += \ 159 libspatialaudio 160 161# declare use of spatial audio 162PRODUCT_PROPERTY_OVERRIDES += \ 163 ro.audio.spatializer_enabled=true 164 165# declare use of stereo spatialization 166PRODUCT_PROPERTY_OVERRIDES += \ 167 ro.audio.stereo_spatialization_enabled=true 168 169ifneq ($(USE_AUDIO_HAL_AIDL),true) 170# HIDL Sound Dose 171PRODUCT_PACKAGES += \ 172 android.hardware.audio.sounddose-vendor-impl \ 173 audio_sounddose_aoc 174endif 175 176# HdMic Audio 177PRODUCT_SOONG_NAMESPACES += device/google/caimito/audio/caiman/prebuilt/libspeechenhancer 178PRODUCT_PROPERTY_OVERRIDES += \ 179 persist.vendor.app.audio.gsenet.version=1 180PRODUCT_PACKAGES += \ 181 libspeechenhancer 182 183# Audio CCA property 184PRODUCT_PROPERTY_OVERRIDES += \ 185 persist.vendor.audio.cca.enabled=false 186 187# Bluetooth hci_inject test tool 188PRODUCT_PACKAGES_DEBUG += \ 189 hci_inject 190 191# Bluetooth OPUS codec 192PRODUCT_PRODUCT_PROPERTIES += \ 193 persist.bluetooth.opus.enabled=true 194 195# Bluetooth SAR test tool 196PRODUCT_PACKAGES_DEBUG += \ 197 sar_test 198 199# Bluetooth EWP test tool 200PRODUCT_PACKAGES_DEBUG += \ 201 ewp_tool 202 203# Bluetooth AAC VBR 204PRODUCT_PRODUCT_PROPERTIES += \ 205 persist.bluetooth.a2dp_aac.vbr_supported=true 206 207# Bluetooth Super Wide Band 208PRODUCT_PRODUCT_PROPERTIES += \ 209 bluetooth.hfp.swb.supported=true 210 211# Override BQR mask to enable LE Audio Choppy report, remove BTRT logging 212ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 213PRODUCT_PRODUCT_PROPERTIES += \ 214 persist.bluetooth.bqr.event_mask=295006 \ 215 persist.bluetooth.bqr.vnd_quality_mask=29 \ 216 persist.bluetooth.bqr.vnd_trace_mask=0 \ 217 persist.bluetooth.vendor.btsnoop=true 218else 219PRODUCT_PRODUCT_PROPERTIES += \ 220 persist.bluetooth.bqr.event_mask=295006 \ 221 persist.bluetooth.bqr.vnd_quality_mask=16 \ 222 persist.bluetooth.bqr.vnd_trace_mask=0 \ 223 persist.bluetooth.vendor.btsnoop=false 224endif 225 226# default BDADDR for EVB only 227PRODUCT_PROPERTY_OVERRIDES += \ 228 ro.vendor.bluetooth.evb_bdaddr="22:22:22:33:44:55" 229 230# Spatial Audio 231PRODUCT_PACKAGES += \ 232 libspatialaudio \ 233 librondo 234 235# Keymaster HAL 236#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service 237 238# Gatekeeper HAL 239#LOCAL_GATEKEEPER_PRODUCT_PACKAGE ?= android.hardware.gatekeeper@1.0-service.software 240 241 242# Gatekeeper 243# PRODUCT_PACKAGES += \ 244# android.hardware.gatekeeper@1.0-service.software 245 246# Keymint replaces Keymaster 247# PRODUCT_PACKAGES += \ 248# android.hardware.security.keymint-service 249 250# Keymaster 251#PRODUCT_PACKAGES += \ 252# android.hardware.keymaster@4.0-impl \ 253# android.hardware.keymaster@4.0-service 254 255#PRODUCT_PACKAGES += android.hardware.keymaster@4.0-service.remote 256#PRODUCT_PACKAGES += android.hardware.keymaster@4.1-service.remote 257#LOCAL_KEYMASTER_PRODUCT_PACKAGE := android.hardware.keymaster@4.1-service 258#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service 259 260# PRODUCT_PROPERTY_OVERRIDES += \ 261# ro.hardware.keystore_desede=true \ 262# ro.hardware.keystore=software \ 263# ro.hardware.gatekeeper=software 264 265# PowerStats HAL 266PRODUCT_SOONG_NAMESPACES += \ 267 device/google/caimito/powerstats/caiman 268 269# WiFi Overlay 270PRODUCT_PACKAGES += \ 271 WifiOverlay2024 272 273# Settings Overlay 274PRODUCT_PACKAGES += \ 275 SettingsCaimanOverlay 276 277# Trusty liboemcrypto.so 278PRODUCT_SOONG_NAMESPACES += vendor/google_devices/caimito/prebuilts 279 280# UWB 281PRODUCT_SOONG_NAMESPACES += \ 282 device/google/caimito/caiman/uwb 283 284# Location 285PRODUCT_SOONG_NAMESPACES += device/google/caimito/location/caiman 286$(call soong_config_set, gpssdk, buildtype, $(TARGET_BUILD_VARIANT)) 287PRODUCT_PACKAGES += gps.cfg 288# For GPS property 289PRODUCT_VENDOR_PROPERTIES += ro.vendor.gps.pps.enabled=true 290 291# Display LBE 292PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1 293 294# Display ACL 295PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.acl.default=1 296 297#Thermal VT estimator 298PRODUCT_PACKAGES += \ 299 libthermal_tflite_wrapper 300 301PRODUCT_VENDOR_PROPERTIES += \ 302 persist.device_config.configuration.disable_rescue_party=true 303 304PRODUCT_VENDOR_PROPERTIES += \ 305 persist.vendor.udfps.als_feed_forward_supported=true \ 306 persist.vendor.udfps.lhbm_controlled_in_hal_supported=true 307 308# OIS with system imu 309PRODUCT_VENDOR_PROPERTIES += \ 310 persist.vendor.camera.ois_with_system_imu=true 311 312# Allow external binning setting 313PRODUCT_VENDOR_PROPERTIES += \ 314 persist.vendor.camera.allow_external_binning_setting=true 315 316# Camera Vendor property 317PRODUCT_VENDOR_PROPERTIES += \ 318 persist.vendor.camera.front_720P_always_binning=true 319 320# Enable camera exif model/make reporting 321PRODUCT_VENDOR_PROPERTIES += \ 322 persist.vendor.camera.exif_reveal_make_model=true 323 324# Media Performance Class 14 325PRODUCT_PRODUCT_PROPERTIES += ro.odm.build.media_performance_class=34 326 327# Display RRS default Config 328PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.vendor.display.primary.boot_config=960x2142@120:120 329PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.vendor.primarydisplay.preferred_mode=960x2142@120:120 330 331ifeq ($(filter factory_caiman, $(TARGET_PRODUCT)),) 332 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.vendor.primarydisplay.xrr.version=2.1 333 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.vendor.primarydisplay.blocking_zone.min_refresh_rate_by_nits=:1 334 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.vendor.primarydisplay.vrr.expected_present.headsup_ns=30000000 335 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.vendor.primarydisplay.vrr.expected_present.timeout_ns=500000000 336endif 337 338# Display fixed TE2 339PRODUCT_VENDOR_PROPERTIES += vendor.primarydisplay.fixed_te2.default_rate_hz=120 340 341# Vibrator HAL 342$(call soong_config_set,haptics,kernel_ver,v$(subst .,_,$(TARGET_LINUX_KERNEL_VERSION))) 343ACTUATOR_MODEL := luxshare_ict_081545 344ADAPTIVE_HAPTICS_FEATURE := adaptive_haptics_v1 345PRODUCT_VENDOR_PROPERTIES += \ 346 ro.vendor.vibrator.hal.chirp.enabled=1 \ 347 ro.vendor.vibrator.hal.device.mass=0.222 \ 348 ro.vendor.vibrator.hal.loc.coeff=2.8 \ 349 persist.vendor.vibrator.hal.context.enable=false \ 350 persist.vendor.vibrator.hal.context.scale=60 \ 351 persist.vendor.vibrator.hal.context.fade=true \ 352 persist.vendor.vibrator.hal.context.cooldowntime=1600 \ 353 persist.vendor.vibrator.hal.context.settlingtime=5000 \ 354 ro.vendor.vibrator.hal.pm.activetimeout=5 355 356# PKVM Memory Reclaim 357PRODUCT_VENDOR_PROPERTIES += \ 358 hypervisor.memory_reclaim.supported=1 359 360# Bluetooth LE Audio 361# Unicast 362PRODUCT_PRODUCT_PROPERTIES += \ 363 bluetooth.profile.bap.unicast.client.enabled=true \ 364 bluetooth.profile.csip.set_coordinator.enabled=true \ 365 bluetooth.profile.hap.client.enabled=true \ 366 bluetooth.profile.mcp.server.enabled=true \ 367 bluetooth.profile.ccp.server.enabled=true \ 368 bluetooth.profile.vcp.controller.enabled=true 369 370# Set support one-handed mode 371PRODUCT_PRODUCT_PROPERTIES += \ 372 ro.support_one_handed_mode=true 373 374ifeq ($(RELEASE_PIXEL_BROADCAST_ENABLED), true) 375PRODUCT_PRODUCT_PROPERTIES += \ 376 bluetooth.profile.bap.broadcast.assist.enabled=true \ 377 bluetooth.profile.bap.broadcast.source.enabled=true 378endif 379 380# LE Audio switcher in developer options 381PRODUCT_PRODUCT_PROPERTIES += \ 382 ro.bluetooth.leaudio_switcher.supported=true \ 383 384# Enable hardware offloading 385PRODUCT_PRODUCT_PROPERTIES += \ 386 ro.bluetooth.leaudio_offload.supported=true \ 387 persist.bluetooth.leaudio_offload.disabled=false 388 389# Bluetooth LE Audio CIS handover to SCO 390# Set the property only for the controller couldn't support CIS/SCO simultaneously. More detailed in b/242908683. 391PRODUCT_PRODUCT_PROPERTIES += \ 392 persist.bluetooth.leaudio.notify.idle.during.call=true 393 394# LE Audio Offload Capabilities setting 395PRODUCT_COPY_FILES += \ 396 device/google/caimito/bluetooth/le_audio_codec_capabilities.xml:$(TARGET_COPY_OUT_VENDOR)/etc/le_audio_codec_capabilities.xml 397 398# Disable LE Audio dual mic SWB call support 399# This may depend on the BT controller capability or the launch strategy 400# For example, P22 BT chip is not able to support 32k dual mic 401# P23a disabled the 32k dual mic as it is not in the phase 2 launch plan 402PRODUCT_PRODUCT_PROPERTIES += \ 403 bluetooth.leaudio.dual_bidirection_swb.supported=true 404 405# LE Audio Unicast Allowlist 406PRODUCT_PRODUCT_PROPERTIES += \ 407 persist.bluetooth.leaudio.allow_list=SM-R510 408 409# Support LE & Classic concurrent encryption (b/330704060) 410PRODUCT_PRODUCT_PROPERTIES += \ 411 bluetooth.ble.allow_enc_with_bredr=true 412 413# Keyboard height ratio and bottom padding in dp for portrait mode 414PRODUCT_PRODUCT_PROPERTIES += \ 415 ro.com.google.ime.kb_pad_port_b=8 \ 416 ro.com.google.ime.height_ratio=1.12 417 418# Exynos RIL and telephony 419# Support RIL Domain-selection 420SUPPORT_RIL_DOMAIN_SELECTION := true 421 422# ETM 423ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 424$(call inherit-product-if-exists, device/google/common/etm/device-userdebug-modules.mk) 425endif 426 427# Enable Bluetooth AutoOn feature 428PRODUCT_PRODUCT_PROPERTIES += \ 429 bluetooth.server.automatic_turn_on=true 430 431# Window Extensions 432$(call inherit-product, $(SRC_TARGET_DIR)/product/window_extensions.mk) 433 434# Connectivity Resources Overlay 435PRODUCT_PACKAGES += \ 436 ConnectivityResourcesOverlayCaimitoOverride 437 438#Component Override for Pixel Troubleshooting App 439PRODUCT_COPY_FILES += \ 440 device/google/caimito/caiman/caiman-component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/caiman-component-overrides.xml 441 442PRODUCT_PRODUCT_PROPERTIES += \ 443 persist.bluetooth.thread_dispatcher.enabled=true 444