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 17TARGET_KERNEL_DIR ?= device/google/shusky-kernel 18TARGET_BOARD_KERNEL_HEADERS := device/google/shusky-kernel/kernel-headers 19 20LOCAL_PATH := device/google/shusky 21 22ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 23 USE_UWBFIELDTESTQM := true 24endif 25 26$(call inherit-product-if-exists, vendor/google_devices/shusky/prebuilts/device-vendor-husky.mk) 27$(call inherit-product-if-exists, vendor/google_devices/zuma/prebuilts/device-vendor.mk) 28$(call inherit-product-if-exists, vendor/google_devices/zuma/proprietary/device-vendor.mk) 29$(call inherit-product-if-exists, vendor/google_devices/shusky/proprietary/husky/device-vendor-husky.mk) 30$(call inherit-product-if-exists, vendor/google_devices/husky/proprietary/device-vendor.mk) 31$(call inherit-product-if-exists, vendor/qorvo/uwb/qm35-hal/Device.mk) 32$(call inherit-product-if-exists, vendor/google_devices/shusky/proprietary/WallpapersHusky.mk) 33 34# display 35DEVICE_PACKAGE_OVERLAYS += device/google/shusky/husky/overlay 36PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.ignore_hdr_camera_layers=true 37 38PRODUCT_COPY_FILES += \ 39 device/google/shusky/husky/display_colordata_dev_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_dev_cal0.pb \ 40 device/google/shusky/husky/display_golden_google-hk3_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_google-hk3_cal0.pb 41 42include device/google/shusky/audio/husky/audio-tables.mk 43include device/google/zuma/device-shipping-common.mk 44include hardware/google/pixel/vibrator/cs40l26/device.mk 45include device/google/gs-common/bcmbt/bluetooth.mk 46include device/google/gs-common/touch/stm/stm20.mk 47include device/google/gs-common/touch/gti/gti.mk 48include device/google/gs-common/touch/touchinspector/touchinspector.mk 49 50# go/lyric-soong-variables 51$(call soong_config_set,lyric,camera_hardware,husky) 52$(call soong_config_set,lyric,tuning_product,husky) 53$(call soong_config_set,google3a_config,target_device,husky) 54 55# Init files 56PRODUCT_COPY_FILES += \ 57 device/google/shusky/conf/init.husky.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.husky.rc 58 59# Recovery files 60PRODUCT_COPY_FILES += \ 61 device/google/shusky/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.husky.rc 62 63# MIPI Coex Configs 64PRODUCT_COPY_FILES += \ 65 device/google/shusky/husky/radio/husky_camera_front_dbr_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/camera_front_dbr_coex_table.csv \ 66 device/google/shusky/husky/radio/husky_camera_front_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/camera_front_mipi_coex_table.csv \ 67 device/google/shusky/husky/radio/husky_camera_rear_tele_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/camera_rear_tele_mipi_coex_table.csv \ 68 device/google/shusky/husky/radio/husky_display_primary_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/display_primary_mipi_coex_table.csv 69 70# Camera 71PRODUCT_COPY_FILES += \ 72 device/google/shusky/media_profiles_husky.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml 73 74# NFC 75PRODUCT_COPY_FILES += \ 76 frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \ 77 frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \ 78 frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \ 79 frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \ 80 frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml \ 81 device/google/shusky/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \ 82 device/google/shusky/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf 83 84PRODUCT_PACKAGES += \ 85 NfcNci \ 86 Tag \ 87 android.hardware.nfc-service.st 88 89# SecureElement 90PRODUCT_PACKAGES += \ 91 android.hardware.secure_element-service.thales 92 93PRODUCT_COPY_FILES += \ 94 frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \ 95 frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \ 96 device/google/shusky/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf 97 98# Bluetooth HAL 99PRODUCT_COPY_FILES += \ 100 device/google/shusky/bluetooth/bt_vendor_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf 101PRODUCT_PROPERTY_OVERRIDES += \ 102 ro.bluetooth.a2dp_offload.supported=true \ 103 persist.bluetooth.a2dp_offload.disabled=false \ 104 persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac-opus 105 106# Bluetooth Tx power caps 107PRODUCT_COPY_FILES += \ 108 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \ 109 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_CA.csv \ 110 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_EU.csv \ 111 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_JP.csv \ 112 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_US.csv \ 113 $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_GC3VE_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GC3VE_EU.csv 114 115# POF 116PRODUCT_PRODUCT_PROPERTIES += \ 117 ro.bluetooth.finder.supported=true 118 119# Spatial Audio 120PRODUCT_PACKAGES += \ 121 libspatialaudio 122 123# declare use of spatial audio 124PRODUCT_PROPERTY_OVERRIDES += \ 125 ro.audio.spatializer_enabled=true 126 127# Audio CCA property 128PRODUCT_PROPERTY_OVERRIDES += \ 129 persist.vendor.audio.cca.enabled=false 130 131# DCK properties based on target 132PRODUCT_PROPERTY_OVERRIDES += \ 133 ro.gms.dck.eligible_wcc=3 \ 134 ro.gms.dck.se_capability=1 135 136# Bluetooth hci_inject test tool 137PRODUCT_PACKAGES_DEBUG += \ 138 hci_inject 139 140# Bluetooth OPUS codec 141PRODUCT_PRODUCT_PROPERTIES += \ 142 persist.bluetooth.opus.enabled=true 143 144# Bluetooth SAR test tool 145PRODUCT_PACKAGES_DEBUG += \ 146 sar_test 147 148# Bluetooth EWP test tool 149PRODUCT_PACKAGES_DEBUG += \ 150 ewp_tool 151 152# Bluetooth AAC VBR 153PRODUCT_PRODUCT_PROPERTIES += \ 154 persist.bluetooth.a2dp_aac.vbr_supported=true 155 156# Override BQR mask to enable LE Audio Choppy report, remove BTRT logging 157ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 158PRODUCT_PRODUCT_PROPERTIES += \ 159 persist.bluetooth.bqr.event_mask=295006 \ 160 persist.bluetooth.bqr.vnd_quality_mask=29 \ 161 persist.bluetooth.bqr.vnd_trace_mask=0 \ 162 persist.bluetooth.vendor.btsnoop=true 163else 164PRODUCT_PRODUCT_PROPERTIES += \ 165 persist.bluetooth.bqr.event_mask=295006 \ 166 persist.bluetooth.bqr.vnd_quality_mask=16 \ 167 persist.bluetooth.bqr.vnd_trace_mask=0 \ 168 persist.bluetooth.vendor.btsnoop=false 169endif 170 171# Spatial Audio 172PRODUCT_PACKAGES += \ 173 libspatialaudio \ 174 librondo 175 176# Bluetooth Super Wide Band 177PRODUCT_PRODUCT_PROPERTIES += \ 178 bluetooth.hfp.swb.supported=true 179 180# Bluetooth LE Audio 181PRODUCT_PRODUCT_PROPERTIES += \ 182 ro.bluetooth.leaudio_switcher.supported=true \ 183 bluetooth.profile.bap.unicast.client.enabled=true \ 184 bluetooth.profile.csip.set_coordinator.enabled=true \ 185 bluetooth.profile.hap.client.enabled=true \ 186 bluetooth.profile.mcp.server.enabled=true \ 187 bluetooth.profile.ccp.server.enabled=true \ 188 bluetooth.profile.vcp.controller.enabled=true 189 190# Bluetooth LE Audio enable hardware offloading 191PRODUCT_PRODUCT_PROPERTIES += \ 192 ro.bluetooth.leaudio_offload.supported=true \ 193 persist.bluetooth.leaudio_offload.disabled=false 194 195# Bluetooth LE Auido offload capabilities setting 196PRODUCT_COPY_FILES += \ 197 device/google/shusky/bluetooth/le_audio_codec_capabilities.xml:$(TARGET_COPY_OUT_VENDOR)/etc/le_audio_codec_capabilities.xml 198 199# Bluetooth LE Audio CIS handover to SCO 200# Set the property only for the controller couldn't support CIS/SCO simultaneously. More detailed in b/242908683. 201PRODUCT_PRODUCT_PROPERTIES += \ 202 persist.bluetooth.leaudio.notify.idle.during.call=true 203 204# Not support LE Audio dual mic SWB call based on the current launch strategy 205PRODUCT_PRODUCT_PROPERTIES += \ 206 bluetooth.leaudio.dual_bidirection_swb.supported=false 207 208# Support One-Handed mode 209PRODUCT_PRODUCT_PROPERTIES += \ 210 ro.support_one_handed_mode=true 211 212# Keymaster HAL 213#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service 214 215# Gatekeeper HAL 216#LOCAL_GATEKEEPER_PRODUCT_PACKAGE ?= android.hardware.gatekeeper@1.0-service.software 217 218 219# Gatekeeper 220# PRODUCT_PACKAGES += \ 221# android.hardware.gatekeeper@1.0-service.software 222 223# Keymint replaces Keymaster 224# PRODUCT_PACKAGES += \ 225# android.hardware.security.keymint-service 226 227# Keymaster 228#PRODUCT_PACKAGES += \ 229# android.hardware.keymaster@4.0-impl \ 230# android.hardware.keymaster@4.0-service 231 232#PRODUCT_PACKAGES += android.hardware.keymaster@4.0-service.remote 233#PRODUCT_PACKAGES += android.hardware.keymaster@4.1-service.remote 234#LOCAL_KEYMASTER_PRODUCT_PACKAGE := android.hardware.keymaster@4.1-service 235#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service 236 237# PRODUCT_PROPERTY_OVERRIDES += \ 238# ro.hardware.keystore_desede=true \ 239# ro.hardware.keystore=software \ 240# ro.hardware.gatekeeper=software 241 242# PowerStats HAL 243PRODUCT_SOONG_NAMESPACES += \ 244 device/google/shusky/powerstats/husky \ 245 device/google/shusky 246 247# WiFi Overlay 248PRODUCT_PACKAGES += \ 249 UwbOverlayHK3 \ 250 WifiOverlay2023 \ 251 PixelWifiOverlay2023 252 253# Trusty liboemcrypto.so 254PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts 255 256# Location 257# SDK build system 258include device/google/gs-common/gps/brcm/device.mk 259 260PRODUCT_COPY_FILES += \ 261 device/google/shusky/location/gps.cer:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.cer 262 263ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 264 PRODUCT_COPY_FILES += \ 265 device/google/shusky/location/lhd.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/lhd.conf \ 266 device/google/shusky/location/scd.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/scd.conf \ 267 device/google/shusky/location/gps.xml.hk3:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.xml 268else 269 PRODUCT_COPY_FILES += \ 270 device/google/shusky/location/lhd_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/lhd.conf \ 271 device/google/shusky/location/scd_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/scd.conf \ 272 device/google/shusky/location/gps_user.xml.hk3:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.xml 273endif 274 275# Set zram size 276PRODUCT_VENDOR_PROPERTIES += \ 277 vendor.zram.size=50p \ 278 persist.device_config.configuration.disable_rescue_party=true 279 280# Fingerprint HAL 281GOODIX_CONFIG_BUILD_VERSION := g7_trusty 282include device/google/gs101/fingerprint/udfps_common.mk 283ifeq ($(filter factory%, $(TARGET_PRODUCT)),) 284include device/google/gs101/fingerprint/udfps_shipping.mk 285else 286include device/google/gs101/fingerprint/udfps_factory.mk 287endif 288 289PRODUCT_VENDOR_PROPERTIES += \ 290 persist.vendor.udfps.als_feed_forward_supported=true \ 291 persist.vendor.udfps.lhbm_controlled_in_hal_supported=true 292 293# Fingerprint exposure compensation 294PRODUCT_VENDOR_PROPERTIES += \ 295 persist.vendor.udfps.auto_exposure_compensation_supported=true 296 297# Camera Vendor property 298PRODUCT_VENDOR_PROPERTIES += \ 299 persist.vendor.camera.front_720P_always_binning=true 300 301# Media Performance Class 14 302PRODUCT_PRODUCT_PROPERTIES += ro.odm.build.media_performance_class=33 303 304# config of display brightness dimming 305PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.dimming.usage?=1 306PRODUCT_VENDOR_PROPERTIES += \ 307 vendor.primarydisplay.op.hs_hz=120 \ 308 vendor.primarydisplay.op.ns_hz=60 \ 309 vendor.primarydisplay.op.ns_min_dbv=1172 310 311# kernel idle timer for display driver 312PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.support_kernel_idle_timer=true 313 314# lhbm peak brightness delay: decided by kernel 315PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.primarydisplay.lhbm.frames_to_reach_peak_brightness=0 316 317# Display LBE 318PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1 319 320# blocking zone for min idle refresh rate 321PRODUCT_VENDOR_PROPERTIES += \ 322 vendor.primarydisplay.min_idle_refresh_rate.default=1 \ 323 vendor.primarydisplay.min_idle_refresh_rate.blocking_zone=10 \ 324 vendor.primarydisplay.min_idle_refresh_rate.blocking_zone_dbv=492 325 326# Display ACL 327PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.acl.default=0 328 329# display color data 330PRODUCT_COPY_FILES += \ 331 device/google/shusky/husky/panel_config_google-hk3_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/panel_config_google-hk3_cal0.pb 332 333# Vibrator HAL 334ACTUATOR_MODEL := luxshare_ict_081545 335ADAPTIVE_HAPTICS_FEATURE := adaptive_haptics_v1 336PRODUCT_VENDOR_PROPERTIES += \ 337 ro.vendor.vibrator.hal.chirp.enabled=0 \ 338 ro.vendor.vibrator.hal.device.mass=0.222 \ 339 ro.vendor.vibrator.hal.loc.coeff=2.8 \ 340 persist.vendor.vibrator.hal.context.enable=false \ 341 persist.vendor.vibrator.hal.context.scale=60 \ 342 persist.vendor.vibrator.hal.context.fade=true \ 343 persist.vendor.vibrator.hal.context.cooldowntime=1600 \ 344 persist.vendor.vibrator.hal.context.settlingtime=5000 \ 345 ro.vendor.vibrator.hal.dbc.enable=true \ 346 ro.vendor.vibrator.hal.dbc.envrelcoef=8353728 \ 347 ro.vendor.vibrator.hal.dbc.riseheadroom=1909602 \ 348 ro.vendor.vibrator.hal.dbc.fallheadroom=1909602 \ 349 ro.vendor.vibrator.hal.dbc.txlvlthreshfs=2516583 \ 350 ro.vendor.vibrator.hal.dbc.txlvlholdoffms=0 \ 351 ro.vendor.vibrator.hal.pm.activetimeout=5 352 353# Increment the SVN for any official public releases 354PRODUCT_VENDOR_PROPERTIES += \ 355 ro.vendor.build.svn=11 356 357# WLC userdebug specific 358ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 359 PRODUCT_COPY_FILES += \ 360 device/google/zuma/init.hardware.wlc.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.wlc.rc 361endif 362 363# Setup Wizard device-specific settings 364PRODUCT_PRODUCT_PROPERTIES += \ 365 setupwizard.feature.enable_quick_start_flow=true \ 366 367# Quick Start device-specific settings 368PRODUCT_PRODUCT_PROPERTIES += \ 369 ro.quick_start.oem_id=00e0 \ 370 ro.quick_start.device_id=husky 371 372# PKVM Memory Reclaim 373PRODUCT_VENDOR_PROPERTIES += \ 374 hypervisor.memory_reclaim.supported=1 375 376# P23 Devices no longer need rlsservice 377PRODUCT_VENDOR_PROPERTIES += \ 378 persist.vendor.camera.rls_supported=false 379 380# Settings Overlay 381PRODUCT_PACKAGES += \ 382 SettingsHuskyOverlay 383 384# Display RRS default Config 385PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.vendor.display.primary.boot_config=1008x2244@120 386# TODO: b/250788756 - the property will be phased out after HWC loads user-preferred mode 387PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.preferred_mode=1008x2244@120 388 389# Window Extensions 390$(call inherit-product, $(SRC_TARGET_DIR)/product/window_extensions.mk) 391 392# Disable Settings large-screen optimization enabled by Window Extensions 393PRODUCT_SYSTEM_PROPERTIES += \ 394 persist.settings.large_screen_opt.enabled=false 395 396# Keyboard height ratio and bottom padding in dp for portrait mode 397PRODUCT_PRODUCT_PROPERTIES += \ 398 ro.com.google.ime.kb_pad_port_b=10.4 \ 399 ro.com.google.ime.height_ratio=1.0 400 401# Enable camera exif model/make reporting 402PRODUCT_VENDOR_PROPERTIES += \ 403 persist.vendor.camera.exif_reveal_make_model=true 404 405# Enable DeviceAsWebcam support 406PRODUCT_VENDOR_PROPERTIES += \ 407 ro.usb.uvc.enabled=true 408 409# DisplayPort should be disabled by default (b/300167292) 410PRODUCT_VENDOR_PROPERTIES += \ 411 persist.vendor.usb.displayport.enabled=0 412