# # Copyright (C) 2021 The Android Open-Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Restrict the visibility of Android.bp files to improve build analysis time $(call inherit-product-if-exists, vendor/google/products/sources_pixel.mk) TARGET_KERNEL_DIR ?= device/google/shusky-kernel TARGET_BOARD_KERNEL_HEADERS ?= device/google/shusky-kernel/kernel-headers ifdef RELEASE_GOOGLE_HUSKY_KERNEL_VERSION TARGET_LINUX_KERNEL_VERSION := $(RELEASE_GOOGLE_HUSKY_KERNEL_VERSION) endif ifdef RELEASE_GOOGLE_HUSKY_KERNEL_DIR TARGET_KERNEL_DIR := $(RELEASE_GOOGLE_HUSKY_KERNEL_DIR) TARGET_BOARD_KERNEL_HEADERS := $(RELEASE_GOOGLE_HUSKY_KERNEL_DIR)/kernel-headers endif LOCAL_PATH := device/google/shusky ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) USE_UWBFIELDTESTQM := true endif ifeq ($(filter factory_husky, $(TARGET_PRODUCT)),) include device/google/shusky/uwb/uwb_calibration.mk endif $(call inherit-product-if-exists, vendor/google_devices/shusky/prebuilts/device-vendor-husky.mk) $(call inherit-product-if-exists, vendor/google_devices/zuma/prebuilts/device-vendor.mk) $(call inherit-product-if-exists, vendor/google_devices/zuma/proprietary/device-vendor.mk) $(call inherit-product-if-exists, vendor/google_devices/shusky/proprietary/husky/device-vendor-husky.mk) $(call inherit-product-if-exists, vendor/google_devices/husky/proprietary/device-vendor.mk) $(call inherit-product-if-exists, vendor/qorvo/uwb/qm35-hal-r63/Device.mk) $(call inherit-product-if-exists, vendor/google_devices/shusky/proprietary/WallpapersHusky.mk) # display DEVICE_PACKAGE_OVERLAYS += device/google/shusky/husky/overlay PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.ignore_hdr_camera_layers=true PRODUCT_COPY_FILES += \ device/google/shusky/husky/display_colordata_dev_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_dev_cal0.pb \ device/google/shusky/husky/display_golden_google-hk3_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_google-hk3_cal0.pb \ device/google/shusky/display_golden_external_display_cal2.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_external_display_cal2.pb CAMERA_PRODUCT ?= husky ifeq ($(RELEASE_PIXEL_AIDL_AUDIO_HAL_ZUMA),true) USE_AUDIO_HAL_AIDL := true endif include device/google/shusky/camera/camera.mk include device/google/shusky/audio/husky/audio-tables.mk include device/google/zuma/device-shipping-common.mk include hardware/google/pixel/vibrator/cs40l26/device.mk include device/google/gs-common/bcmbt/bluetooth.mk include device/google/gs-common/touch/stm/stm20.mk include device/google/gs-common/touch/gti/gti.mk include device/google/gs-common/touch/touchinspector/touchinspector.mk # Init files PRODUCT_COPY_FILES += \ device/google/shusky/conf/init.husky.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.husky.rc # Recovery files PRODUCT_COPY_FILES += \ device/google/shusky/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.husky.rc # MIPI Coex Configs PRODUCT_COPY_FILES += \ device/google/shusky/husky/radio/husky_camera_front_dbr_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/camera_front_dbr_coex_table.csv \ device/google/shusky/husky/radio/husky_camera_front_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/camera_front_mipi_coex_table.csv \ 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 \ device/google/shusky/husky/radio/husky_display_primary_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/display_primary_mipi_coex_table.csv # NFC PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \ frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \ frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \ frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \ frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml \ device/google/shusky/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \ device/google/shusky/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf PRODUCT_PACKAGES += \ $(RELEASE_PACKAGE_NFC_STACK) \ Tag \ android.hardware.nfc-service.st # SecureElement PRODUCT_PACKAGES += \ android.hardware.secure_element-service.thales PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \ frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \ device/google/shusky/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf # Bluetooth HAL PRODUCT_COPY_FILES += \ device/google/shusky/bluetooth/bt_vendor_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf PRODUCT_PROPERTY_OVERRIDES += \ ro.bluetooth.a2dp_offload.supported=true \ persist.bluetooth.a2dp_offload.disabled=false \ persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac-opus # Bluetooth Tx power caps PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \ $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_CA.csv \ $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_EU.csv \ $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_JP.csv \ $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_US.csv \ $(LOCAL_PATH)/bluetooth/bluetooth_power_limits_husky_GC3VE_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GC3VE_EU.csv # POF PRODUCT_PRODUCT_PROPERTIES += \ ro.bluetooth.finder.supported=true # Spatial Audio PRODUCT_PACKAGES += \ libspatialaudio # declare use of spatial audio PRODUCT_PROPERTY_OVERRIDES += \ ro.audio.spatializer_enabled=true # Sound Dose PRODUCT_PACKAGES += \ android.hardware.audio.sounddose-vendor-impl \ audio_sounddose_aoc # Audio CCA property PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.audio.cca.enabled=false # DCK properties based on target PRODUCT_PROPERTY_OVERRIDES += \ ro.gms.dck.eligible_wcc=3 \ ro.gms.dck.se_capability=1 # Bluetooth hci_inject test tool PRODUCT_PACKAGES_DEBUG += \ hci_inject # Bluetooth OPUS codec PRODUCT_PRODUCT_PROPERTIES += \ persist.bluetooth.opus.enabled=true # Bluetooth SAR test tool PRODUCT_PACKAGES_DEBUG += \ sar_test # Bluetooth EWP test tool PRODUCT_PACKAGES_DEBUG += \ ewp_tool # Bluetooth AAC VBR PRODUCT_PRODUCT_PROPERTIES += \ persist.bluetooth.a2dp_aac.vbr_supported=true # Override BQR mask to enable LE Audio Choppy report, remove BTRT logging ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PRODUCT_PROPERTIES += \ persist.bluetooth.bqr.event_mask=295006 \ persist.bluetooth.bqr.vnd_quality_mask=29 \ persist.bluetooth.bqr.vnd_trace_mask=0 \ persist.bluetooth.vendor.btsnoop=true else PRODUCT_PRODUCT_PROPERTIES += \ persist.bluetooth.bqr.event_mask=295006 \ persist.bluetooth.bqr.vnd_quality_mask=16 \ persist.bluetooth.bqr.vnd_trace_mask=0 \ persist.bluetooth.vendor.btsnoop=false endif # Spatial Audio PRODUCT_PACKAGES += \ libspatialaudio \ librondo # Bluetooth Super Wide Band PRODUCT_PRODUCT_PROPERTIES += \ bluetooth.hfp.swb.supported=true # Bluetooth LE Audio PRODUCT_PRODUCT_PROPERTIES += \ ro.bluetooth.leaudio_switcher.supported?=true \ bluetooth.profile.bap.unicast.client.enabled?=true \ bluetooth.profile.csip.set_coordinator.enabled?=true \ bluetooth.profile.hap.client.enabled?=true \ bluetooth.profile.mcp.server.enabled?=true \ bluetooth.profile.ccp.server.enabled?=true \ bluetooth.profile.vcp.controller.enabled?=true ifeq ($(RELEASE_PIXEL_BROADCAST_ENABLED), true) PRODUCT_PRODUCT_PROPERTIES += \ bluetooth.profile.bap.broadcast.assist.enabled=true \ bluetooth.profile.bap.broadcast.source.enabled=true endif # Bluetooth LE Audio enable hardware offloading PRODUCT_PRODUCT_PROPERTIES += \ ro.bluetooth.leaudio_offload.supported=true \ persist.bluetooth.leaudio_offload.disabled=false # Bluetooth LE Auido offload capabilities setting PRODUCT_COPY_FILES += \ device/google/shusky/bluetooth/le_audio_codec_capabilities.xml:$(TARGET_COPY_OUT_VENDOR)/etc/le_audio_codec_capabilities.xml # LE Audio Unicast Allowlist PRODUCT_PRODUCT_PROPERTIES += \ persist.bluetooth.leaudio.allow_list=SM-R510,WF-1000XM5 # Bluetooth LE Audio CIS handover to SCO # Set the property only for the controller couldn't support CIS/SCO simultaneously. More detailed in b/242908683. PRODUCT_PRODUCT_PROPERTIES += \ persist.bluetooth.leaudio.notify.idle.during.call=true # Support LE Audio dual mic SWB call PRODUCT_PRODUCT_PROPERTIES += \ bluetooth.leaudio.dual_bidirection_swb.supported=true # Support One-Handed mode PRODUCT_PRODUCT_PROPERTIES += \ ro.support_one_handed_mode=true # Keymaster HAL #LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service # Gatekeeper HAL #LOCAL_GATEKEEPER_PRODUCT_PACKAGE ?= android.hardware.gatekeeper@1.0-service.software # Gatekeeper # PRODUCT_PACKAGES += \ # android.hardware.gatekeeper@1.0-service.software # Keymint replaces Keymaster # PRODUCT_PACKAGES += \ # android.hardware.security.keymint-service # Keymaster #PRODUCT_PACKAGES += \ # android.hardware.keymaster@4.0-impl \ # android.hardware.keymaster@4.0-service #PRODUCT_PACKAGES += android.hardware.keymaster@4.0-service.remote #PRODUCT_PACKAGES += android.hardware.keymaster@4.1-service.remote #LOCAL_KEYMASTER_PRODUCT_PACKAGE := android.hardware.keymaster@4.1-service #LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service # PRODUCT_PROPERTY_OVERRIDES += \ # ro.hardware.keystore_desede=true \ # ro.hardware.keystore=software \ # ro.hardware.gatekeeper=software # PowerStats HAL PRODUCT_SOONG_NAMESPACES += \ device/google/shusky/powerstats/husky \ device/google/shusky # WiFi Overlay PRODUCT_PACKAGES += \ UwbOverlayHK3 \ WifiOverlay2023 \ PixelWifiOverlay2023 # Trusty liboemcrypto.so PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION))) PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/24Q1 else ifneq (,$(filter AP2% AP3%,$(RELEASE_PLATFORM_VERSION))) PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/24Q2 else PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/trunk endif # UWB PRODUCT_SOONG_NAMESPACES += \ device/google/shusky/uwb # Location # SDK build system include device/google/gs-common/gps/brcm/device.mk PRODUCT_COPY_FILES += \ device/google/shusky/location/gps.cer:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.cer ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_COPY_FILES += \ device/google/shusky/location/lhd.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/lhd.conf \ device/google/shusky/location/scd.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/scd.conf \ device/google/shusky/location/gps.xml.hk3:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.xml else PRODUCT_COPY_FILES += \ device/google/shusky/location/lhd_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/lhd.conf \ device/google/shusky/location/scd_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/scd.conf \ device/google/shusky/location/gps_user.xml.hk3:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.xml endif # Set zram size PRODUCT_VENDOR_PROPERTIES += \ vendor.zram.size=50p \ persist.device_config.configuration.disable_rescue_party=true # Fingerprint HAL ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION))) APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/24Q1 else ifneq (,$(filter AP2% AP3%,$(RELEASE_PLATFORM_VERSION))) APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/24Q2 else APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/trunk endif GOODIX_CONFIG_BUILD_VERSION := g7_trusty $(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_common.mk) ifeq ($(filter factory%, $(TARGET_PRODUCT)),) $(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_shipping.mk) else $(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_factory.mk) endif PRODUCT_VENDOR_PROPERTIES += \ persist.vendor.udfps.als_feed_forward_supported=true \ persist.vendor.udfps.lhbm_controlled_in_hal_supported=true # Fingerprint exposure compensation PRODUCT_VENDOR_PROPERTIES += \ persist.vendor.udfps.auto_exposure_compensation_supported=true # Camera Vendor property PRODUCT_VENDOR_PROPERTIES += \ persist.vendor.camera.front_720P_always_binning=true # Media Performance Class 14 PRODUCT_PRODUCT_PROPERTIES += ro.odm.build.media_performance_class=34 # config of display brightness dimming PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.dimming.usage?=1 PRODUCT_VENDOR_PROPERTIES += \ vendor.primarydisplay.op.hs_hz=120 \ vendor.primarydisplay.op.ns_hz=60 \ vendor.primarydisplay.op.ns_min_dbv=1172 # kernel idle timer for display driver PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.support_kernel_idle_timer=true # lhbm peak brightness delay: decided by kernel PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.primarydisplay.lhbm.frames_to_reach_peak_brightness=0 # Display LBE PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1 # blocking zone for min idle refresh rate PRODUCT_VENDOR_PROPERTIES += \ vendor.primarydisplay.min_idle_refresh_rate.default=1 \ vendor.primarydisplay.min_idle_refresh_rate.blocking_zone=10 \ vendor.primarydisplay.min_idle_refresh_rate.blocking_zone_dbv=492 # Display ACL PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.acl.default=0 # display color data PRODUCT_COPY_FILES += \ device/google/shusky/husky/panel_config_google-hk3_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/panel_config_google-hk3_cal0.pb # Vibrator HAL ACTUATOR_MODEL := luxshare_ict_081545 ADAPTIVE_HAPTICS_FEATURE := adaptive_haptics_v1 PRODUCT_VENDOR_PROPERTIES += \ persist.vendor.vibrator.hal.chirp.enabled=0 \ ro.vendor.vibrator.hal.device.mass=0.222 \ ro.vendor.vibrator.hal.loc.coeff=2.8 \ persist.vendor.vibrator.hal.context.enable=false \ persist.vendor.vibrator.hal.context.scale=60 \ persist.vendor.vibrator.hal.context.fade=true \ persist.vendor.vibrator.hal.context.cooldowntime=1600 \ persist.vendor.vibrator.hal.context.settlingtime=5000 \ ro.vendor.vibrator.hal.dbc.enable=true \ ro.vendor.vibrator.hal.dbc.envrelcoef=8353728 \ ro.vendor.vibrator.hal.dbc.riseheadroom=1909602 \ ro.vendor.vibrator.hal.dbc.fallheadroom=1909602 \ ro.vendor.vibrator.hal.dbc.txlvlthreshfs=2516583 \ ro.vendor.vibrator.hal.dbc.txlvlholdoffms=0 \ ro.vendor.vibrator.hal.pm.activetimeout=5 # Increment the SVN for any official public releases PRODUCT_VENDOR_PROPERTIES += \ ro.vendor.build.svn=19 # WLC userdebug specific ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_COPY_FILES += \ device/google/zuma/init.hardware.wlc.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.wlc.rc endif # Setup Wizard device-specific settings PRODUCT_PRODUCT_PROPERTIES += \ setupwizard.feature.enable_quick_start_flow=true \ # Quick Start device-specific settings PRODUCT_PRODUCT_PROPERTIES += \ ro.quick_start.oem_id=00e0 \ ro.quick_start.device_id=husky # PKVM Memory Reclaim PRODUCT_VENDOR_PROPERTIES += \ hypervisor.memory_reclaim.supported=1 # P23 Devices no longer need rlsservice PRODUCT_VENDOR_PROPERTIES += \ persist.vendor.camera.rls_supported=false # Settings Overlay PRODUCT_PACKAGES += \ SettingsHuskyOverlay # Display RRS default Config PRODUCT_DEFAULT_PROPERTY_OVERRIDES += persist.vendor.display.primary.boot_config=1008x2244@120 # TODO: b/250788756 - the property will be phased out after HWC loads user-preferred mode PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.preferred_mode=1008x2244@120 # Window Extensions $(call inherit-product, $(SRC_TARGET_DIR)/product/window_extensions.mk) # Disable Settings large-screen optimization enabled by Window Extensions PRODUCT_SYSTEM_PROPERTIES += \ persist.settings.large_screen_opt.enabled=false # Keyboard height ratio and bottom padding in dp for portrait mode PRODUCT_PRODUCT_PROPERTIES += \ ro.com.google.ime.kb_pad_port_b=10.4 PRODUCT_PRODUCT_PROPERTIES ?= \ ro.com.google.ime.height_ratio=1.0 # Enable camera exif model/make reporting PRODUCT_VENDOR_PROPERTIES += \ persist.vendor.camera.exif_reveal_make_model=true # AVF assignable devices xml PRODUCT_PACKAGES += shusky_assignable_devices.xml # Enable DeviceAsWebcam support PRODUCT_VENDOR_PROPERTIES += \ ro.usb.uvc.enabled=true PRODUCT_PACKAGES += \ NfcOverlayHusky \ # Set support hide display cutout feature PRODUCT_PRODUCT_PROPERTIES += \ ro.support_hide_display_cutout=true PRODUCT_PACKAGES += \ NoCutoutOverlay \ AvoidAppsInCutoutOverlay