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