1#
2# Copyright (C) 2011 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
17include device/google/gs-common/device.mk
18include device/google/gs-common/gs_watchdogd/watchdog.mk
19include device/google/gs-common/ramdump_and_coredump/ramdump_and_coredump.mk
20include device/google/gs-common/soc/soc.mk
21include device/google/gs-common/soc/freq.mk
22include device/google/gs-common/modem/modem.mk
23include device/google/gs-common/aoc/aoc.mk
24include device/google/gs-common/thermal/dump/thermal.mk
25include device/google/gs-common/thermal/thermal_hal/device.mk
26include device/google/gs-common/pixel_metrics/pixel_metrics.mk
27include device/google/gs-common/performance/perf.mk
28include device/google/gs-common/display/dump.mk
29include device/google/gs-common/camera/dump.mk
30include device/google/gs-common/gxp/gxp.mk
31include device/google/gs-common/gps/dump/log.mk
32include device/google/gs-common/radio/dump.mk
33include device/google/gs-common/umfw_stat/umfw_stat.mk
34include device/google/gs-common/gear/dumpstate/aidl.mk
35include device/google/gs-common/widevine/widevine.mk
36include device/google/gs-common/sota_app/factoryota.mk
37include device/google/gs-common/misc_writer/misc_writer.mk
38include device/google/gs-common/gyotaku_app/gyotaku.mk
39include device/google/gs-common/bootctrl/bootctrl_aidl.mk
40include device/google/gs-common/betterbug/betterbug.mk
41ifneq ($(filter cheetah felix panther, $(TARGET_PRODUCT)),)
42  include device/google/gs-common/bcmbt/dump/dumplog.mk
43endif
44include device/google/gs-common/fingerprint/fingerprint.mk
45
46TARGET_BOARD_PLATFORM := gs201
47
48AB_OTA_POSTINSTALL_CONFIG += \
49	RUN_POSTINSTALL_system=true \
50	POSTINSTALL_PATH_system=system/bin/otapreopt_script \
51	FILESYSTEM_TYPE_system=ext4 \
52POSTINSTALL_OPTIONAL_system=true
53
54# Set Vendor SPL to match platform
55VENDOR_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
56
57# Set boot SPL
58BOOT_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
59
60# TODO(b/207450311): Remove this flag once implemented
61USE_PIXEL_GRALLOC := false
62ifeq ($(USE_PIXEL_GRALLOC),true)
63	PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/GrallocHAL
64endif
65
66PRODUCT_SOONG_NAMESPACES += \
67	hardware/google/av \
68	hardware/google/gchips \
69	hardware/google/gchips/gralloc4 \
70	hardware/google/graphics/common \
71	hardware/google/graphics/gs201 \
72	hardware/google/interfaces \
73	hardware/google/pixel \
74	device/google/gs201 \
75	device/google/gs201/powerstats \
76	vendor/google_devices/common/chre/host/hal \
77	vendor/google/whitechapel/tools \
78	vendor/google/interfaces \
79	vendor/google_devices/common/proprietary/confirmatioui_hal \
80	vendor/google_nos/host/android \
81	vendor/google_nos/test/system-test-harness \
82	vendor/google/camera
83
84LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4
85
86ifeq ($(RELEASE_AVF_ENABLE_LLPVM_CHANGES),true)
87	# Set the environment variable to enable the Secretkeeper HAL service.
88	SECRETKEEPER_ENABLED := true
89endif
90
91# OEM Unlock reporting
92PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
93	ro.oem_unlock_supported=1
94
95ifneq ($(BOARD_WITHOUT_RADIO),true)
96# Include vendor telephony soong namespace
97PRODUCT_SOONG_NAMESPACES += \
98	vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)
99endif
100
101ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
102#Set IKE logs to verbose for WFC
103PRODUCT_PROPERTY_OVERRIDES += log.tag.IKE=VERBOSE
104
105#Set Shannon IMS logs to debug
106PRODUCT_PROPERTY_OVERRIDES += log.tag.SHANNON_IMS=DEBUG
107
108#Set Shannon QNS logs to debug
109PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS=DEBUG
110PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-ims=DEBUG
111PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-emergency=DEBUG
112PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-mms=DEBUG
113PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-xcap=DEBUG
114PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-HC=DEBUG
115
116# Modem userdebug
117include device/google/gs201/modem/userdebug.mk
118endif
119
120ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
121# b/36703476: Set default log size to 1M
122PRODUCT_PROPERTY_OVERRIDES += \
123	ro.logd.size=1M
124# b/114766334: persist all logs by default rotating on 30 files of 1MiB
125PRODUCT_PROPERTY_OVERRIDES += \
126	logd.logpersistd=logcatd \
127	logd.logpersistd.size=30
128endif
129
130# From system.property
131PRODUCT_PROPERTY_OVERRIDES += \
132	ro.telephony.default_network=27 \
133	persist.vendor.ril.db_ecc.use.iccid_to_plmn=1 \
134	persist.vendor.ril.db_ecc.id.type=5
135	#rild.libpath=/system/lib64/libsec-ril.so \
136	#rild.libargs=-d /dev/umts_ipc0
137
138# SIT-RIL Logging setting
139PRODUCT_PROPERTY_OVERRIDES += \
140	persist.vendor.ril.log_mask=3 \
141	persist.vendor.ril.log.base_dir=/data/vendor/radio/sit-ril \
142	persist.vendor.ril.log.chunk_size=5242880 \
143	persist.vendor.ril.log.num_file=3
144
145# Enable reboot free DSDS
146PRODUCT_PRODUCT_PROPERTIES += \
147	persist.radio.reboot_on_modem_change=false
148
149# Configure DSDS by default
150PRODUCT_PRODUCT_PROPERTIES += \
151	persist.radio.multisim.config=dsds
152
153# Enable Early Camping
154PRODUCT_PRODUCT_PROPERTIES += \
155	persist.vendor.ril.camp_on_earlier=1
156
157# Enable SET_SCREEN_STATE request
158PRODUCT_PROPERTY_OVERRIDES += \
159	persist.vendor.ril.enable_set_screen_state=1
160
161# Set the Bluetooth Class of Device
162ifneq ($(USE_TABLET_BT_COD),true)
163# Service Field: 0x5A -> 90
164#    Bit 14: LE audio
165#    Bit 17: Networking
166#    Bit 19: Capturing
167#    Bit 20: Object Transfer
168#    Bit 22: Telephony
169# MAJOR_CLASS: 0x42 -> 66 (Phone)
170# MINOR_CLASS: 0x0C -> 12 (Smart Phone)
171PRODUCT_PRODUCT_PROPERTIES += \
172    bluetooth.device.class_of_device=90,66,12
173else
174# Service Field: 0x5A -> 90
175#    Bit 14: LE audio
176#    Bit 17: Networking
177#    Bit 19: Capturing
178#    Bit 20: Object Transfer
179#    Bit 22: Telephony
180# MAJOR_CLASS: 0x41 -> 65 (Computer)
181# MINOR_CLASS: 0x10 -> 16 (Handheld PC/PDA clamshell)
182PRODUCT_PRODUCT_PROPERTIES += \
183    bluetooth.device.class_of_device=90,65,16
184endif
185
186# Set supported Bluetooth profiles to enabled
187PRODUCT_PRODUCT_PROPERTIES += \
188	bluetooth.profile.asha.central.enabled?=true \
189	bluetooth.profile.a2dp.source.enabled?=true \
190	bluetooth.profile.avrcp.target.enabled?=true \
191	bluetooth.profile.bas.client.enabled?=true \
192	bluetooth.profile.gatt.enabled?=true \
193	bluetooth.profile.hfp.ag.enabled?=true \
194	bluetooth.profile.hid.device.enabled?=true \
195	bluetooth.profile.hid.host.enabled?=true \
196	bluetooth.profile.map.server.enabled?=true \
197	bluetooth.profile.opp.enabled?=true \
198	bluetooth.profile.pan.nap.enabled?=true \
199	bluetooth.profile.pan.panu.enabled?=true \
200	bluetooth.profile.pbap.server.enabled?=true \
201	bluetooth.profile.sap.server.enabled?=true \
202
203# Carrier configuration default location
204PRODUCT_PROPERTY_OVERRIDES += \
205	persist.vendor.radio.config.carrier_config_dir=/vendor/firmware/carrierconfig
206
207PRODUCT_PROPERTY_OVERRIDES += \
208	telephony.active_modems.max_count=2
209
210USE_LASSEN_OEMHOOK := true
211# The "power-anomaly-sitril" is added into PRODUCT_SOONG_NAMESPACES when
212# $(USE_LASSEN_OEMHOOK) is true and $(BOARD_WITHOUT_RADIO) is not true.
213ifneq ($(BOARD_WITHOUT_RADIO),true)
214    PRODUCT_SOONG_NAMESPACES += vendor/google/tools/power-anomaly-sitril
215endif
216
217# Use for GRIL
218USES_LASSEN_MODEM := true
219$(call soong_config_set, vendor_ril_google_feature, use_lassen_modem, true)
220
221ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true)
222USE_GOOGLE_DIALER := true
223USE_GOOGLE_CARRIER_SETTINGS := true
224endif
225
226ifeq ($(USES_GOOGLE_PREBUILT_MODEM_SVC),true)
227USE_GOOGLE_PREBUILT_MODEM_SVC := true
228endif
229
230# Audio client implementation for RIL
231USES_GAUDIO := true
232
233# ######################
234# GRAPHICS - GPU (begin)
235
236# Must match BOARD_USES_SWIFTSHADER in BoardConfig.mk
237USE_SWIFTSHADER := false
238
239# HWUI
240ifeq ($(USE_SWIFTSHADER),true)
241	TARGET_USES_VULKAN = false
242else
243	TARGET_USES_VULKAN = true
244endif
245
246PRODUCT_SOONG_NAMESPACES += \
247	vendor/arm/mali/valhall
248
249$(call soong_config_set,pixel_mali,soc,$(TARGET_BOARD_PLATFORM))
250
251include device/google/gs-common/gpu/gpu.mk
252PRODUCT_PACKAGES += \
253	csffw_image_prebuilt__firmware_prebuilt_todx_mali_csffw.bin \
254	libGLES_mali \
255	vulkan.mali \
256	libOpenCL \
257	libgpudataproducer \
258
259# Mali Configuration Properties
260# b/221255664 prevents setting PROTECTED_MAX_CORE_COUNT=2
261PRODUCT_VENDOR_PROPERTIES += \
262	vendor.mali.platform.config=/vendor/etc/mali/platform.config \
263	vendor.mali.debug.config=/vendor/etc/mali/debug.config \
264	vendor.mali.base_protected_max_core_count=1 \
265	vendor.mali.base_protected_tls_max=67108864 \
266	vendor.mali.platform_agt_frequency_khz=24576
267
268PRODUCT_COPY_FILES += \
269	frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
270	frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
271	frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
272	frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
273	frameworks/native/data/etc/android.software.vulkan.deqp.level-2024-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
274	frameworks/native/data/etc/android.software.opengles.deqp.level-2024-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
275
276ifeq ($(USE_SWIFTSHADER),true)
277PRODUCT_PACKAGES += \
278	vulkan.pastel
279endif
280
281ifeq ($(USE_SWIFTSHADER),true)
282PRODUCT_VENDOR_PROPERTIES += \
283	ro.hardware.egl = mali \
284	persist.graphics.egl = angle \
285	ro.hardware.vulkan = pastel
286else
287PRODUCT_VENDOR_PROPERTIES += \
288	ro.hardware.egl = mali \
289	ro.hardware.vulkan = mali
290endif
291
292# Configure EGL blobcache
293PRODUCT_VENDOR_PROPERTIES += \
294	ro.egl.blobcache.multifile=true \
295	ro.egl.blobcache.multifile_limit=33554432 \
296
297PRODUCT_VENDOR_PROPERTIES += \
298	ro.opengles.version=196610 \
299	graphics.gpu.profiler.support=true
300
301# b/295257834 Add HDR shaders to SurfaceFlinger's pre-warming cache
302PRODUCT_VENDOR_PROPERTIES += ro.surface_flinger.prime_shader_cache.ultrahdr=1
303
304# GRAPHICS - GPU (end)
305# ####################
306
307# Device Manifest, Device Compatibility Matrix for Treble
308DEVICE_MANIFEST_FILE := \
309	device/google/gs201/manifest.xml
310
311ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
312DEVICE_MANIFEST_FILE += \
313	device/google/gs201/manifest_media_aosp.xml
314
315PRODUCT_COPY_FILES += \
316	device/google/gs201/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml
317else
318DEVICE_MANIFEST_FILE += \
319	device/google/gs201/manifest_media.xml
320
321PRODUCT_COPY_FILES += \
322	device/google/gs201/media_codecs_bo_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml \
323	device/google/gs201/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_aosp_c2.xml
324endif
325
326DEVICE_MATRIX_FILE := \
327	device/google/gs201/compatibility_matrix.xml
328
329DEVICE_PACKAGE_OVERLAYS += device/google/gs201/overlay
330
331# This device is shipped with 33 (Android T)
332PRODUCT_SHIPPING_API_LEVEL := 33
333
334# RKP VINTF
335-include vendor/google_nos/host/android/hals/keymaster/aidl/strongbox/RemotelyProvisionedComponent-citadel.mk
336
337# Enforce the Product interface
338PRODUCT_PRODUCT_VNDK_VERSION := current
339PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE := true
340
341# Init files
342PRODUCT_COPY_FILES += \
343	$(LOCAL_KERNEL):kernel \
344	device/google/gs201/conf/init.gs201.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.gs201.usb.rc \
345	device/google/gs201/conf/ueventd.gs201.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc
346
347PRODUCT_COPY_FILES += \
348	device/google/gs201/conf/init.gs201.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.gs201.rc
349
350ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
351PRODUCT_COPY_FILES += \
352	device/google/gs201/conf/init.debug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.debug.rc \
353	device/google/gs201/conf/init.check_ap_pd_auth.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.check_ap_pd_auth.sh
354endif
355
356# Recovery files
357PRODUCT_COPY_FILES += \
358	device/google/gs201/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.gs201.rc
359
360# Fstab files
361PRODUCT_PACKAGES += \
362	fstab.gs201 \
363	fstab.gs201.vendor_ramdisk \
364	fstab.gs201-fips \
365	fstab.gs201-fips.vendor_ramdisk
366
367PRODUCT_COPY_FILES += \
368	device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.persist:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.persist \
369
370# Shell scripts
371PRODUCT_COPY_FILES += \
372	device/google/gs201/init.display.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.display.sh \
373	device/google/gs201/disable_contaminant_detection.sh:$(TARGET_COPY_OUT_VENDOR)/bin/hw/disable_contaminant_detection.sh
374
375include device/google/gs-common/insmod/insmod.mk
376
377# For creating dtbo image
378PRODUCT_HOST_PACKAGES += \
379	mkdtimg
380
381PRODUCT_PACKAGES += \
382	messaging
383
384# CHRE
385## tools
386ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
387PRODUCT_PACKAGES += \
388	chre_power_test_client \
389	chre_test_client \
390	chre_aidl_hal_client
391endif
392
393## HAL
394include device/google/gs-common/chre/hal.mk
395PRODUCT_COPY_FILES += \
396	frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml
397CHRE_DEDICATED_TRANSPORT_CHANNEL_ENABLED := true
398PRODUCT_PACKAGES += \
399	preloaded_nanoapps.json
400
401# Filesystem management tools
402PRODUCT_PACKAGES += \
403	linker.vendor_ramdisk \
404	tune2fs.vendor_ramdisk \
405	resize2fs.vendor_ramdisk
406
407# Filesystem: convert /dev/block/by-name/persist to ext4 (b/239632964)
408PRODUCT_COPY_FILES += \
409	device/google/gs201/convert_to_ext4.sh:$(TARGET_COPY_OUT_SYSTEM_EXT)/bin/convert_to_ext4.sh \
410
411# Userdata Checkpointing OTA GC
412PRODUCT_PACKAGES += \
413	checkpoint_gc
414
415# Vendor verbose logging default property
416ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
417PRODUCT_PROPERTY_OVERRIDES += \
418	persist.vendor.verbose_logging_enabled=true
419else
420PRODUCT_PROPERTY_OVERRIDES += \
421	persist.vendor.verbose_logging_enabled=false
422endif
423
424# RPMB TA
425PRODUCT_PACKAGES += \
426	tlrpmb
427
428# Touch firmware
429#PRODUCT_COPY_FILES += \
430	device/google/gs201/firmware/touch/s6sy761.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/s6sy761.fw
431# Touch
432PRODUCT_COPY_FILES += \
433	frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml
434
435# Sensors
436PRODUCT_COPY_FILES += \
437	frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
438	frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
439	frameworks/native/data/etc/android.hardware.sensor.dynamic.head_tracker.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.dynamic.head_tracker.xml \
440	frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
441	frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml\
442	frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
443	frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml
444# (See b/240652154)
445ifneq ($(DISABLE_SENSOR_BARO_PROX_HIFI),true)
446PRODUCT_COPY_FILES += \
447	frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \
448	frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \
449	frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml
450endif
451
452# Add sensor HAL AIDL product packages
453PRODUCT_PACKAGES += android.hardware.sensors-service.multihal
454
455# USB HAL
456PRODUCT_PACKAGES += \
457	android.hardware.usb-service
458PRODUCT_PACKAGES += \
459	android.hardware.usb.gadget-service
460
461# MIDI feature
462PRODUCT_COPY_FILES += \
463	frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml
464
465# eSIM MEP Feature
466ifneq ($(DISABLE_TELEPHONY_EUICC),true)
467PRODUCT_COPY_FILES += \
468    frameworks/native/data/etc/android.hardware.telephony.euicc.mep.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/android.hardware.telephony.euicc.mep.xml
469endif
470
471# default usb debug functions
472ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
473PRODUCT_PROPERTY_OVERRIDES += \
474	persist.vendor.usb.usbradio.config=dm
475endif
476
477
478PRODUCT_COPY_FILES += \
479	device/google/gs201/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
480
481-include hardware/google/pixel/power-libperfmgr/aidl/device.mk
482
483# IRQ rebalancing.
484include hardware/google/pixel/rebalance_interrupts/rebalance_interrupts.mk
485
486# PowerStats HAL
487PRODUCT_PACKAGES += \
488	android.hardware.power.stats-service.pixel
489
490#
491# Audio HALs
492#
493
494# Audio Configurations
495USE_LEGACY_LOCAL_AUDIO_HAL := false
496USE_XML_AUDIO_POLICY_CONF := 1
497
498# Enable AAudio MMAP/NOIRQ data path.
499PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_policy=2
500PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_exclusive_policy=2
501PRODUCT_PROPERTY_OVERRIDES += aaudio.hw_burst_min_usec=2000
502
503# Calliope firmware overwrite
504#PRODUCT_COPY_FILES += \
505	device/google/gs201/firmware/calliope_dram.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_dram.bin \
506	device/google/gs201/firmware/calliope_sram.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_sram.bin \
507	device/google/gs201/firmware/calliope_dram_2.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_dram_2.bin \
508	device/google/gs201/firmware/calliope_sram_2.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_sram_2.bin \
509	device/google/gs201/firmware/calliope2.dt:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope2.dt \
510
511# Cannot reference variables defined in BoardConfig.mk, uncomment this if
512# BOARD_USE_OFFLOAD_AUDIO and BOARD_USE_OFFLOAD_EFFECT are true
513## AudioEffectHAL library
514#PRODUCT_PACKAGES += \
515#	libexynospostprocbundle
516
517# Cannot reference variables defined in BoardConfig.mk, uncomment this if
518# BOARD_USE_SOUNDTRIGGER_HAL is true
519#PRODUCT_PACKAGES += \
520#	sound_trigger.primary.maran9820
521
522# A-Box Service Daemon
523#PRODUCT_PACKAGES += main_abox
524
525# Libs
526PRODUCT_PACKAGES += \
527	com.android.future.usb.accessory
528
529PRODUCT_PACKAGES += \
530	android.hardware.memtrack-service.pixel \
531	libion_exynos \
532	libion
533
534PRODUCT_PACKAGES += \
535	libhwjpeg
536
537# Video Editor
538PRODUCT_PACKAGES += \
539	VideoEditorGoogle
540
541# WideVine modules
542include device/google/gs201/widevine/device.mk
543PRODUCT_PACKAGES += \
544	liboemcrypto \
545
546PANTHER_PRODUCT := %panther
547CHEETAH_PRODUCT := %cheetah
548LYNX_PRODUCT := %lynx
549FELIX_PRODUCT := %felix
550CLOUDRIPPER_PRODUCT := %cloudripper
551TANGOR_PRODUCT := %tangorpro
552ifneq (,$(filter $(PANTHER_PRODUCT), $(TARGET_PRODUCT)))
553        LOCAL_TARGET_PRODUCT := panther
554else ifneq (,$(filter $(CHEETAH_PRODUCT), $(TARGET_PRODUCT)))
555        LOCAL_TARGET_PRODUCT := cheetah
556else ifneq (,$(filter $(LYNX_PRODUCT), $(TARGET_PRODUCT)))
557        LOCAL_TARGET_PRODUCT := lynx
558else ifneq (,$(filter $(FELIX_PRODUCT), $(TARGET_PRODUCT)))
559        LOCAL_TARGET_PRODUCT := felix
560else ifneq (,$(filter $(CLOUDRIPPER_PRODUCT), $(TARGET_PRODUCT)))
561        LOCAL_TARGET_PRODUCT := cloudripper
562else ifneq (,$(filter $(TANGOR_PRODUCT), $(TARGET_PRODUCT)))
563        LOCAL_TARGET_PRODUCT := tangorpro
564else
565        # WAR: continue defaulting to slider build on gs201 to not
566        # break dev targets such as ravenclaw
567        LOCAL_TARGET_PRODUCT := slider
568endif
569
570# Lyric Camera HAL settings
571include device/google/gs-common/camera/lyric.mk
572$(call soong_config_set,lyric,soc,gs201)
573$(call soong_config_set,google3a_config,soc,gs201)
574
575# WiFi
576PRODUCT_PACKAGES += \
577	android.hardware.wifi-service \
578	wificond \
579	libwpa_client
580
581# Connectivity
582PRODUCT_PACKAGES += \
583        ConnectivityOverlay
584
585PRODUCT_PACKAGES_DEBUG += \
586	f2fs_io \
587	check_f2fs \
588	f2fs.fibmap \
589	dump.f2fs
590
591# Storage dump
592include device/google/gs-common/storage/storage.mk
593
594# Storage health HAL
595PRODUCT_PACKAGES += \
596	android.hardware.health.storage-service.default
597
598# Battery Mitigation
599include device/google/gs-common/battery_mitigation/bcl.mk
600# storage pixelstats
601-include hardware/google/pixel/pixelstats/device.mk
602
603# Enable project quotas and casefolding for emulated storage without sdcardfs
604$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
605
606$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/android_t_baseline.mk)
607PRODUCT_VIRTUAL_AB_COMPRESSION_METHOD := lz4
608
609# Enforce generic ramdisk allow list
610$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk)
611
612# Titan-M
613ifeq (,$(filter true, $(BOARD_WITHOUT_DTLS)))
614include device/google/gs-common/dauntless/gsc.mk
615endif
616
617PRODUCT_PACKAGES_DEBUG += \
618	WvInstallKeybox
619
620# Copy Camera HFD Setfiles
621#PRODUCT_COPY_FILES += \
622	device/google/gs201/firmware/camera/libhfd/default_configuration.hfd.cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/default_configuration.hfd.cfg.json \
623	device/google/gs201/firmware/camera/libhfd/pp_cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/pp_cfg.json \
624	device/google/gs201/firmware/camera/libhfd/tracker_cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/tracker_cfg.json \
625	device/google/gs201/firmware/camera/libhfd/WithLightFixNoBN.SDNNmodel:$(TARGET_COPY_OUT_VENDOR)/firmware/WithLightFixNoBN.SDNNmodel
626
627# WiFi
628PRODUCT_COPY_FILES += \
629	frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
630	frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
631	frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml \
632	frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
633	frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
634
635PRODUCT_COPY_FILES += \
636	frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
637	frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml
638
639# (See b/239142680, b/211840489, b/225749853)
640ifneq ($(DISABLE_CAMERA_FS_AF),true)
641PRODUCT_COPY_FILES += \
642	frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml
643else
644PRODUCT_COPY_FILES += \
645	frameworks/native/data/etc/android.hardware.camera.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.xml
646endif
647
648PRODUCT_COPY_FILES += \
649	frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
650	frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \
651	frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml\
652	frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml\
653
654#PRODUCT_COPY_FILES += \
655	frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
656	frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
657	frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
658	frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
659
660PRODUCT_COPY_FILES += \
661	frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
662	frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
663
664PRODUCT_COPY_FILES += \
665	frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \
666
667PRODUCT_PROPERTY_OVERRIDES += \
668	debug.slsi_platform=1 \
669	debug.hwc.winupdate=1
670
671ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
672PRODUCT_PACKAGES += displaycolor_service
673endif
674
675PRODUCT_PROPERTY_OVERRIDES += \
676	debug.sf.disable_backpressure=0 \
677	debug.sf.enable_gl_backpressure=1 \
678	debug.sf.enable_sdr_dimming=1 \
679	debug.sf.dim_in_gamma_in_enhanced_screenshots=1
680
681PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.use_phase_offsets_as_durations=1
682PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.sf.duration=10500000
683PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.app.duration=16600000
684PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.sf.duration=16600000
685PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.app.duration=16600000
686PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.sf.duration=16600000
687PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=16600000
688PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.frame_rate_multiple_threshold=120
689PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.layer_caching_active_layer_timeout_ms=1000
690PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.treat_170m_as_sRGB=1
691
692PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_layer_caching=true
693PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80
694PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200
695PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000
696PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true
697PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.max_frame_buffer_acquired_buffers=3
698
699PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.supports_background_blur=1
700PRODUCT_SYSTEM_PROPERTIES += ro.launcher.blur.appLaunch=0
701
702# Must align with HAL types Dataspace
703# The data space of wide color gamut composition preference is Dataspace::DISPLAY_P3
704PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.wcg_composition_dataspace=143261696
705
706# Display
707PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.has_wide_color_display=true
708PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.has_HDR_display=true
709PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=true
710PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true
711PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50
712
713PRODUCT_PROPERTY_OVERRIDES += \
714	persist.sys.sf.native_mode=2
715PRODUCT_COPY_FILES += \
716	device/google/gs201/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb
717
718# limit DPP downscale ratio
719PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=2
720
721# Cannot reference variables defined in BoardConfig.mk, uncomment this if
722# BOARD_USES_EXYNOS_DSS_FEATURE is true
723## set the dss enable status setup
724#PRODUCT_PROPERTY_OVERRIDES += \
725#        ro.exynos.dss=1
726
727# Cannot reference variables defined in BoardConfig.mk, uncomment this if
728# BOARD_USES_EXYNOS_AFBC_FEATURE is true
729# set the dss enable status setup
730PRODUCT_PROPERTY_OVERRIDES += \
731	ro.vendor.ddk.set.afbc=1
732
733PRODUCT_CHARACTERISTICS := nosdcard
734
735# WIFI COEX
736PRODUCT_COPY_FILES += \
737	device/google/gs201/wifi/coex_table.xml:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/coex_table.xml
738
739PRODUCT_PACKAGES += hostapd
740PRODUCT_PACKAGES += wpa_supplicant
741PRODUCT_PACKAGES += wpa_supplicant.conf
742
743WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS := enabled
744
745ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
746PRODUCT_PACKAGES += wpa_cli
747PRODUCT_PACKAGES += hostapd_cli
748endif
749
750####################################
751## VIDEO
752####################################
753
754$(call soong_config_set,bigo,soc,gs201)
755
756# 1. Codec 2.0
757# for settings used by different C2 hal
758include device/google/gs-common/mediacodec/common/mediacodec_common.mk
759# for Exynos C2 Hal
760include device/google/gs-common/mediacodec/samsung/mediacodec_samsung.mk
761
762PRODUCT_COPY_FILES += \
763	device/google/gs201/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
764
765PRODUCT_PROPERTY_OVERRIDES += \
766       debug.stagefright.c2-poolmask=458752 \
767       debug.c2.use_dmabufheaps=1 \
768       media.c2.dmabuf.padding=512 \
769       debug.stagefright.ccodec_delayed_params=1 \
770       ro.vendor.gpu.dataspace=1
771
772# Create input surface on the framework side
773PRODUCT_PROPERTY_OVERRIDES += \
774	debug.stagefright.c2inputsurface=-1 \
775
776PRODUCT_PROPERTY_OVERRIDES += media.c2.hal.selection=aidl
777
778# 2. OpenMAX IL
779PRODUCT_COPY_FILES += \
780	device/google/gs201/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
781	device/google/gs201/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml
782####################################
783
784# Telephony
785#PRODUCT_COPY_FILES += \
786	frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml
787
788# CBD (CP booting deamon)
789CBD_USE_V2 := true
790CBD_PROTOCOL_SIT := true
791
792# setup dalvik vm configs.
793$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
794
795PRODUCT_TAGS += dalvik.gc.type-precise
796
797# Exynos OpenVX framework
798PRODUCT_PACKAGES += \
799		libexynosvision
800
801ifeq ($(TARGET_USES_CL_KERNEL),true)
802PRODUCT_PACKAGES += \
803	libopenvx-opencl
804endif
805
806# Trusty (KM, GK, Storage)
807$(call inherit-product, system/core/trusty/trusty-storage.mk)
808$(call inherit-product, system/core/trusty/trusty-base.mk)
809
810# Trusty dump
811include device/google/gs-common/trusty/trusty.mk
812
813# Trusty unit test and code coverage tool
814PRODUCT_PACKAGES_DEBUG += \
815   trusty-ut-ctrl \
816   tipc-test \
817   trusty_stats_test \
818   trusty-coverage-controller \
819
820include device/google/gs101/confirmationui/confirmationui.mk
821
822# Trusty Secure DPU Daemon
823PRODUCT_PACKAGES += \
824	securedpud.slider
825
826# Trusty Metrics Daemon
827PRODUCT_SOONG_NAMESPACES += \
828	vendor/google/trusty/common
829
830PRODUCT_PACKAGES += \
831	trusty_metricsd
832
833$(call soong_config_set,google_displaycolor,displaycolor_platform,gs201)
834PRODUCT_PACKAGES += \
835	android.hardware.composer.hwc3-service.pixel \
836	libdisplaycolor
837
838# Storage: for factory reset protection feature
839PRODUCT_PROPERTY_OVERRIDES += \
840	ro.frp.pst=/dev/block/by-name/frp
841
842# System props to enable Bluetooth Quality Report (BQR) feature
843ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
844PRODUCT_PRODUCT_PROPERTIES += \
845	persist.bluetooth.bqr.event_mask?=262174 \
846	persist.bluetooth.bqr.min_interval_ms=500
847else
848PRODUCT_PRODUCT_PROPERTIES += \
849	persist.bluetooth.bqr.event_mask?=30 \
850	persist.bluetooth.bqr.min_interval_ms=500
851endif
852
853#VNDK
854PRODUCT_PACKAGES += \
855	vndk-libs
856
857PRODUCT_ENFORCE_RRO_TARGETS := \
858	framework-res
859
860# Dynamic Partitions
861PRODUCT_USE_DYNAMIC_PARTITIONS := true
862
863# Use FUSE passthrough
864PRODUCT_PRODUCT_PROPERTIES += \
865	persist.sys.fuse.passthrough.enable=true
866
867# Use FUSE BPF
868PRODUCT_PRODUCT_PROPERTIES += \
869	ro.fuse.bpf.enabled=true
870
871# Use /product/etc/fstab.postinstall to mount system_other
872PRODUCT_PRODUCT_PROPERTIES += \
873	ro.postinstall.fstab.prefix=/product
874
875PRODUCT_COPY_FILES += \
876	device/google/gs201/conf/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall
877
878# fastbootd
879PRODUCT_PACKAGES += \
880	android.hardware.fastboot-service.pixel_recovery \
881	fastbootd
882
883#google iwlan
884PRODUCT_PACKAGES += \
885	Iwlan
886
887#Iwlan test app for userdebug/eng builds
888ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
889PRODUCT_PACKAGES += \
890	IwlanTestApp
891endif
892
893PRODUCT_PACKAGES += \
894	whitelist \
895	libstagefright_hdcp \
896	libskia_opt
897
898#PRODUCT_PACKAGES += \
899	mfc_fw.bin \
900	calliope_sram.bin \
901	calliope_dram.bin \
902	calliope_iva.bin \
903	vts.bin
904
905ifneq ($(BOARD_WITHOUT_RADIO),true)
906# This will be called only if IMSService is building with source code for dev branches.
907$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/shannon-ims/device-vendor.mk)
908
909PRODUCT_PACKAGES += ShannonIms
910
911PRODUCT_PACKAGES_DEBUG += \
912	preinstalled-packages-product-gs201-device-debug.xml
913
914PRODUCT_PACKAGES += ShannonRcs
915endif
916
917# Exynos RIL and telephony
918# Multi SIM(DSDS)
919SIM_COUNT := 2
920$(call soong_config_set,sim,sim_count,$(SIM_COUNT))
921SUPPORT_MULTI_SIM := true
922# Support NR
923SUPPORT_NR := true
924# Support 5G on both stacks
925SUPPORT_NR_DS := true
926# Using IRadio 2.0
927USE_RADIO_HAL_2_0 := true
928# Support SecureElement HAL for HIDL
929USE_SE_HIDL := true
930# Using Early Send Device Info
931USE_EARLY_SEND_DEVICE_INFO := true
932
933#$(call inherit-product, vendor/google_devices/telephony/common/device-vendor.mk)
934#$(call inherit-product, vendor/google_devices/gs201/proprietary/device-vendor.mk)
935
936ifneq ($(BOARD_WITHOUT_RADIO),true)
937$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk)
938
939# modem_svc_sit daemon
940PRODUCT_PACKAGES += modem_svc_sit
941
942# modem logging binary/configs
943PRODUCT_PACKAGES += modem_logging_control
944
945# CP Logging properties
946PRODUCT_PROPERTY_OVERRIDES += \
947	ro.vendor.sys.modem.logging.loc = /data/vendor/slog \
948	ro.vendor.cbd.modem_removable = "1" \
949	ro.vendor.cbd.modem_type = "s5100sit" \
950	persist.vendor.sys.modem.logging.br_num=5 \
951	persist.vendor.sys.modem.logging.enable=true
952
953# Enable silent CP crash handling
954ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
955PRODUCT_PROPERTY_OVERRIDES += \
956	persist.vendor.ril.crash_handling_mode=1
957else
958PRODUCT_PROPERTY_OVERRIDES += \
959	persist.vendor.ril.crash_handling_mode=2
960endif
961
962# Add support dual SIM mode
963PRODUCT_PROPERTY_OVERRIDES += \
964	persist.vendor.radio.multisim_switch_support=true
965
966PRODUCT_COPY_FILES += \
967	device/google/$(TARGET_BOARD_PLATFORM)/conf/init.modem.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.modem.rc \
968	device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.modem:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.modem \
969	device/google/gs201/location/gps.cer:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.cer
970
971
972include device/google/gs-common/gps/brcm/device.mk
973endif
974
975
976$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk)
977#$(call inherit-product, hardware/google_devices/exynos5/exynos5.mk)
978#$(call inherit-product-if-exists, hardware/google_devices/gs201/gs201.mk)
979#$(call inherit-product-if-exists, vendor/google_devices/common/exynos-vendor.mk)
980#$(call inherit-product-if-exists, hardware/broadcom/wlan/bcmdhd/firmware/bcm4375/device-bcm.mk)
981include device/google/gs-common/sensors/sensors.mk
982$(call soong_config_set,usf,target_soc,gs201)
983
984PRODUCT_COPY_FILES += \
985	device/google/gs201/default-permissions.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/default-permissions.xml \
986	device/google/gs201/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml
987
988# modem logging configs
989PRODUCT_COPY_FILES += \
990	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/logging.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/logging.conf \
991	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.cfg \
992	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.nprf \
993	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default_metrics.xml \
994	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_Default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_Default_metrics.xml \
995	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_stability.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_stability.cfg \
996	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_stability.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_stability.nprf \
997
998# Vibrator Diag
999PRODUCT_PACKAGES_DEBUG += \
1000	diag-vibrator \
1001	diag-vibrator-cs40l25a \
1002	diag-vibrator-drv2624 \
1003	$(NULL)
1004
1005PRODUCT_PACKAGES += \
1006	android.hardware.health-service.gs201 \
1007	android.hardware.health-service.gs201_recovery \
1008
1009# Audio
1010# Audio HAL Server & Default Implementations
1011include device/google/gs-common/audio/hidl_gs201.mk
1012
1013## AoC soong
1014PRODUCT_SOONG_NAMESPACES += \
1015        vendor/google/whitechapel/aoc
1016
1017$(call soong_config_set,aoc,target_soc,$(TARGET_BOARD_PLATFORM))
1018$(call soong_config_set,aoc,target_product,$(TARGET_PRODUCT))
1019
1020#
1021## Audio properties
1022ifneq (,$(filter $(TANGOR_PRODUCT), $(TARGET_PRODUCT)))
1023PRODUCT_PROPERTY_OVERRIDES += \
1024	ro.config.vc_call_vol_steps=7 \
1025	ro.config.media_vol_steps=20 \
1026	ro.audio.monitorRotation = true \
1027	ro.audio.offload_wakelock=false
1028else
1029PRODUCT_PROPERTY_OVERRIDES += \
1030	ro.config.vc_call_vol_steps=7 \
1031	ro.config.media_vol_steps=25 \
1032	ro.audio.monitorRotation = true \
1033	ro.audio.offload_wakelock=false
1034endif
1035
1036# vndservicemanager and vndservice no longer included in API 30+, however needed by vendor code.
1037# See b/148807371 for reference
1038PRODUCT_PACKAGES += vndservicemanager
1039PRODUCT_PACKAGES += vndservice
1040
1041## TinyTools, debug tool and cs35l41 speaker calibration tool for Audio
1042ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
1043PRODUCT_PACKAGES += \
1044	tinyplay \
1045	tinycap \
1046	tinymix \
1047	tinypcminfo \
1048	tinyhostless \
1049	cplay \
1050	aoc_hal \
1051	aoc_tuning_inft \
1052	mahal_test \
1053	ma_aoc_tuning_test \
1054	crus_sp_cal
1055endif
1056
1057PRODUCT_PACKAGES += \
1058	google.hardware.media.c2@1.0-service \
1059	libgc2_store \
1060	libgc2_base \
1061	libgc2_av1_dec \
1062	libbo_av1 \
1063	libgc2_cwl \
1064	libgc2_utils
1065
1066## Start packet router
1067include device/google/gs101/telephony/pktrouter.mk
1068
1069# Thermal HAL
1070PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true
1071
1072# EdgeTPU
1073include device/google/gs-common/edgetpu/edgetpu.mk
1074# Config variables for TPU chip on device.
1075$(call soong_config_set,edgetpu_config,chip,janeiro)
1076# Include the edgetpu targets defined the namespaces below into the final image.
1077PRODUCT_SOONG_NAMESPACES += \
1078	vendor/google_devices/gs201/proprietary/gchips/tpu/metrics \
1079	vendor/google_devices/gs201/proprietary/gchips/tpu/tflite_delegate \
1080	vendor/google_devices/gs201/proprietary/gchips/tpu/darwinn_logging_service \
1081	vendor/google_devices/gs201/proprietary/gchips/tpu/nnapi_stable_aidl \
1082	vendor/google_devices/gs201/proprietary/gchips/tpu/aidl \
1083	vendor/google_devices/gs201/proprietary/gchips/tpu/hal \
1084	vendor/google_devices/gs201/proprietary/gchips/tpu/tachyon/api \
1085	vendor/google_devices/gs201/proprietary/gchips/tpu/tachyon/service
1086# TPU firmware
1087PRODUCT_PACKAGES += edgetpu-janeiro.fw
1088
1089# Connectivity Thermal Power Manager
1090PRODUCT_PACKAGES += \
1091	ConnectivityThermalPowerManager
1092
1093# A/B support
1094PRODUCT_PACKAGES += \
1095	otapreopt_script \
1096	cppreopts.sh \
1097	update_engine \
1098	update_engine_sideload \
1099	update_verifier
1100
1101# pKVM
1102$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
1103PRODUCT_BUILD_PVMFW_IMAGE := true
1104
1105# Enable to build standalone vendor_kernel_boot image.
1106PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE := true
1107
1108# Enable watchdog timeout loop breaker.
1109PRODUCT_PROPERTY_OVERRIDES += \
1110	framework_watchdog.fatal_window.second=600 \
1111	framework_watchdog.fatal_count=3
1112
1113# Enable zygote critical window.
1114PRODUCT_PROPERTY_OVERRIDES += \
1115	zygote.critical_window.minute=10
1116
1117# Suspend properties
1118PRODUCT_PROPERTY_OVERRIDES += \
1119    suspend.short_suspend_threshold_millis=2000 \
1120    suspend.max_sleep_time_millis=40000 \
1121    suspend.short_suspend_backoff_enabled=true
1122
1123# Enable Incremental on the device
1124PRODUCT_PROPERTY_OVERRIDES += \
1125	ro.incremental.enable=true
1126
1127# Project
1128include hardware/google/pixel/common/pixel-common-device.mk
1129
1130# Pixel Logger
1131include hardware/google/pixel/PixelLogger/PixelLogger.mk
1132
1133# RadioExt Version
1134USES_RADIOEXT_V1_5 = true
1135
1136# Wifi ext
1137include hardware/google/pixel/wifi_ext/device.mk
1138
1139# Battery Stats Viewer
1140PRODUCT_PACKAGES_DEBUG += BatteryStatsViewer
1141PRODUCT_PACKAGES += dump_power_gs201.sh
1142
1143# Install product specific framework compatibility matrix
1144# (TODO: b/169535506) This includes the FCM for system_ext and product partition.
1145# It must be split into the FCM of each partition.
1146DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs201/device_framework_matrix_product.xml
1147
1148# Preopt SystemUI
1149PRODUCT_DEXPREOPT_SPEED_APPS += SystemUIGoogle  # For internal
1150PRODUCT_DEXPREOPT_SPEED_APPS += SystemUI  # For AOSP
1151
1152# Compile SystemUI on device with `speed`.
1153PRODUCT_PROPERTY_OVERRIDES += \
1154    dalvik.vm.systemuicompilerfilter=speed
1155
1156# Keymint configuration
1157PRODUCT_COPY_FILES += \
1158    frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml \
1159    frameworks/native/data/etc/android.hardware.device_unique_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.device_unique_attestation.xml
1160
1161# Call deleteAllKeys if vold detects a factory reset
1162PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled?=true
1163
1164# Hardware Info
1165include hardware/google/pixel/HardwareInfo/HardwareInfo.mk
1166
1167# UFS: the script is used to select the corresponding firmware to run FFU.
1168PRODUCT_PACKAGES += ufs_firmware_update.sh
1169
1170# Touch service
1171include device/google/gs-common/touch/twoshay/aidl_gs101.mk
1172include device/google/gs-common/touch/twoshay/twoshay.mk
1173
1174
1175# Allow longer timeout for incident report generation in bugreport
1176# Overriding in /product partition instead of /vendor intentionally,
1177# since it can't be overridden from /vendor.
1178PRODUCT_PRODUCT_PROPERTIES += \
1179	dumpstate.strict_run=false
1180