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
17# Restrict the visibility of Android.bp files to improve build analysis time
18$(call inherit-product-if-exists, vendor/google/products/sources_pixel.mk)
19
20TARGET_LINUX_KERNEL_VERSION := $(RELEASE_KERNEL_BLUEJAY_VERSION)
21# Keeps flexibility for kasan and ufs builds
22TARGET_KERNEL_DIR ?= $(RELEASE_KERNEL_BLUEJAY_DIR)
23TARGET_BOARD_KERNEL_HEADERS ?= $(RELEASE_KERNEL_BLUEJAY_DIR)/kernel-headers
24
25$(call inherit-product-if-exists, vendor/google_devices/bluejay/prebuilts/device-vendor-bluejay.mk)
26$(call inherit-product-if-exists, vendor/google_devices/gs101/prebuilts/device-vendor.mk)
27$(call inherit-product-if-exists, vendor/google_devices/gs101/proprietary/device-vendor.mk)
28$(call inherit-product-if-exists, vendor/google_devices/bluejay/proprietary/device-vendor.mk)
29$(call inherit-product-if-exists, vendor/google_devices/bluejay/proprietary/bluejay/device-vendor-bluejay.mk)
30$(call inherit-product-if-exists, vendor/google_devices/bluejay/proprietary/WallpapersBluejay.mk)
31
32DEVICE_PACKAGE_OVERLAYS += device/google/bluejay/bluejay/overlay
33
34include device/google/gs101/fingerprint/extension/fingerprint.extension.mk
35include device/google/bluejay-sepolicy/bluejay-sepolicy.mk
36include device/google/bluejay/audio/bluejay/audio-tables.mk
37include device/google/gs101/device-shipping-common.mk
38include device/google/gs101/telephony/pktrouter.mk
39include hardware/google/pixel/vibrator/cs40l26/device.mk
40include device/google/gs-common/bcmbt/bluetooth.mk
41include device/google/gs-common/touch/stm/stm11.mk
42
43# Fingerprint HAL
44GOODIX_CONFIG_BUILD_VERSION := g7_trusty
45$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_common.mk)
46ifeq ($(filter factory%, $(TARGET_PRODUCT)),)
47$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_shipping.mk)
48else
49$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_factory.mk)
50endif
51
52# go/lyric-soong-variables
53$(call soong_config_set,lyric,camera_hardware,bluejay)
54$(call soong_config_set,lyric,tuning_product,bluejay)
55$(call soong_config_set,google3a_config,target_device,bluejay)
56
57# Init files
58PRODUCT_COPY_FILES += \
59	device/google/bluejay/conf/init.blueport.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.blueport.rc \
60	device/google/bluejay/conf/init.bluejay.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.bluejay.rc
61
62# Recovery files
63PRODUCT_COPY_FILES += \
64	device/google/gs101/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.bluejay.rc
65
66# insmod files
67PRODUCT_COPY_FILES += \
68	device/google/bluejay/init.insmod.bluejay.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.bluejay.cfg
69
70# Thermal Config
71PRODUCT_COPY_FILES += \
72	device/google/bluejay/thermal_info_config_bluejay.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json \
73	device/google/bluejay/thermal_info_config_charge_bluejay.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_charge.json
74
75# Power HAL config
76PRODUCT_COPY_FILES += \
77	device/google/bluejay/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
78
79# Camera
80PRODUCT_COPY_FILES += \
81	device/google/bluejay/media_profiles_bluejay.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
82
83PRODUCT_PROPERTY_OVERRIDES += \
84    persist.vendor.camera.extended_launch_boost=1 \
85    persist.vendor.camera.raise_buf_allocation_priority=1 \
86    persist.vendor.camera.fixed_fps_range_boost=1
87
88# Display Config
89PRODUCT_COPY_FILES += \
90	device/google/bluejay/display_colordata_dev_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_dev_cal0.pb \
91	device/google/bluejay/display_golden_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_cal0.pb
92
93# Media Performance Class 12
94PRODUCT_PROPERTY_OVERRIDES += ro.odm.build.media_performance_class=31
95
96# NFC
97PRODUCT_COPY_FILES += \
98	frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
99	frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \
100	frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \
101	frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \
102	frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.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/bluejay/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \
105	device/google/bluejay/nfc/libnfc-hal-st-GB17L.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st-GB17L.conf \
106	device/google/bluejay/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf
107
108PRODUCT_PACKAGES += \
109	$(RELEASE_PACKAGE_NFC_STACK) \
110	Tag \
111	android.hardware.nfc-service.st \
112	NfcOverlayBluejay
113
114# SecureElement
115PRODUCT_PACKAGES += \
116	android.hardware.secure_element@1.2-service-gto
117
118PRODUCT_COPY_FILES += \
119	frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \
120	frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \
121        device/google/bluejay/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf
122
123DEVICE_MANIFEST_FILE += \
124	device/google/bluejay/nfc/manifest_se_bluejay.xml
125
126# PowerStats HAL
127PRODUCT_SOONG_NAMESPACES += \
128    device/google/bluejay/powerstats/bluejay \
129    device/google/bluejay
130
131# Increment the SVN for any official public releases
132ifdef RELEASE_SVN_BLUEJAY
133TARGET_SVN ?= $(RELEASE_SVN_BLUEJAY)
134else
135# Set this for older releases that don't use build flag
136TARGET_SVN ?= 64
137endif
138
139PRODUCT_VENDOR_PROPERTIES += \
140    ro.vendor.build.svn=$(TARGET_SVN)
141
142# DCK properties based on target
143PRODUCT_PROPERTY_OVERRIDES += \
144    ro.gms.dck.eligible_wcc=2 \
145    ro.gms.dck.se_capability=1
146
147# Trusty liboemcrypto.so
148PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/prebuilts
149
150# Display
151PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1
152PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms=0
153
154# Bluetooth Hal Extension test tools
155PRODUCT_PACKAGES_DEBUG += \
156    sar_test \
157    hci_inject
158
159# Config of primary display frames to reach LHBM peak brightness
160PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.primarydisplay.lhbm.frames_to_reach_peak_brightness=2
161
162# Bluetooth Tx power caps for bluejay
163PRODUCT_COPY_FILES += \
164    device/google/bluejay/bluetooth_power_limits.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \
165    device/google/bluejay/bluetooth_power_limits_GB17L_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_JP.csv \
166    device/google/bluejay/bluetooth_power_limits_GX7AS_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_CA.csv \
167    device/google/bluejay/bluetooth_power_limits_GB62Z_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GB62Z_US.csv \
168    device/google/bluejay/bluetooth_power_limits_GX7AS_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GX7AS_US.csv \
169    device/google/bluejay/bluetooth_power_limits_G1AZG_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G1AZG_EU.csv \
170    device/google/bluejay/bluetooth_power_limits_GB62Z_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GB62Z_EU.csv
171
172# Bluetooth
173PRODUCT_PRODUCT_PROPERTIES += \
174    persist.bluetooth.a2dp_aac.vbr_supported=true \
175    persist.bluetooth.firmware.selection=BCM.hcd \
176    bluetooth.server.automatic_turn_on=true
177
178# Set zram size
179PRODUCT_VENDOR_PROPERTIES += \
180    vendor.zram.size=3g
181
182# Enable camera 1080P 60FPS binning mode
183PRODUCT_VENDOR_PROPERTIES += \
184    persist.vendor.camera.1080P_60fps_binning=true
185
186# Enable camera exif model/make reporting
187PRODUCT_VENDOR_PROPERTIES += \
188    persist.vendor.camera.exif_reveal_make_model=true
189
190# Disable rear light sensor probing explicitly
191PRODUCT_VENDOR_PROPERTIES += \
192    persist.vendor.camera.rls_supported=false
193
194# Fingerprint antispoof property
195PRODUCT_PRODUCT_PROPERTIES +=\
196    persist.vendor.fingerprint.disable.fake.override=none
197
198# Fingerprint als feed forward
199PRODUCT_VENDOR_PROPERTIES += \
200    persist.vendor.udfps.als_feed_forward_supported=true \
201    persist.vendor.udfps.lhbm_controlled_in_hal_supported=true
202
203# Fingerprint MAX auth latency
204PRODUCT_VENDOR_PROPERTIES += \
205    vendor.gf.debug.timer.threshold=1,400,400,400,600,600,600
206
207# Hide cutout overlays
208PRODUCT_PACKAGES += \
209    NoCutoutOverlay \
210    AvoidAppsInCutoutOverlay
211
212# SKU specific RROs
213PRODUCT_PACKAGES += \
214    SettingsOverlayGB17L \
215    SettingsOverlayG1AZG \
216    SettingsOverlayGB62Z \
217    SettingsOverlayGX7AS
218
219# Set support hide display cutout feature
220PRODUCT_PRODUCT_PROPERTIES += \
221    ro.support_hide_display_cutout=true
222
223# Set support one-handed mode
224PRODUCT_PRODUCT_PROPERTIES += \
225    ro.support_one_handed_mode=true
226
227# GPS xml
228ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
229	PRODUCT_COPY_FILES += \
230		device/google/bluejay/gps.xml.b3:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.xml
231else
232	PRODUCT_COPY_FILES += \
233		device/google/bluejay/gps_user.xml.b3:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.xml
234endif
235
236# This device is shipped with 32 (Android S V2)
237PRODUCT_SHIPPING_API_LEVEL := 32
238
239# Vibrator HAL
240$(call soong_config_set,haptics,kernel_ver,v$(subst .,_,$(TARGET_LINUX_KERNEL_VERSION)))
241ADAPTIVE_HAPTICS_FEATURE := adaptive_haptics_v1
242PRODUCT_VENDOR_PROPERTIES += \
243	ro.vendor.vibrator.hal.supported_primitives=243 \
244	ro.vendor.vibrator.hal.f0.comp.enabled=0 \
245	ro.vendor.vibrator.hal.redc.comp.enabled=0 \
246	persist.vendor.vibrator.hal.context.enable=false \
247	persist.vendor.vibrator.hal.context.scale=40 \
248	persist.vendor.vibrator.hal.context.fade=true \
249	persist.vendor.vibrator.hal.context.cooldowntime=1600 \
250	persist.vendor.vibrator.hal.context.settlingtime=5000
251
252# Device features
253PRODUCT_COPY_FILES += \
254    frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml
255
256# Keyboard bottom padding in dp for portrait mode and height ratio
257PRODUCT_PRODUCT_PROPERTIES += \
258    ro.com.google.ime.kb_pad_port_b=6.4 \
259
260PRODUCT_PRODUCT_PROPERTIES ?= \
261    ro.com.google.ime.height_ratio=1.05
262
263# UFS: the script is used to select the corresponding firmware to run FFU.
264PRODUCT_PACKAGES += ufs_firmware_update.sh
265
266# Enable DeviceAsWebcam support
267PRODUCT_VENDOR_PROPERTIES += \
268    ro.usb.uvc.enabled=true
269
270# Quick Start device-specific settings
271PRODUCT_PRODUCT_PROPERTIES += \
272    ro.quick_start.oem_id=00e0 \
273    ro.quick_start.device_id=bluejay
274
275# Disable AVF Remote Attestation
276PRODUCT_AVF_REMOTE_ATTESTATION_DISABLED := true
277