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 17PRODUCT_RELEASE_CONFIG_MAPS += $(wildcard vendor/google_devices/release/phones/pixel_2024_midyear/release_config_map.textproto) 18 19ifdef RELEASE_KERNEL_AKITA_VERSION 20TARGET_LINUX_KERNEL_VERSION := $(RELEASE_KERNEL_AKITA_VERSION) 21endif 22 23ifdef RELEASE_KERNEL_AKITA_DIR 24# Keeps flexibility for kasan and ufs builds 25TARGET_KERNEL_DIR ?= $(RELEASE_KERNEL_AKITA_DIR) 26TARGET_BOARD_KERNEL_HEADERS ?= $(RELEASE_KERNEL_AKITA_DIR)/kernel-headers 27else 28TARGET_KERNEL_DIR ?= device/google/akita-kernels/5.15/trunk 29TARGET_BOARD_KERNEL_HEADERS ?= device/google/akita-kernels/5.15/trunk/kernel-headers 30endif 31 32$(call inherit-product-if-exists, vendor/google_devices/akita/prebuilts/device-vendor-akita.mk) 33$(call inherit-product-if-exists, vendor/google_devices/zuma/prebuilts/device-vendor.mk) 34$(call inherit-product-if-exists, vendor/google_devices/zuma/proprietary/device-vendor.mk) 35$(call inherit-product-if-exists, vendor/google_devices/akita/proprietary/akita/device-vendor-akita.mk) 36$(call inherit-product-if-exists, vendor/google_devices/akita/proprietary/device-vendor.mk) 37$(call inherit-product-if-exists, vendor/google_devices/akita/proprietary/WallpapersAkita.mk) 38 39DEVICE_PACKAGE_OVERLAYS += device/google/akita/akita/overlay 40 41include device/google/akita/audio/akita/audio-tables.mk 42include device/google/zuma/device-shipping-common.mk 43include hardware/google/pixel/vibrator/cs40l26/device.mk 44include device/google/gs-common/bcmbt/bluetooth.mk 45include device/google/gs-common/touch/gti/gti.mk 46include device/google/gs-common/modem/radio_ext/radio_ext.mk 47 48# go/lyric-soong-variables 49$(call soong_config_set,lyric,camera_hardware,akita) 50$(call soong_config_set,lyric,tuning_product,akita) 51$(call soong_config_set,google3a_config,target_device,akita) 52 53# Init files 54PRODUCT_COPY_FILES += \ 55 device/google/akita/conf/init.akita.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.akita.rc 56 57# Recovery files 58PRODUCT_COPY_FILES += \ 59 device/google/akita/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.akita.rc 60 61# Display 62PRODUCT_COPY_FILES += \ 63 device/google/akita/akita/display_colordata_dev_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_dev_cal0.pb \ 64 device/google/akita/akita/display_golden_google-ak3b_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_google-ak3b_cal0.pb \ 65 device/google/akita/display_golden_external_display_cal2.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_external_display_cal2.pb 66 67# Display brightness curve 68PRODUCT_COPY_FILES += \ 69 device/google/akita/akita/panel_config_google-ak3b_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/panel_config_google-ak3b_cal0.pb 70 71PRODUCT_VENDOR_PROPERTIES += \ 72 vendor.primarydisplay.op.hs_hz=120 \ 73 vendor.primarydisplay.op.ns_hz=60 \ 74 vendor.primarydisplay.op.peak_refresh_rate=60 75 76# lhbm peak brightness delay: decided by kernel 77PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.primarydisplay.lhbm.frames_to_reach_peak_brightness=0 78 79PRODUCT_SOONG_NAMESPACES += device/google/akita/radio/coex 80 81# Coex Configs 82PRODUCT_PACKAGES += \ 83 display_primary_mipi_coex_table \ 84 display_primary_ssc_coex_table 85 86PRODUCT_PROPERTY_OVERRIDES += \ 87 persist.vendor.camera.adjust_backend_min_freq_for_1p_front_video_1080p_30fps=1 \ 88 persist.vendor.camera.adjust_backend_min_freq_for_video_120fps=1 \ 89 persist.vendor.camera.adjust_cam_uclamp_min_for_1p_rear_video_60fps=1 \ 90 persist.vendor.camera.extended_launch_boost=1 \ 91 persist.vendor.camera.optimized_tnr_freq=1 \ 92 vendor.camera.debug.enable_software_post_sharpen_node=false \ 93 vendor.camera.allow_sensor_binning_aspect_ratio_to_override_itp_output=false \ 94 vendor.camera.debug.enable_blending_node=false 95 96# Enable front camera always binning for 720P or smaller resolution 97PRODUCT_VENDOR_PROPERTIES += \ 98 persist.vendor.camera.front_720P_always_binning=true 99 100# Enable camera exif model/make reporting 101PRODUCT_VENDOR_PROPERTIES += \ 102 persist.vendor.camera.exif_reveal_make_model=true 103 104# Media Performance Class 13 105PRODUCT_PROPERTY_OVERRIDES += ro.odm.build.media_performance_class=33 106 107# NFC 108PRODUCT_COPY_FILES += \ 109 frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \ 110 frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \ 111 frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \ 112 frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \ 113 frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml \ 114 device/google/akita/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \ 115 device/google/akita/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf 116 117PRODUCT_PACKAGES += \ 118 $(RELEASE_PACKAGE_NFC_STACK) \ 119 Tag \ 120 android.hardware.nfc-service.st \ 121 NfcOverlayAkita 122 123# SecureElement 124PRODUCT_PACKAGES += \ 125 android.hardware.secure_element-service.thales 126 127PRODUCT_COPY_FILES += \ 128 frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \ 129 frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \ 130 device/google/akita/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf 131 132# Thermal Config 133PRODUCT_COPY_FILES += \ 134 device/google/akita/thermal_info_config_akita.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json \ 135 device/google/akita/thermal_info_config_charge_akita.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_charge.json \ 136 device/google/akita/thermal_info_config_proto.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_proto.json \ 137 device/google/akita/thermal_info_config_charge_proto.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_charge_proto.json 138 139# Power HAL config 140PRODUCT_COPY_FILES += \ 141 device/google/akita/powerhint-akita.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json 142 143# Bluetooth HAL 144PRODUCT_COPY_FILES += \ 145 device/google/akita/bluetooth/bt_vendor_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf 146PRODUCT_PROPERTY_OVERRIDES += \ 147 ro.bluetooth.a2dp_offload.supported=true \ 148 persist.bluetooth.a2dp_offload.disabled=false \ 149 persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac 150 151# Bluetooth Tx power caps 152PRODUCT_COPY_FILES += \ 153 device/google/akita/bluetooth/bluetooth_power_limits_AK3.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \ 154 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G6GPR_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G6GPR_CA.csv \ 155 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G6GPR_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G6GPR_EU.csv \ 156 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G6GPR_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G6GPR_US.csv \ 157 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G8HHN_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G8HHN_EU.csv \ 158 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G8HHN_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G8HHN_US.csv \ 159 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G576D_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G576D_CA.csv \ 160 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G576D_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G576D_EU.csv \ 161 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G576D_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G576D_JP.csv \ 162 device/google/akita/bluetooth/bluetooth_power_limits_AK3_G576D_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G576D_US.csv \ 163 device/google/akita/bluetooth/bluetooth_power_limits_AK3_GKV4X_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GKV4X_CA.csv \ 164 device/google/akita/bluetooth/bluetooth_power_limits_AK3_GKV4X_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GKV4X_EU.csv \ 165 device/google/akita/bluetooth/bluetooth_power_limits_AK3_GKV4X_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GKV4X_US.csv 166 167# POF 168PRODUCT_PRODUCT_PROPERTIES += \ 169 ro.bluetooth.finder.supported=true 170 171# DCK properties based on target 172PRODUCT_PROPERTY_OVERRIDES += \ 173 ro.gms.dck.eligible_wcc=2 \ 174 ro.gms.dck.se_capability=1 175 176# Bluetooth hci_inject test tool 177PRODUCT_PACKAGES_DEBUG += \ 178 hci_inject 179 180# Bluetooth SAR test tool 181PRODUCT_PACKAGES_DEBUG += \ 182 sar_test 183 184# Bluetooth EWP test tool 185PRODUCT_PACKAGES_DEBUG += \ 186 ewp_tool 187 188# Bluetooth AAC VBR 189PRODUCT_PRODUCT_PROPERTIES += \ 190 persist.bluetooth.a2dp_aac.vbr_supported=true 191 192# Bluetooth Super Wide Band 193PRODUCT_PRODUCT_PROPERTIES += \ 194 bluetooth.hfp.swb.supported=true 195 196# Bluetooth LE Audio 197PRODUCT_PRODUCT_PROPERTIES += \ 198 ro.bluetooth.leaudio_switcher.supported=true \ 199 bluetooth.profile.bap.unicast.client.enabled=true \ 200 bluetooth.profile.csip.set_coordinator.enabled=true \ 201 bluetooth.profile.hap.client.enabled=true \ 202 bluetooth.profile.mcp.server.enabled=true \ 203 bluetooth.profile.ccp.server.enabled=true \ 204 bluetooth.profile.vcp.controller.enabled=true 205 206# Bluetooth LE Audio enable hardware offloading 207PRODUCT_PRODUCT_PROPERTIES += \ 208 ro.bluetooth.leaudio_offload.supported=true \ 209 persist.bluetooth.leaudio_offload.disabled=false 210 211# Include Bluetooth soong namespace 212PRODUCT_SOONG_NAMESPACES += \ 213 device/google/akita/bluetooth 214 215# Bluetooth LE Auido offload capabilities setting 216PRODUCT_PACKAGES += \ 217 le_audio_codec_capabilities.xml 218 219# LE Audio Lunch Config for Phase 1 (LE audio toggle hidden by default) 220PRODUCT_PRODUCT_PROPERTIES += \ 221 persist.bluetooth.leaudio.toggle_visible=true 222 223# LE Audio use classic connection by default 224PRODUCT_PRODUCT_PROPERTIES += \ 225 ro.bluetooth.leaudio.le_audio_connection_by_default=true 226 227# Bluetooth LE Audio CIS handover to SCO 228# Set the property only for the controller couldn't support CIS/SCO simultaneously. More detailed in b/242908683. 229PRODUCT_PRODUCT_PROPERTIES += \ 230 persist.bluetooth.leaudio.notify.idle.during.call=true 231 232# Bluetooth LE Audio enable dual mic SWB call 233PRODUCT_PRODUCT_PROPERTIES += \ 234 bluetooth.leaudio.dual_bidirection_swb.supported=true 235 236# LE Audio Unicast Allowlist 237PRODUCT_PRODUCT_PROPERTIES += \ 238 persist.bluetooth.leaudio.allow_list=SM-R510 239 240# Support LE & Classic concurrent encryption (b/330704060) 241PRODUCT_PRODUCT_PROPERTIES += \ 242 bluetooth.ble.allow_enc_with_bredr=true 243 244# Enable one-handed mode 245PRODUCT_PRODUCT_PROPERTIES += \ 246 ro.support_one_handed_mode=true 247 248# Override BQR mask to enable LE Audio Choppy report, remove BTRT logging 249ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 250PRODUCT_PRODUCT_PROPERTIES += \ 251 persist.bluetooth.bqr.event_mask=295006 \ 252 persist.bluetooth.bqr.vnd_quality_mask=29 \ 253 persist.bluetooth.bqr.vnd_trace_mask=0 \ 254 persist.bluetooth.vendor.btsnoop=true 255else 256PRODUCT_PRODUCT_PROPERTIES += \ 257 persist.bluetooth.bqr.event_mask=295006 \ 258 persist.bluetooth.bqr.vnd_quality_mask=16 \ 259 persist.bluetooth.bqr.vnd_trace_mask=0 \ 260 persist.bluetooth.vendor.btsnoop=false 261endif 262 263# Enable Bluetooth AutoOn feature 264PRODUCT_PRODUCT_PROPERTIES += \ 265 bluetooth.server.automatic_turn_on=true 266 267# Spatial Audio 268PRODUCT_PACKAGES += \ 269 libspatialaudio \ 270 librondo 271 272# Sound Dose 273PRODUCT_PACKAGES += \ 274 android.hardware.audio.sounddose-vendor-impl \ 275 audio_sounddose_aoc \ 276 277# Audio CCA property 278PRODUCT_PROPERTY_OVERRIDES += \ 279 persist.vendor.audio.cca.enabled=false 280 281# Settings Overlay 282PRODUCT_PACKAGES += \ 283 SettingsAkitaOverlay 284 285# Keymaster HAL 286#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service 287 288# Gatekeeper HAL 289#LOCAL_GATEKEEPER_PRODUCT_PACKAGE ?= android.hardware.gatekeeper@1.0-service.software 290 291 292# Gatekeeper 293# PRODUCT_PACKAGES += \ 294# android.hardware.gatekeeper@1.0-service.software 295 296# Keymint replaces Keymaster 297# PRODUCT_PACKAGES += \ 298# android.hardware.security.keymint-service 299 300# Keymaster 301#PRODUCT_PACKAGES += \ 302# android.hardware.keymaster@4.0-impl \ 303# android.hardware.keymaster@4.0-service 304 305#PRODUCT_PACKAGES += android.hardware.keymaster@4.0-service.remote 306#PRODUCT_PACKAGES += android.hardware.keymaster@4.1-service.remote 307#LOCAL_KEYMASTER_PRODUCT_PACKAGE := android.hardware.keymaster@4.1-service 308#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service 309 310# PRODUCT_PROPERTY_OVERRIDES += \ 311# ro.hardware.keystore_desede=true \ 312# ro.hardware.keystore=software \ 313# ro.hardware.gatekeeper=software 314 315# PowerStats HAL 316PRODUCT_SOONG_NAMESPACES += \ 317 device/google/akita/powerstats/akita 318 319# WiFi Overlay 320PRODUCT_PACKAGES += \ 321 WifiOverlay2024Mid 322 323# Trusty liboemcrypto.so 324PRODUCT_SOONG_NAMESPACES += vendor/google_devices/akita/prebuilts 325 326# include GNSSD 327include device/google/akita/location/gnssd/device-gnss.mk 328 329# Set zram size 330PRODUCT_VENDOR_PROPERTIES += \ 331 vendor.zram.size=50p \ 332 persist.device_config.configuration.disable_rescue_party=true 333 334# Increase thread priority for nodes stop 335PRODUCT_VENDOR_PROPERTIES += \ 336 persist.vendor.camera.increase_thread_priority_nodes_stop=true 337 338# Fingerprint HAL 339GOODIX_CONFIG_BUILD_VERSION := g7_trusty 340$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_common.mk) 341ifeq ($(filter factory%, $(TARGET_PRODUCT)),) 342$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_shipping.mk) 343else 344$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_factory.mk) 345endif 346 347# Display 348PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1 349PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms=1500 350 351PRODUCT_VENDOR_PROPERTIES += \ 352 persist.vendor.udfps.als_feed_forward_supported=true \ 353 persist.vendor.udfps.lhbm_controlled_in_hal_supported=true 354 355# Fingerprint exposure compensation 356PRODUCT_VENDOR_PROPERTIES += \ 357 persist.vendor.udfps.auto_exposure_compensation_supported=true 358 359# Fingerprint Auth Filter 360ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 361PRODUCT_VENDOR_PROPERTIES += \ 362 persist.vendor.udfps.auth_filter.log_all_coverages=true \ 363 persist.vendor.udfps.auth_filter.data_collection_enabled=false 364endif 365 366# OIS with system imu 367PRODUCT_VENDOR_PROPERTIES += \ 368 persist.vendor.camera.ois_with_system_imu=true 369 370# Vibrator HAL 371$(call soong_config_set,haptics,kernel_ver,v$(subst .,_,$(TARGET_LINUX_KERNEL_VERSION))) 372ADAPTIVE_HAPTICS_FEATURE := adaptive_haptics_v1 373PRODUCT_VENDOR_PROPERTIES += \ 374 ro.vendor.vibrator.hal.supported_primitives=243 \ 375 ro.vendor.vibrator.hal.f0.comp.enabled=1 \ 376 ro.vendor.vibrator.hal.redc.comp.enabled=0 \ 377 persist.vendor.vibrator.hal.context.enable=false \ 378 persist.vendor.vibrator.hal.context.scale=40 \ 379 persist.vendor.vibrator.hal.context.fade=true \ 380 persist.vendor.vibrator.hal.context.cooldowntime=1600 \ 381 persist.vendor.vibrator.hal.context.settlingtime=5000 382 383# Increment the SVN for any official public releases 384ifdef RELEASE_SVN_AKITA 385TARGET_SVN ?= $(RELEASE_SVN_AKITA) 386else 387# Set this for older releases that don't use build flag 388TARGET_SVN ?= 18 389endif 390 391PRODUCT_VENDOR_PROPERTIES += \ 392 ro.vendor.build.svn=$(TARGET_SVN) 393 394# Keyboard height ratio and bottom padding in dp for portrait mode 395PRODUCT_PRODUCT_PROPERTIES += \ 396 ro.com.google.ime.kb_pad_port_b=4.19 \ 397 ro.com.google.ime.height_ratio=1.1 398 399# Enable DeviceAsWebcam support 400PRODUCT_VENDOR_PROPERTIES += \ 401 ro.usb.uvc.enabled=true 402 403# Window Extensions 404$(call inherit-product, $(SRC_TARGET_DIR)/product/window_extensions.mk) 405 406# Disable Settings large-screen optimization enabled by Window Extensions 407PRODUCT_SYSTEM_PROPERTIES += \ 408 persist.settings.large_screen_opt.enabled=false 409 410# ETM 411ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 412$(call inherit-product-if-exists, device/google/common/etm/device-userdebug-modules.mk) 413endif 414