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